我觉得我无法掌握Pwntools的各种功能,因此我进行了调查和总结。
什么是Pwntools?
Gallopsled CTF团队用来解决Pwnable
的Python库
pwntools是一个CTF框架和漏洞利用开发库。
它是用Python编写的,旨在用于快速原型开发和开发,旨在使漏洞利用程序编写尽可能简单。
引用:http://docs.pwntools.com/en/stable/index.html
-
点击这里了解详情
- Pwntools存储库
- 官方文件
管
用于程序输入/输出的功能
标准输入/输出
接收数据
-
recv(n) :接收n个字节的数据 -
recvline() :接收一行数据(直到出现换行符) -
recvuntil(hoge) :接收数据,直到到达hoge -
recvregex(pattern) :接收数据,直到它与pattern指定的正则表达式匹配为止 -
recvrepeat(timeout) :接收数据直到其超时或达到EOF -
clean() :丢弃缓冲的数据
发送数据
-
send(data) :发送数据 -
sendline(line) :发送时将" \\ n"添加到作为参数给出的数据中
流程和基本功能
您可以使用
1 2 3 4 5 6 | from pwn import * io = process('sh') io.sendline('echo Hello, world') io.recvline() # 'Hello, world\n' |
如果需要设置命令行参数或环境变量,请使用其他选项。
有关详细信息,请参见官方文档
1 2 3 4 5 | from pwn import * io = process(['sh', '-c', 'echo $MYENV'], env={'MYENV':'MYVAL'}) io.recvline() # 'MYVAL\n' |
互动交流
您可以使用
1 2 3 4 5 | from pwn import * io = process('sh') io.interactive() |
网络通讯
您可以使用
1 2 3 4 5 6 | from pwn import * io = remote('google.com', 80) io.send('GET /\r\n\r\n') io.recv(8) # 'HTTP/1.0' |
实用程序
通用功能
整数操作
使用