pwntools 简单使用

@Time : 2018/10/7

今天玩picoCTF时遇到的一道题,需要nc进入之后,限时30s回答完全问题才能得到flag

pwntools 简单使用_第1张图片

当然,写了个小脚本,也觉得时间挺够的,还是能撸出来,但是一想,如果以后提交时间限制更短怎么办,于是便有了今天的文章,学会简单使用pwntools!

首先肯定是pwntools的安装,在Ubuntu里面安装的话,一点也不麻烦的,直接就是

sudo pip install pwntools

当然这个是python2的,听说python3的pip是不能直接下的,需要去git

安装好之后,就要简单的使用了,先上脚本

import pwn
import re
def deal1(a):
    b = a.split(" ")
    c = ''
    for i in b:
        c += chr(int(i,2))
    return c

def deal2(a):
    c = ''
    for i in range(0,len(a),2):
        c += chr(int(a[i:i+2],16))
    return c

def deal3(a):
    a = a[1:]
    b = a.split(" ")
    c = ''
    for i in b:
        c += chr(int(i,8))
    return c

def run(r,deal):
    text = r.recvuntil(":")
    print(text)
    res = re.findall("Please give me the (.*?) as a word.",text)
    get = deal(res[0])
    print(get)
    r.sendline(get)

if __name__=='__main__':
    r = pwn.remote("2018shell3.picoctf.com",1225)
    run(r,deal1)
    run(r,deal2)
    run(r,deal3)
    text = r.recvuntil("}")
    print(text)




这里我只使用到了三个函数:

remote

设置目标机的信息,用来建立远程链接,url或ip指明了主机,port设置端口

recvuntil

这是接受消息,直到什么停止这样,类似的还有几个,recvline   接受一行消息 , recvall  接受所有的消息(这个比较慢,不推荐使用)

sendline

发送一行消息,还有 send

这样就实现了简单的自动化回答他的题了,最后结果截个图

pwntools 简单使用_第2张图片

 

你可能感兴趣的:(python)