fuzz模糊测试
fuzz介绍
Fuzz模糊测试是一种软件测试方法,旨在发现应用程序或系统中的漏洞和错误。它通过向应用程序输入大量随机、无效或异常的数据来测试其稳定性和安全性。Fuzz测试通常用于测试网络协议、文件格式、API接口和其他输入接口,以发现潜在的安全漏洞和错误。
Fuzz测试的基本原理是通过向目标应用程序输入大量的随机或异常数据,以触发潜在的漏洞和错误。这些数据可能包括无效的输入、边界条件、格式错误、特殊字符等。通过不断地输入这些数据,测试人员可以观察应用程序的行为,并检测是否出现了异常情况,如崩溃、内存泄漏、拒绝服务攻击等。
Fuzz测试通常分为以下几个步骤:
- 选择目标:确定要测试的目标应用程序或系统,例如网络协议、文件格式、API接口等。
- 构建fuzz测试工具:编写或使用现有的fuzz测试工具,用于生成和发送大量的随机或异常数据。
- 运行fuzz测试:使用fuzz测试工具向目标应用程序输入大量的随机或异常数据,观察其行为并记录任何异常情况。
- 分析结果:分析fuzz测试的结果,发现潜在的漏洞和错误,并向开发团队报告这些问题。
Fuzz测试的优点包括可以发现一些传统测试方法无法发现的漏洞和错误,测试覆盖范围广,可以有效地发现潜在的安全问题。然而,Fuzz测试也存在一些缺点,如测试效率低、需要大量的时间和资源、难以模拟真实环境等。
fuzz举例
- 测试文件上传靶场黑名单
以第四关为例
此处为网站源码黑名单
$deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf");
当不知道黑名单时,可以输入无效数据看看返回结果
后缀名为php时,文件不允许上传
当修改为未知数据时,发现可以上传成功
将包发给intruder,然后将文件名添加标记
添加测试的字典
如图以下长度5399的都为上传成功的,剩下的长度不一致的为禁止上传和上传错误的
经过筛选过后即可得到黑名单