如何使用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解决Fedora解压zip时中文乱码的方法
Sep 18 Python
Python KMeans聚类问题分析
Feb 23 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
python常用函数与用法示例
Jul 02 Python
Python动态声明变量赋值代码实例
Dec 30 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
Django REST Swagger实现指定api参数
Jul 07 Python
通过代码实例了解Python sys模块
Sep 14 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 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
destoon二次开发常用数据库操作
2014/06/21 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
Python计算信息熵实例
2020/06/18 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
销售找工作求职信
2013/12/20 职场文书
小学教师听课制度
2014/02/01 职场文书
工伤赔偿协议书
2014/04/15 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python