T-Reqs:一款基于语法的HTTP漏洞挖掘工具

关于T-Reqs

T-Reqs全称为Two Requests,T-Reqs是一款基于语法的HTTP模糊测试漏洞挖掘工具,该工具可以通过发送版本为1.1或更早版本的变异HTTP请求来对目标HTTP服务器进行模糊测试以及漏洞挖掘。该工具主要通过下列三大步骤实现其功能:(1)生成输入;(2)对生成的输入进行变异处理;(3)将变异后的数据发送至目标服务器;

生成输入

工具会使用输入的CFG(上下文无关文法)语法来生成HTTP请求。由于下面所示的示例语法是为请求行模糊处理而定制的,因此每个请求行组件及其可能的值都已经明确指定了。此时,我们将能够使用各种形式的请求行生成有效的请求,并从变异的角度将每个请求行组件视为一个单独的单元。

'<start>':

     ['<request>'],

 '<request>':

     ['<request-line><base><the-rest>'],

 '<request-line>':

     ['<method-name><space><uri><space><protocol><separator><version><newline>'],

 '<method-name>':

     ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],

 '<space>':

     [' '],

 '<uri>':

     ['/_URI_'],

 '<protocol>':

     ['HTTP'],

 '<separator>':

     ['/'],

 '<version>':

     ['0.9', '1.0', '1.1'],

 '<newline>':

     ['\r\n'],

 '<base>':

     ['Host: _HOST_\r\nConnection:close\r\nX-Request-ID: _REQUEST_ID_\r\n'],

 '<the-rest>':

     ['Content-Length: 5\r\n\r\nBBBBBBBBBB'],

输入变异

每个组件都可以用两种方式进行标记:字符串变异和树变异(具体参见示例配置)。如果组件为字符串变异,那么我们就可以删除、替换或在随机位置插入随机字符。

在下面的示例(左侧)中,删除了协议版本(1)中的最后一个字符,用R替换方法名称中的第三个字母(S),并在URI的开头插入正斜杠。然而,如果一个组件是树变异,那么我们就可以随机、替换或插入到该组件下的一个随机位置。

下面的示例(右侧)显示了应用于请求行组件的三个树变异:(1)方法被协议替换;(2)在当前URI之后插入一个额外的URI;(3)删除现有的proto。

工具下载&安装&配置

该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。

源码获取

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/bahruzjabiyev/T-Reqs-HTTP-Fuzzer.git

工具使用

工具配置

测试工具应该了解用户对输入的生成和变异的偏好。更具体地说,应该在配置文件中指定输入语法、突变组件和突变首选项等(具体参见示例配置)。

运行模式

为了能够复现在每次迭代中生成和变异的输入,工具使用了一个种子编号。实际上,在输入的生成和变异的过程中,这个种子编号会作为一个随机的变异种子来使用。根据这些种子提供给工具的方式,它将以下列两种模式中的其中一种运行:单独模式和集体模式。

在单独模式下,工具将根据用户指定的种子来生成和变异输入。在下面的命令中,指定了一个种子(即505)。或者,也可以使用-f选项指定种子列表。

python3 main.py -i -c config -s 505

在集体模式(默认)下,工具将从零开始作为种子值,并在每次迭代中递增,直到结束,其中种子的开始和结束编号是可以自定义配置的。

python3 main.py -c config

参考资料

https://bahruz.me/papers/ccs2021treqs.pdf

ACM CCS 2021 - November 15-19, 2021

t-reqs/config at main · bahruzjabiyev/t-reqs · GitHub

t-reqs/code/feedback-server.py at main · bahruzjabiyev/t-reqs · GitHub

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

  • 31
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值