渗透测试--Fuzzing Web应用

总体思路

        当我们发现一个Web应用的时候,我们可以从Web的各个层面发起信息搜集。比如Web目录,了解Web页面的后端语言揭露后端文件的参数揭露后端文件参数的可选值,爆破子域名、获取私有域名等。这些信息将帮助我们进一步渗透,有时候会起到关键作用。其实其核心点就是尽可能的发现多的Web应用程序,以及尽可能猜测出Web应用的功能。

Fuzzing Web目录

        爆破网站的目录结构,这些目录结构当中可能包含一些我们意想不到的敏感信息。建议发现了就点进去看看。通常使用ffuf工具可以完成这项工作

Fuzzing 文件后缀名

        爆破网站的后端文件类型。通常使用ffuf工具可以完成这项工作

识别隐藏的host

        有时候,我们会发现有些域名是私有的,在公开的互联网我们无法直接访问到私有域名。这个时候我们需要探测私有域名背后的IP是什么。这迫使我们需要找到私有DNS服务器的IP地址。而私有DNS的服务器域名是有迹可循的,例如一个ydx.com,其通常会含有ns.ydx.com,dns.ydx.com等域名,这些域名在有可能是公开于互联网的。通常使用ffuf工具可以爆破到这些域名。然后我们可以借助dig或者nslookup等工具向DNS服务器提问,看是否能够返回隐藏域名的IP地址。或者对host参数进行爆破,以获取当前服务器端口所存在的其他域名。

Fuzzing 后端参数

        扫描web的参数,可以帮助我们在没有API手册的情况下,攻击目标。参数是黑客可控的参数部分,也就是攻击的入口点,自然参数名则变得非常关键。

Fuzzing后端参数值

工具

fuff

fuff是非常好用的一款fuzzing工具

选项

参数作用
-v详细输出fuzzing到地路径
-e指定fuzzing的文件后缀名

事例

目录爆破
ffuf -w /opt/useful/seclists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ
ffuf -w <字典目录> -u http://SERVER_IP:PORT/FUZZ
ffuf -w /opt/useful/seclists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ -u http://SERVER_IP:PORT/FUZZ
文件后缀爆破
ffuf -w /opt/useful/seclists/Discovery/Web-Content/web-extensions.txt:FUZZ -u http://SERVER_IP:PORT/blog/indexFUZZ
递归扫描

        递归扫描是一种进阶的扫描方式,他会递归地进行扫描,我们可以指定递归深度。 

ffuf -w /opt/useful/seclists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ -u http://SERVER_IP:PORT/FUZZ -recursion -recursion-depth 1 -e .php -v
 扫描子域名

        在很多情况下,许多网站实际上会有一些不公开的子域名,并不会将它们发布在公共 DNS 记录中。因此,如果我们在浏览器中访问这些子域名,将无法连接,因为公共 DNS 并不知道它们的 IP。同样地,如果使用子域名爆破的方法,我们只能识别出公开的子域名,而无法识别任何不公开的子域名。

ffuf -w /opt/useful/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u https://FUZZ.inlanefreight.com/
扫描隐藏子域名

扫描隐藏子域名有两种选择:

1.为/etc/hosts添加私有DNS服务器的位置,并将域名下的解析都映射到私有DNS服务器的IP。例如:

*.ydx.com        <私有DNS服务器IP>

2.对HTTP请求头的host参数进行爆破。
原理:我们无法访问到隐藏子域名是因为公共DNS服务器没有正确的IP域名映射关系导致我们找不到对应的IP服务端口导致的。所以如果我们保持使用正确的IP域名映射就可以确保找到服务端口。在找到服务端口的同时,我们修改HTTP报文中host参数为新的域名服务映射,则可以成功让服务端口处理新的域名服务映射。如果新的域名服务映射存在,则会出现不同的返回报文,如果没有则会如普通的回应一样。通过这种方式,在服务端口来爆破VHost的情况。

ffuf -w /opt/useful/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u http://academy.htb:PORT/ -H 'Host: FUZZ.academy.htb'
扫描后端参数 -GET
ffuf -w /opt/useful/seclists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php?FUZZ=key -fs xxx
扫描后端参数-POST
ffuf -w /opt/useful/seclists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php -X POST -d 'FUZZ=key' -H 'Content-Type: application/x-www-form-urlencoded' -fs xxx
扫描后端参数值

这里ffuf可以完成这个功能,但burp可能会更为灵活便捷

ffuf -w ids.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php -X POST -d 'id=FUZZ' -H 'Content-Type: application/x-www-form-urlencoded' -fs xxx

默认密码库

        该库搜集了市面上很多http应用的默认密码

GitHub - ihebski/DefaultCreds-cheat-sheet: One place for all the default credentials to assist the Blue/Red teamers activities on finding devices with default password 🛡️

遗留问题

rest风格无法爆破文件后缀

但是现在URL的rest风格居多,我们迫切需要这种场景的解决方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值