如何使用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 相关文章推荐
10款最好的Web开发的 Python 框架
Mar 18 Python
python 截取 取出一部分的字符串方法
Mar 01 Python
Django安装配置mysql的方法步骤
Oct 15 Python
Python清空文件并替换内容的实例
Oct 22 Python
python requests爬取高德地图数据的实例
Nov 10 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
python 装饰器功能与用法案例详解
Mar 06 Python
Python将字典转换为XML的方法
Aug 01 Python
Python批量将csv文件转化成xml文件的实例
May 10 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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
讲解Python中运算符使用时的优先级
2015/05/14 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
写给老师的表扬信
2014/01/21 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
复活读书笔记
2015/06/29 职场文书
感恩教育主题班会
2015/08/12 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL