Ethan's Blog

大话FUZZ测试

字数统计: 1.7k阅读时长: 6 min
2019/03/28 Share

前言

在此之前我已经分享了关于FUZZ的两篇文章,一篇是关于FUZZ过某狗进行SQL注入,一篇是关于一款经典工具WFUZZ的使用!今天我就FUZZ测试流程进行简单分析!欢迎各位斧正!

[TOC]

正文

核心思想

  • 目录Fuzz( base )
  • 参数Fuzz
  • Payload Fuzz (Bypass)
FUZZ敏感目录
御剑

这款工具大家都比较熟了,也是一款比较经典的工具,它的模式是怎样的呢?

http://domain.com/+你的目录字典那一般我们的目录字典是这样子的

在这里插入图片描述

那么这种扫描有什么好处呢?就是针对一部分网站可以扫描的全面,只要你的字典足够强大就可以扫描到绝大多部分的目录和文件,来自Blasting_dictionary的爆破字典很好,github地址https://github.com/rootphantomer/Blasting_dictionary这里的103w+目录字典就很符合御剑的模式,其实也就是看程序员的命名。

Dirsearch

dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件

kali里面并没有dirsearch,需要从github下载!

下载:git clone https://github.com/maurosoria/dirsearch

并进入下载目录

cd dirsearch/

运行需要python环境,这里使用python3

python3 dirsearch.py -u "http://localhost/" -e *

在这里插入图片描述

扫描网站需要指定网站的脚本类型,* 为全部类型的脚本

参数列表:

-h, –help 查看帮助
-u URL, –url=URL 设置url
-L URLLIST, –url-list=URLLIST 设置url列表
-e EXTENSIONS, –extensions=EXTENSIONS 网站脚本类型
-w WORDLIST, –wordlist=WORDLIST 设置字典
-l, –lowercase 小写
-f, –force-extensions 强制扩展字典里的每个词条
-s DELAY, –delay=DELAY 设置请求之间的延时
-r, –recursive Bruteforce recursively 递归地扫描
–scan-subdir=SCANSUBDIRS, –scan-subdirs=SCANSUBDIRS 扫描给定的url的子目录(用逗号隔开)
–exclude-subdir=EXCLUDESUBDIRS, –exclude-subdirs=EXCLUDESUBDIRS 在递归过程中排除指定的 子目录扫描(用逗号隔开)
-t THREADSCOUNT, –threads=THREADSCOUNT 设置扫描线程
-x EXCLUDESTATUSCODES, –exclude-status=EXCLUDESTATUSCODES 排除指定的网站状态码(用逗 号隔开)
-c COOKIE, –cookie=COOKIE 设置cookie
–ua=USERAGENT, –user-agent=USERAGENT 设置用户代理
-F, –follow-redirects 跟随地址重定向扫描
-H HEADERS, –header=HEADERS 设置请求头
–random-agents, –random-user-agents 设置随机代理
–timeout=TIMEOUT 设置超时时间
–ip=IP 设置代理IP地址
–proxy=HTTPPROXY, –http-proxy=HTTPPROXY 设置http代理。例如127.0.0.1:8080
–max-retries=MAXRETRIES 设置最大的重试次数
-b, –request-by-hostname 通过主机名请求速度,默认通过IP
–simple-report=SIMPLEOUTPUTFILE 保存结果,发现的路径
–plain-text-report=PLAINTEXTOUTPUTFILE 保存结果,发现的路径和状态码
–json-report=JSONOUTPUTFILE 以json格式保存结果

Dirb

使用方法

1
dirb http://www.100security.com.br /usr/share/dirb/wordlists/common.txt

我每次都使用/usr/share/wordlists/dirb/common.txt这个字典在各种的情景下都是很好用!

在这里插入图片描述

dirbuster 与之类似所以便不再引出!dirb的判断很智能他在你输入目标后会进行计算错误的请求,避免内些返回200的not found

WFUZZ

wfuzz是一款十分万能的工具我最近的目录爆破全都是使用wfuzz用熟练之后真的非常十分方便,排除一些响应码之后直接baseline这是我目前比较喜欢的用法!用法参考我之前写的博客

参数FUZZ

这里使用sqli-libs第29关进行简单测试!

首先我们使用wfuzz自带的sqlfuzzer测试参数

在这里插入图片描述

这里我们把结果导出为html文件方便我进行查看!

在这里插入图片描述

这里所有都是返回是200,有时候会有不一样的状态码,比如404,403等!这时候需要我们去除或者特别注意!所以接下来我们查看不同的fuzz结果

在这里插入图片描述

在这里插入图片描述

我们通过fuzz就发现这一关存在sql语句的报错!那么就有可能存在报错注入!fuzz更多时就会发现一些绕过它waf的情况,这个需要更深的挖掘!这里只是做一个引子!

Payload FUZZ

这部分内容参考我之前的博客:FUZZ过某狗!

所谓payload fuzz其实就是通过大量测试枚举字符组合,最终得到能够绕过WAF的有效载荷!

栗子

栗子来源:c1h2e1师傅

wfuzz -z file,starter.txt -p 192.168.31.26![:1080:]()SOCKS5 --hs "Cannot" https://foo.domain.com/FUZZ
当时我fuzz的命令,因为是国外的网站所以加了代理,过滤了返回Cannot的返回包当我等待返回结果的时候他返回了/user/login.action当我访问的时候返回的具体内容我没有保存,大概意思是User Not found然后我停下了wfuzz开始进行/user/目录的fuzz这是我fuzz了很久,基本上都是返回这样,然后打开了user目录,发现他直接给我返回了整站的用户数据由于是私有项目而且涉及用户比较多
在这里插入图片描述
这就是核心思想的体现在寻找漏洞点的目录Fuzz!

漏洞挖掘与Fuzz之敏感目录可利用参数

在这里插入图片描述

先从Burpsuite的扩展程序CO2说起,关于CO2的话相信不需要太多介绍了,Sqlmapper模块很好,而CeWler的功能是参数提取,比如我们在Http history 里找返回包右键发送到CeWler模块就可以进行参数提取了,在实战中的用处很大,可以把参数提取出来保存做参数字典,这样的字典更高效。

Jsonp劫持

一次众测中我的目标网站是金融站,在个人中心的很多业务都是json返回,有很多的敏感信息。我尝试Fuzz了callback函数结果没有成功,之后我在另一个子域名进行了参数提取发现了_cb_在添加之后发现成功的回调,然后劫持成功。

在这里插入图片描述

Hidden XSS

原文链接https://markitzeroday.com/xss/finding/2018/02/03/hidden-xss.html

在这里插入图片描述

这里原作者用到了Nikto这里他发挥的作用在于目录的爆破其实如果用其他工具也可以代替,返回报告发现了/test/目录,这是访问了test目录

在这里插入图片描述

返回了NULL,这是他进行了进一步的fuzz,也就是参数fuzz

在这里插入图片描述

在fuzz过后发现了item参数,这是访问http://rob-sec-1.com/test/?item=XSSpayload成功弹窗

在这里插入图片描述

很好的体现参数Fuzz与目录Fuzz如果这个item参数有过滤那就很完美的体现了所有的核心思想(因为博客不能写script标签,所有替换成了XSSpayload)

关于字典

Fuzzdb

https://github.com/Fuzzdb-project/Fuzzdb

seclist

https://github.com/danielmiessler/SecLists

某大牛的字典

https://github.com/bl4de/dictionaries/

https://github.com/1N3/IntruderPayloads/

结语

FUZZ测试系列介绍,已经完结!以后会分享一些FUZZ的真实案例!FUZZ作为漏洞挖掘的重要姿势!是一个安全从业人员不可或缺的技能!希望大家多多挖洞!天天开心!该吃饭了…………

CATALOG
  1. 1. 前言
    1. 1.1. 正文
      1. 1.1.1. FUZZ敏感目录
      2. 1.1.2. 御剑
      3. 1.1.3. Dirsearch
      4. 1.1.4. Dirb
      5. 1.1.5. WFUZZ
      6. 1.1.6. 参数FUZZ
      7. 1.1.7. Payload FUZZ
      8. 1.1.8. 栗子
      9. 1.1.9. 关于字典
    2. 1.2. 结语