如何使用Python多线程测试并发漏洞


Posted in Python onDecember 18, 2019

这篇文章主要介绍了如何使用Python多线程测试并发漏洞,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

需求介绍

有时候想看看Web应用在代码或者数据库层有没有加锁,比如在一些支付、兑换类的场景,通过多线程并发访问的测试方式可以得到一个结论。

步骤

1. Burp Suite安装插件

安装一个Copy As Python-Requests插件,提高编码效率;

如何使用Python多线程测试并发漏洞

2. 拦截包并拷贝发包的代码

如何使用Python多线程测试并发漏洞

打开一个文本编辑器,右键粘贴出来:

import requests

burp0_url = "https://www.baidu.com:443/s?word=test123&tn=50000021_hao_pg&ie=utf-8&sc=UWd1pgw-pA7EnHc1FMfqnHRdnHfkP163PWD3PzuW5y99U1Dznzu9m1Y1rj0zPjRYP1Ds&ssl_sample=s_108&srcqid=2890185856410820647&H123Tmp=nu"
burp0_cookies = {"BAIDUID": "DE39C3557AA883A517F3717D9ED1B346:FG=1", "BIDUPSID": "DE39C3557AA883A517F3717D9ED1B346", "PSTM": "1548660573", "BD_UPN": "13314352", "H_PS_PSSID": "1431_21111_18560_28585_26350_28519", "H_PS_645EC": "0701XLkxqPa8GpBa6wBJs%2BrZyNuhMOA%2FIRfHCR7YuUcETmxXSKm0g32CT0c", "delPer": "0", "BD_CK_SAM": "1", "PSINO": "1", "BDSVRTM": "142"}
burp0_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2", "Accept-Encoding": "gzip, deflate", "Referer": "https://www.hao123.com/", "Connection": "close", "Upgrade-Insecure-Requests": "1"}
requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies)

3. 运行Python多线程代码

将生成的python代码粘贴到action( )函数里面即可;

import threading
import requests

threads = []

def action():
  burp0_url = "https://www.baidu.com:443/s?word=test123&tn=50000021_hao_pg&ie=utf-8&sc=UWd1pgw-pA7EnHc1FMfqnHRdnHfkP163PWD3PzuW5y99U1Dznzu9m1Y1rj0zPjRYP1Ds&ssl_sample=s_108&srcqid=2890185856410820647&H123Tmp=nu"
  burp0_cookies = {"BAIDUID": "DE39C3557AA883A517F3717D9ED1B346:FG=1", "BIDUPSID": "DE39C3557AA883A517F3717D9ED1B346",
           "PSTM": "1548660573", "BD_UPN": "13314352", "H_PS_PSSID": "1431_21111_18560_28585_26350_28519",
           "H_PS_645EC": "0701XLkxqPa8GpBa6wBJs%2BrZyNuhMOA%2FIRfHCR7YuUcETmxXSKm0g32CT0c", "delPer": "0",
           "BD_CK_SAM": "1", "PSINO": "1", "BDSVRTM": "142"}
  burp0_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0",
           "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
           "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
           "Accept-Encoding": "gzip, deflate", "Referer": "https://www.hao123.com/", "Connection": "close",
           "Upgrade-Insecure-Requests": "1"}
  requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies)


if __name__ == '__main__':
  print("Threading ready:")

  for i in range(0,100):
    t = threading.Thread(target=action)
  t.setDaemon(True) // 开启守护进程,如果宿主进程挂了,不用执行完全部线程任务也要立即结束。 参考 https://www.cnblogs.com/Haojq/p/10278365.html
  t.start()

  print("Threading ran end!")

4. 确认结果

查看领取的结果是否有超过原本的数量,如果超过就原本可领的数量,那就666了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
对Python中数组的几种使用方法总结
Jun 28 Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 Python
详解Python Matplot中文显示完美解决方案
Mar 07 Python
Python通用函数实现数组计算的方法
Jun 13 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
关于Tensorflow分布式并行策略
Feb 03 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
pycharm配置安装autopep8自动规范代码的实现
Mar 02 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 #Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 #Python
Django中使用MySQL5.5的教程
Dec 18 #Python
Python hashlib加密模块常用方法解析
Dec 18 #Python
Python实现中值滤波去噪方式
Dec 18 #Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 #Python
Python字典底层实现原理详解
Dec 18 #Python
You might like
laravel 4安装及入门图文教程
2014/10/29 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
php实现websocket实时消息推送
2018/03/30 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python简单读取json文件功能示例
2017/11/30 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
JAVA和C++的区别
2013/10/06 面试题
历史专业毕业生的自我鉴定
2013/11/15 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
文员求职信
2014/07/15 职场文书
单位授权委托书范文
2014/08/02 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
谢师宴家长致辞
2015/07/27 职场文书
Java设计模式之代理模式
2022/04/22 Java/Android
oracle数据库去除重复数据
2022/05/20 Oracle