Profile

머리정리하는곳

c2w2m2

[LOB FC4 - level 2] cruel-> enigma

엌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 풀어놓고 포스팅을 까먹었음ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


지금이라도 포스팅 해볼게여



코드를 보면 fgets 로 값을 받는데 이부분에서 bof 는 일어나지 않고 vuln 이란 함수로 0x31337, buffer 를 넘깁니다


vuln 함수에서 strcpy 부분에서 bof 가 일어나네요! 그리고 canary.... 덤으로 RTL도 막아영 ㅎㅎㅎ.....


이문제 넘나 오래걸린것 ㅠㅠ 디게 단순한데 fake ebp가 아직도 안익숙한..


일단 sfp ret 둘다 조작할수 있으니 fake ebp로 조집시당.


canary 가 함수 인자로 준 형태라서 ret 보다 뒤에있는거 유의하셔야됩니당.


fake ebp 로 조지려고 보니 nx....? 그러니 mportect 함수로 풀어버리고 stdin 으로 주소를 돌립시다.


라고 하려 했는데 aslr 로 stdin 주소가 바뀌는것을 까먹고 삽질하다


어찌어찌 알아서 코드를 짜서 해보니



안됨.....ㅎㅎㅎㅎㅎ


그래서 shellcode 쓰는건 포기하고 rtl 로 가자! 해서 


mprotect 대신 execve 를 쓰도록 합시다. \x00 은 


execve + dummy + /bin/sh + (execve + 20) + execve + 24 + "\x00\x00\x00\x00"


이런식으로 하면 되니까!




마지막 if ~ print p.recv 부분은 블로그를 참고했습니당... 이부분에서 에러가 너무 ㅠㅠ



클리어!

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

[LOB FC4 - level 3]enigma -> titan  (0) 2017.07.28
[LOB FC4 - level1] dark_stone->cruel  (0) 2017.06.27
[LOB FC3 - level3] dark_eyes -> hell_fire  (0) 2017.06.27
클리어  (0) 2017.06.27
[LOB FC3 - Level5] evil_wizard -> dark_stone  (0) 2017.06.23