hacking

[sstf2021] bof102

hy3on9 2021. 8. 21. 23:24

bof102.c

payload의 값을 받는 부분에서 bof 발생

system("/bin/sh")를 띄워서 권한 획득 후 flag 파일을 읽는 것이 목표다

 

스택 구조는

payload[16] + esp[4] + ret

 

ret를 system addr로 돌리고 인자값으로 들어갈 /bin/sh는 전역변수 name에 넣어 해당 위치로 돌려주면 되겠다

 

disassemble bofme
disassemble main

gdb를 통해서

system 함수의 위치 0x80483e0

name의 위치는 scanf의 들어가는 인자값을 통해 알아냈다 0x804a034

 

ex.py

한 가지 기억해둬야 할 점은

패킹한 system과 name의 주소값은 byte 형식이라 payload에 들어갈 값 모두 byte 형식으로 맞춰줘야 한다는 점이다

파이썬3으로 넘어오면서 고렇게 됐다

 

 

참고로 보호기법 확인은 다음과 같이 하면 된다

checksec