[WebGoat] [General] HTTP Basics 첫 번째 문제, HTTP Request parameter를 확인해보라는 문제이다. Sniffing을 위해 Proxy와 Burp suite를 켜둔다. 대충 적고 Go! 버튼을 누르면 아래처럼 HTTP 패킷을 볼 수 있다. GET 요청으로 person이라는 파라미터 변수에 입력된 값이 담겨 전송되고 있다. Forward를 누르면 이 요청에 대한 응답 메시지를 볼 수 있다. 더 볼 필요는 없으니 intercept를 종료한다. 입력 값이 도치되면서 Clear된다. 더보기 [LoB RedHat 6.2] LEVEL 2: gremlin -> cobolt LEVEL 2: small buffer 아래 코드를 보면, buffer가 256바이트에서 16바이트로 현저히 줄어들었다. 준비한 쉘코드는 25바이트라 넣기도 벅차다. 그래서 생각한 전략은 아무런 제약이 없는 argv[2]를 이용하는 것이다. bash2로 실행한 뒤 복사본을 만들고 디버거로 분석해보자. 역시 strcpy에 취약점이 있으므로 호출 직후인 0x8048465에 breakpoint를 건다. [16-byte buffer + 4-byte sfp + 4-byte ret]을 고려해 24바이트 argv[1]에 넣어 실행한 후, Stack의 상태이다. 이후 argv[2]의 주소를 알아보기 위해 C 100개를 넣은 argv[2]로 재실행했다. NOP sled를 이용할 것이니 중간에 적당히 0xbffffb30부.. 더보기 이전 1 ··· 636 637 638 639 640 641 642 ··· 661 다음