본문 바로가기

Web Hacking/Study

(13)
md5( ) md5( ,true) 차이 md5('value') 와 같이 쓰이는 경우와 md5('value',true) 와 같이 쓰이는 경우가 있다. 두 경우의 차이점을 어렴풋이 알고 있지만, 기회가 되어 정리하고 넘어가고자 한다. php 의 md5() 함수는 아래와 같은 형식을 가진다. md5( string $str , [ bool $raw_output = FALSE ] ) str 은 해시 값을 생성할 문자열이며, 뒤의 옵션 부분을 true로 설정하면, 32 자리 문자열 ( md5 다이제스트 ) 이 반환되는 대신에 길이가 16인 원시(raw) 바이너리 형식으로 반환된다. 위 실행 코드 중 $php_magic_hash 에 대한 결과는 PHP 의 magic hash란 특수동작에 관한 예제이다. ( a == b와 같은 약한 비교 일 경우에 발생하는..
CSP 알아보기 CSP의 탄생 웹 브라우저는 웹 서버로부터 받는 페이지의 컨텐츠가 모두 의도된 컨텐츠인지 확인할 수 없다. XSS 공격의 경우, 페이지 내에 교묘하게 자바스크립트 구문을 삽입하여 마치 원래 페이지의 컨텐츠인 것처럼 브라우저를 속이고 동일 출처 정책을 우회한다. 이에 따라 페이지의 컨텐츠에서 사용하는 자원들이 모두 웹 서버에서 의도한 자원이 맞는지 확인하기 위해 Content Security Pollicy가 탄생했다. CSP란 CSP는 XSS와 데이터 주입 공격을 비롯한 특정 유형의 공격을 탐지하고 완화하는데 도움이 되는 추가 보안 계층이다. 하지만 CSP가 XSS등의 공격 피해를 완전히 무력화하기 위한 수단은 아니기에, XSS에 대한 자체적인 방어가 병행되어야 한다. CSP 적용 CSP 구문은 일반적으로..
DOM이란 DOM 이란 문서 객체 모델( DocumentObjectModel )은 HTML, XML 문서의 프로그래밍 interface이다. DOM은 문서의 구조화된 표현을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다. 이들은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다. 즉, DOM은 웹 페이지에 대한 인터페이스이다. 웹 페이지 생성 과정 웹 브라우저가 원본 HTML 문서를 읽어들인 후, 스타일을 입히고 대화형 페이지로 만들어 뷰 포트에 표시하기까지의 과정을 "Critical Rendering Path"라고 한다. 해당 과정은 대략 2단계로 나눌 수 있다. 첫 번째 단계에서 ..
소켓 통신 알아보기 웹 소켓이란 먼저, 웹 브라우저와 웹 사이트 간의 대부분의 통신은 HTTP를 사용한다. HTTP를 사용하면 클라이언트가 요청을 보내고 서버는 응답을 반환한다. 일반적으로 응답은 즉시 발생하고 트랜잭션이 완료된다. 네트워크 연결이 계속 열려 있어도 요청과 응답의 별도 트랜잭션에 사용된다. 일부 최신 웹 사이트는 WebSocket을 사용한다. WebSocket 연결은 HTTP를 통해 시작되며 일반적으로 오래 지속된다. 메시지는 언제든지 어느 방향으로나 전송될 수 있으며 본질적으로 트랜잭션이 아니다. 연결은 일반적으로 클라이언트나 서버가 메시지를 보낼 준비가 될 때까지 열려 있고 유휴 상태로 유지된다. WebSocket은 금융 데이터의 실시간 피드와 같이 대기 시간이 짧거나 서버에서 시작되는 메시지가 필요한 ..
HTML Entity HTML Entity란? HTML Entity(특수문자)는 HTML 문서에서 특수 기호를 표시하기 위해 사용하는 문자이다. 예를 들어, < 기호는 HTML의 시작 태그로 인식되기 때문에, < 라는 기호만을 그대로 기재하면 브라우저에서의 표시에 문제가 생기거나 표시되지 않거나 한다. HTML에서 특별한 의미로 사용되는 이러한 기호를 브라우저에서 그대로 표시하고 싶은 경우는 '특수 문자'라고 하는 것으로 변환해서 사용할 필요가 있다. 특수 문자에는 전용의 문자 코드가 있어, 그 코드를 기재하는 것으로 기호를 브라우저상에 그대로 표시시킬 수가 있다. 예를 들어, < 기호는 이 기호의 의미로 브라우저에서 표시하게 하는 특수문자인 < 로 변환하여 사용한다. XSS를 막는 HTML Entity PHP 환경에서, 유..