Concept
브라우저와 웹 애플리케이션 간의 데이터 전송을 이해하기 위한 기본 사항과 HTTP Proxy를 사용하여 요청/응답을 트랩하는 방법을 설명한다.
Goals
사용자는 버튼을 조작하여 힌트 보기, HTTP 요청 매개변수 표시, HTTP 요청 쿠키 표시, Java 소스 코드 보기 등을 통해 WebGoat의 기능에 익숙해진다.
OWASP Zed Attack Proxy를 처음 사용해 볼 수도 있다.
How HTTP works
모든 HTTP 트랜잭션은 동일한 일반 형식을 따른다. 각 클라이언트 요청과 서버 응답은 요청 또는 응답 라인, 헤더 섹션, 엔티티 본문의 세 부분으로 구성된다.
클라이언트는 다음과 같이 거래를 시작한다.
- 클라이언트는 서버에 접속하여 문서 요청을 보낸다. GET 요청은 URL 매개변수를 포함할 수 있으며, 해당 매개변수는 웹 액세스 로그에서 확인할 수 있다.
GET /index.html?param=value HTTP/1.0
- 다음으로, 클라이언트는 서버에 구성과 허용되는 문서 형식을 알리기 위해 선택적 헤더 정보를 전송한다.
사용자 에이전트 : Mozilla/4.06
수락 : image/gif, image/jpeg, /
- POST 요청에서 사용자가 제공한 데이터는 선택적 헤더를 따르며 POST URL에 포함된 내용이 아니다.
즉, [POST 요청에서 사용자가 제공한 데이터는 선택적 헤더 다음에(Body 부분에)포함되며, GET 요청처럼 URL에 붙지 않는다]는 뜻이다.
GET -> 데이터가 URL에 포함된다.
POST -> 데이터가 요청 본문(Body)에 포함된다. (헤더 다음)
Try It!

서버에 이름을 입력했을 때, 입력 내용을 반대로 바꾸어 사용자에게 다시 표시하여 HTTP 요청 처리의 기본 원리를 보여준다.
The Quiz

임의의 숫자 [1111, 1212]를 입력해보자.

다음과 같이 Burp Suite에서 확인할 수 있다.
POST와 magic_num=96 인것이 바로 확인 가능하다.

POST와 magic number를 Burp Suite의 Request에서 본 답들을 넣어본다.
"Congratulations, You have successfully completed the assignment."라는 멘트가 뜨게되며 성공적으로 Quiz를 풀어냈다.
'Webhacking > WebGoat' 카테고리의 다른 글
| [WebGoat] 설치 및 WebWolf 연동 방법 (0) | 2025.09.09 |
|---|