Dreamhack 썸네일형 리스트형 BOF 중 scanf에 대한 글 DreamHack에 워게임 문제들을 처음부터 풀어보고 있는데 막힌 부분이 있어서 블로그에 정리한다. NX같은 보호기법도 안걸려있는 전형적인 버퍼오버플로우 취약점의 문제였다. 간단히 페이로드를 [Nop Sled] [Shellcode] [SFP] [RET = Buf's addr] 로 구성하여 exploit을 했다. 처음에는 peda에서 제공해주는 쉘코드를 사용했는데 스택에 쉘코드가 제대로 박히지 않았다. 디버깅을 해봤는데, System Call을 위해 eax를 11(=0xb)로 셋팅하려고 사용한 "push 0xb" 명령어의 기계어인 "6a 0b" 중 "0x0b"가 누락되었다. 테스트해보니깐 입력을 받는 함수인 scanf에서 0xb를 입력값으로 받아들이지 못하고 입력이 종료되버린다. ASCII 코드표를 보면,.. 더보기 이전 1 다음