GUET 2024夢極光pwn2

fdddddd發表於2024-12-09

我們先簡單地看一下程式
image
發現它會跳轉到challenge函式
image
定義了陣列buf和v2,v2已經給了初始值,buf用read函式讀取
後面用strcmp()將v2和guet555比較,如果相等(返回0)則會執行if段的內容,不相等的話會return result的結果。
然後我們還可以看到有許多函式
image
現在再回過頭來看challenge裡面的read函式,發現它其實是棧溢位了,但如果我們嘗試用它去解題就會發現是錯的
image
因為buf長度是160,而read只讀取0xD0,對於我們傳送的exp來說不夠長,讀不完,所以是EOF
於是把目光轉向challenge2,發現裡面也有一個read函式溢位,這個夠長,可以用它來溢位。
image
challenge2的返回地址是backdoor,我們點開發現這個後門沒什麼用
image
在ida裡面找一下system(0x04005A0),找一下bin/sh(無),找一下sh(有)
image
就是sh藏得有點深,(在裡面某個字元段裡,需要我們自己去擷取),0x04009B7,會往後讀取到0或者\x00為止
image
至此寫出exp

相關文章