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

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

需求介绍

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

步骤

1. Burp Suite安装插件

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

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

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

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了。

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

(0)

相关推荐

  • python 多线程对post请求服务器测试并发的方法

    如下所示: # -*- coding: utf-8 -*- import requests import threading import time class postrequests(): def __init__(self): self.url = '请求网址' self.files = { 'unknown_image':open('刘诗诗.jpg','rb') } def post(self): try: r = requests.post(self.url,files=self.fi

  • Python实现的多线程http压力测试代码

    本文实例讲述了Python实现的多线程http压力测试代码.分享给大家供大家参考,具体如下: # Python version 3.3 __author__ = 'Toil' import sys, getopt import threading def httpGet(url, file): import http.client conn = http.client.HTTPConnection(url) conn.request("GET", file) r = conn.getr

  • python多线程http压力测试脚本

    本文实例为大家分享了python多线程http压力测试的具体代码,供大家参考,具体内容如下 #coding=utf-8 import sys import time import thread import httplib, urllib import random import uuid import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d

  • 详解Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏览器或不同版本浏览器上,我们的web应用是否可以正常工作. 下面我们看看怎么利用python selenium进行自动化的跨浏览器测试. 什么是跨浏览器测试 跨浏览器测试是功能测试的一个分支,用以验证web应用能在不同的浏览器上正常工作. 为什么需要跨浏览器测试 通常情况下,我们都期望web类应用

  • python3+selenium实现qq邮箱登陆并发送邮件功能

    本文实例为大家分享了python3实现qq邮箱登陆并发送邮件功能的具体代码,供大家参考,具体内容如下 基于selenium,使用chrome浏览器,完成qq邮箱登陆并发送发邮件功能,暂时未封装.qq邮箱和126邮箱登陆还是有一些区别的. #encoding=utf-8 from selenium import webdriver import time #启动chrome浏览器 driver = webdriver.Chrome() #进入qq邮箱登陆首页 driver.get("https:/

  • Python多线程应用于自动化测试操作示例

    本文实例讲述了Python多线程应用于自动化测试操作.分享给大家供大家参考,具体如下: 多线程执行测试用例 实例: import threading from time import sleep,ctime from selenium import webdriver #测试用例1 def test_baidu(browser,search): print("开始,现在时间是%s"%ctime()) print("浏览器是%s"%browser) if browse

  • python实现接口并发测试脚本

    常用的网站性能测试指标有:并发数.响应时间.吞吐量.性能计数器等. 1.并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力. 2.响应时间 响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢.响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间. 3.吞吐量 吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标. QPS(每秒查询数).TPS(每秒事务数)是吞吐量的常用量化指标,另外还有HPS(每秒HT

  • Python并发之多进程的方法实例代码

    一,进程的理论基础 一个应用程序,归根结底是一堆代码,是静态的,而进程才是执行中的程序,在一个程序运行的时候会有多个进程并发执行. 进程和线程的区别: 进程是系统资源分配的基本单位. 一个进程内可以包含多个线程,属于一对多的关系,进程内的资源,被其内的线程共享 线程是进程运行的最小单位,如果说进程是完成一个功能,那么其线程就是完成这个功能的基本单位 进程间资源不共享,多进程切换资源开销,难度大,同一进程内的线程资源共享,多线程切换资源开销,难度小 进程与线程的共同点: 都是为了提高程序运行效率,

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

    这篇文章主要介绍了如何使用Python多线程测试并发漏洞,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求介绍 有时候想看看Web应用在代码或者数据库层有没有加锁,比如在一些支付.兑换类的场景,通过多线程并发访问的测试方式可以得到一个结论. 步骤 1. Burp Suite安装插件 安装一个Copy As Python-Requests插件,提高编码效率: 2. 拦截包并拷贝发包的代码 打开一个文本编辑器,右键粘贴出来: import req

  • python多线程并发及测试框架案例

    这篇文章主要介绍了python多线程并发及测试框架案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.循环创建多个线程,并通过循环启动执行 import threading from datetime import * from time import sleep # 单线程执行 def test(): print('hello world') t = threading.Thread(target=test) t.start() # 多线

  • 对python多线程SSH登录并发脚本详解

    测试系统中有一项记录ssh登录日志,需要对此进行并发压力测试. 于是用多线程进行python并发记录 因为需要安装的一些依赖和模块比较麻烦,脚本完成后再用pyinstaller打成exe包分发给其他测试人员一起使用. 1.脚本编写 # -*- coding: utf-8 -*- import paramiko import threading import time lt = [] def ssh(a,xh,sp): count = 0 for i in range(0,xh): try: ss

  • Python编写漏洞验证脚本批量测试繁琐漏洞

    目录 前言 requests模块使用技巧 取消重定向 SSL证书验证 代理 保持cookie 验证结果 单线程poc脚本 使用多线程 颜色标记 添加进度条 多线程poc脚本 前言 我们实战经常会遇到以下几个问题: ​ 1.遇到一个利用步骤十分繁琐的漏洞,中间错一步就无法利用 ​ 2.挖到一个通用漏洞,想要批量刷洞小赚一波,但手动去测试每个网站工作量太大 这个时候编写一个poc脚本将会将会减轻我们很多工作.本文将以编写一个高效通用的poc脚本为目的,学习一些必要的python知识,这周也是拒绝做工

  • python多线程并发让两个LED同时亮的方法

    在做毕业设计的过程中,想对多个传感器让他们同时并发执行.之前想到 light_red() light_blue() 分别在两个shell脚本中同时运行,但是这样太麻烦了.后来学到了Python多线程,让程序并发执行. 下面具体介绍步骤: 两个led灯,一个蓝灯,一个红灯 蓝灯正极接13,负极接14 红灯正极接12,负极接14 下面是代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import RPi.GPIO as GPIO import thread

  • Python aiohttp百万并发极限测试实例分析

    本文实例讲述了Python aiohttp百万并发极限测试.分享给大家供大家参考,具体如下: 本文将测试python aiohttp的极限,同时测试其性能表现,以分钟发起请求数作为指标.大家都知道,当应用到网络操作时,异步的代码表现更优秀,但是验证这个事情,同时搞明白异步到底有多大的优势以及为什么会有这样的优势仍然是一件有趣的事情.为了验证,我将发起1000000请求,用aiohttp客户端.aiohttp每分钟能够发起多少请求?你能预料到哪些异常情况以及崩溃会发生,当你用比较粗糙的脚本去发起如

随机推荐