from pwn import *
把pwntools导入进来,同时会把一些系统库给导入进来。本地打的话 p=process('./filename')
,远程的话 p=remote('192.168.1.103',10001)
。
发送payload
p.send(payload) 发送 payload
p.sendline(payload) 发送 payload,并进行换行(末尾\n)
p.sendafter(some_string, payload) 接收到 some_string 后, 发送你的 payload
p.sendlineafter(some_string, payload) 接收到 some_string 后, 发送你的 payload,加个换行(末尾\n)
接收返回内容
p.recvn(n) 接受 n(数字) 字符
p.recvline() 接收一行输出
p.recvlines(n) 接收 n(数字) 行输出
p.recvuntil(some_string) 接收到 some_string 为止
p.interactive() 直接进行交互,相当于回到shell的模式,一般在取得shell之后使用
p.close() 关闭交互
生成shellcode
asm(shellcraft.sh())
对于sendlineafter的使用
1:倘若遇见puts函数
如
2:倘若遇见printf函数
举个栗子:printf("Input your Plaintext to be encrypted")
printf函数本身不会自动换行,若使用sendlineafter,则需 sendlineafter("encrypted",p),才能精确发送payload并被程序接收。
Comments | NOTHING