본문 바로가기

[Wargame Write-up]/WebGoat

[WebGoat] [Buffer Overflows] Off-by-One Overflows

Web에서의 Buffer Overflow 문제이다. 일단 임의로 적고 접속해보자.




사용 시간에 따른 요금이 나온다.




그대로 제출했을 때 어떤 파라미터를 전달하는지 보기 위해, Burp suite를 이용했다.


hidden input으로, 아래에 표시된 3개가 함께 전달된다.




room_no를 overflow시켜보자. 너무 길면 Bad request라는 400 응답 에러를 주기 때문에


적당히 5000자 미만으로 생성하자.


Python으로 다음과 같이 쉽게 만들 수 있다.




이렇게 4097자의 1이 들어있는 파일이 생성되었고




room_no에 넣어주자




Forward하면 성공한다.


하지만, 끝내려면 Restart Lesson 하고 실제 VIP로 접속해야 한다고 한다.




Chrome 개발자 도구를 이용하면, 다음과 같은 hidden input이 존재한다. 


3개가 한 쌍이며, 이 중 아무거나 골라서




이렇게 넣어주면 된다. 이후 요금나오는 화면에서는 아무거나 선택하고 제출하면 완료된다.