利用 pwntools 编写 socket 脚本
来源:互联网 发布:央视评论网络直播乱象 编辑:程序博客网 时间:2024/05/29 19:12
作者:环保小魏师
链接:https://zhuanlan.zhihu.com/p/21676068
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://zhuanlan.zhihu.com/p/21676068
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
今天遇到了一道 ppc 的题目,并不难,连接服务器端口后,计算返回的一个算式,发送答案,连续答对十次拿到 flag。
这一操作一般是利用 Python 的 socket 编程实现,后来看到有人说用 pwntools 也可以做,就尝试了一下。
先放正常的 socket 编程脚本。
# coding=utf-8import reimport socketHOST = '115.159.89.123'PORT = 11002BUFFER = 4096 sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.connect((HOST,PORT)) title = sock.recv(BUFFER) print(title)i = 1while 1:recv = sock.recv(BUFFER)if recv:print 'calc' + str(i)print recvif re.search(r'(.*?)=', recv):calc = re.search(r'(.*?)=', recv).group(1)result = eval(calc)print resultsock.send(str(result) + '\n')i += 1elif re.search(r'flag', recv):print recvbreakelse:continuesock.close()
pwntools 好像不能再 Windows 下安装,于是转战 Kali。
pip install pwntools
一般来说都可以成功的,如果有问题,或者用的是其他发行版,可能需要先装点别的。
apt-get install python2.7 python2.7-dev python-pip
#! python# coding=utf-8import refrom pwn import *HOST = '115.159.89.123'PORT = 11002BUFFER = 4096 r = remote(HOST, PORT)title = r.recv(BUFFER)print titlei = 1while 1:recv = r.recv(BUFFER)if recv:print 'calc' + str(i)print recvif re.search(r'(.*?)=', recv):calc = re.search(r'(.*?)=', recv).group(1)result = eval(calc)print resultr.sendline(str(result))i += 1elif re.search(r'flag', recv):print recvbreakelse:continuer.close()
区别不是很大,只是做了一点小小的工作。
0 0
- 利用 pwntools 编写 socket 脚本
- 利用LoadRunner编写socket性能测试脚本
- 利用LoadRunner编写socket性能测试脚本
- loadrunner之socket协议脚本编写
- LoadRunner编写Socket协议脚本方法
- Loadrunner编写socket性能测试脚本简述
- loadrunner的socket脚本编写技巧
- LoadRunner编写Socket协议脚本方法
- LoadRunner编写Socket协议脚本方法
- LoadRunner编写Socket协议脚本方法
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用delphi编写Socket通讯程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 安卓Andriod使用入门(二十七)【点赞动画】
- 多文件多线程断点续传项目练习总结
- Java利用Socket进行远程过程调用
- 转载 同龄人2016年的一篇博文 用来自励
- 数学建模学习笔记
- 利用 pwntools 编写 socket 脚本
- C++ 构造函数使用 ":成员变量(形参)" 的形式给类里面成员变量赋值,如果成员变量和形参是指针,那么需要注意的事项
- 最大公约数与最小公倍数
- 工作项目 17年2月1日 关于迭代法的应用
- 40. Combination Sum II
- Mac快捷键盘记录
- 2017—— 新的一年,新的开始,希望一路从中都有新的收获
- ☆☆☆过来人给嵌入式工程师的十个小建议
- 蓝桥杯练习题P1001(大数乘法)