hacking
[sstf2021] bof102
hy3on9
2021. 8. 21. 23:24
payload의 값을 받는 부분에서 bof 발생
system("/bin/sh")를 띄워서 권한 획득 후 flag 파일을 읽는 것이 목표다
스택 구조는
payload[16] + esp[4] + ret
ret를 system addr로 돌리고 인자값으로 들어갈 /bin/sh는 전역변수 name에 넣어 해당 위치로 돌려주면 되겠다
gdb를 통해서
system 함수의 위치 0x80483e0
name의 위치는 scanf의 들어가는 인자값을 통해 알아냈다 0x804a034
한 가지 기억해둬야 할 점은
패킹한 system과 name의 주소값은 byte 형식이라 payload에 들어갈 값 모두 byte 형식으로 맞춰줘야 한다는 점이다
파이썬3으로 넘어오면서 고렇게 됐다
참고로 보호기법 확인은 다음과 같이 하면 된다