Fuzz模糊测试,侦探的推理手法
2024-1-14 18:47:24 Author: 白安全组(查看原文) 阅读量:10 收藏

Fuzz Testing (模糊测试)是一种测试方法,即构造一系列无规则的“坏”数据(“坏”数据:非正常数据)插入应用程序,判断程序是否出现异常,以发现潜在的bug。在信息安全领域,也有人尝试引入fuzz testing思想进行安全漏洞挖掘,而且效果不错。

一般涉及生成数据列表,并让程序按数据列表内容请求测试的都可以称为fuzz

fuzz模糊测试,主要作用在于我们遇到一些可疑的页面,进行一些测试

比如,我们遇到这种页面

http://www.wangehacker.cn/sqli-labs/Less-1/

这种我们正常是在后面拼接?id=

但是我们如果遇到不知道的情况,我们就可以使用工具进行模糊测试,这里使用工具arjun,该工具可以在kali中直接下载

然后我们想对这种类型进行模糊测试,就可以指定一个网址目标

arjun -u http://www.wangehacker.cn/sqli-labs/Less-1/

我们可以看到这里检测出来id可能是一个传递参数的关键函数

然后我们想测试id里面的参数里面传递什么值可以得到我们想要的东西,就可以通过burp进行爆破

上面我们检测的时候,也可以选择不同传递参数的方式

通过-m进行选择,可以选择的方式有:/GET/POST/JSON/XML

arjun -u http://www.wangehacker.cn/sqli-labs/Less-1/ -m POST

同时该软件可以导入burp、简单文本文件和原始请求文件导入目标

arjun -i targ.txt

注意:在 Burp Suite 中导出项目时取消选中“base64”选项。

如果想到处结果,可以通过选项-oJ/-oB/-oT

您可以使用相应的选项将结果导出到 BurpSuite 或 txt/JSON 文件。

arjun -u https://api.example.com/endpoint -oJ result.json

-oJ result.json

-oT result.txt

-oB 127.0.0.1:8080

指定注入点

Arjun默认可以在使用JSON或方法参数时检测指定位置的参数。XML所有可用的方法有:GET/POST/JSON/XML

arjun -u https://api.example.com/endpoint -m JSON --include='{"root":{"a":"b",$arjun$}}'

或者

arjun -u https://api.example.com/endpoint -m XML --include='<?xml><root>$arjun$</root

如果想多线程,可以使用-t参数,默认是2个线程

arjun -u http://www.wangehacker.cn/sqli-labs/Less-1/ -t 10

从被动源收集参数名称

选项:--passive

您可以从 CommonCrawl、Open Threat Exchange 和 WaybackMachine 收集域(而非子域)的参数名称,并检查它们是否存在于您的目标上。

arjun https://api.example.com/endpoint --passive example.com

如果您想使用目标 URL 中的域,请使用--passive -它仅适用于单个目标。

使用自定义 HTTP 标头

选项:--headers

您可以简单地从命令行添加自定义标头,按\n如下所示分隔:

arjun -u https://api.example.com/endpoint --headers "Accept-Language: en-US\nCookie: null"

使用--headers不带任何参数的选项将打开文本编辑器(默认为“nano”),您只需将 HTTP 标头粘贴到此处并按Ctrl + S保存即可。

包括持久数据

选项:--include

假设您有一个 API 密钥,需要在每个请求中发送,为了告诉 Arjun 这样做,您可以使用--include以下选项:

arjun  -u https://api.example.com/endpoint --include 'api_key=xxxxx'

或者

arjun  -u https://api.example.com/endpoint --include '{"api_key":"xxxxx"}'

要包含多个参数,请使用&分隔它们或将它们作为有效的 JSON 对象传递。

控制查询/块大小

选项:-c

默认情况下,Arjun 在请求中包含 500 个参数,有时可能会超出某些服务器的最大 URL 长度限制。-c您可以通过指定一次发送的参数数量来处理这种情况。

arjun -u https://api.example.com/endpoint -c 250

扫描二维码关注我们吧!


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4MjYxNTYwNA==&mid=2247487056&idx=1&sn=528323d20b368c6997d068deaa819877&chksm=fc9b90cc9ee250a0cce22ec066b652319e05c86c0255b0929421ed269f7040b283e9c3c07554&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh