보안/웹 해킹_보안

[WebGoat 5.4-01] General

오픈이지 2013. 2. 28. 14:33


1. Http Basics


브라우저와 웹어플리케이션간의 데이터 전송에 대해 이해한다.


[해답]

webscarab을 실행하고 proxy를 사용하여 request,response intercept하도록설정한다.

파이어폭스에서 proxy enable한다.

kim을입력하고 [go]버튼을 클릭한다.

webscarab에서 오고가는 데이터를 확인한다.

전달된 이름은 reverse() 되어서 응답되므로 이름이 mik로 출력된다.





 

2. HTTP Splitting


사용자의 입력값을 검증하지 않아 발생할 수 있는 취약점으로 사용자가 입력값 이외에 CR & LF를 추가해서 서버의 응답에 다른 응답형태를 추가하는 형태이다.

CR은 커서의 위치를 줄의 맨 처음 자리로 옮기라는 것이고, LF는 다음줄로 넘기라는 의미이다. 

윈도우에서는 한라인을 넘기기위해 CR, LF를 같이 사용하지만 UNIX/LINUX에서는 LF만 사용한다.


이러한 CR/LF문들을 이용하여 임의의 제약들을 깨고 서버에서 다른 페이지를 불러 올 수 도 있고 임의의 포트를 연결해서 명령을 보낼 수 도 있다.

 

서버가 CR(%0d) LF(%0a)을 체크하지 않는다. 이것은 공격자가 헤더와 본문을 제어할 수 있다는것을 의미한다. 뿐만 아니라 공격자가 추가적인 응답을 생성할 수 있다.

 

 

[해답]

 <- 추가적인 응답을 하나 더 넣어서 서버에게 전달한다.

---- Response Splitting Attack ----

en

Content-Length: 0   

                         

HTTP/1.1 200 OK

Content-Type: text/html

Content-Length: 31

<html>Hacked by kim</htm>   



OWASP WebGoat: General 솔루션 비디오보기  [View | Download]   
HTTP BasicsHTTP SPLITTING  Size: 3.2 MB