白帽故事 · 2023年9月22日 0

LFI -从高危升级为严重

背景介绍

一位国外白帽子正在测试一个VDP程序,经过前期侦查后,他选择了对一个子域进行搜索。

打开Burp拦截请求,其中一个请求成功的引起了白帽小哥的注意。

https://target.tld/api/whitelabel/getFile?file=favico

file

白猫小哥开始尝试 LFI 并获取 /etc/passwd 文件,但响应均为空。

然后白帽小哥开始使用Seclists进行Fuzz:

https://github.com/danielmiessler/SecLists/tree/master/Fuzzing/LFI

https://target.tld/api/whitelabel/getFile?file=../../../../../../../../../../../../etc/hosts
https://target.tld/api/whitelabel/getFile?file=../../../../../../../../../../../../var/log/dmesg
https://target.tld/api/whitelabel/getFile?file=../../../../../../../../../../../../etc/ssh/ssh_host_dsa_key
https://target.tld/api/whitelabel/getFile?file=../../../../../../../../../../../../var/log/dpkg.log

file
/etc/hosts

file
/etc/ssh/ssh_host_dsa_key

虽然没有大的影响,但LFI也算高危漏洞了,那么能否将漏洞级别提升至“严重级”呢?

hackerone上有不少这样的案例,比如以下这些:

file

根据这些案例报告,如果想将漏洞级别提升至“严重级”,需要找到一些‘特别’的东西,通过暴力破解似乎有点困难。

于是白帽小哥用特殊字符和 unicode 对内部端点进行Fuzz,并发现了一些有趣的东西。( * 字符可以返回每个目录中的所有文件)
比如下面这个请求:

https://target.tld/api/whitelabel/getFile?file=../../../../../../../../../../../../../../../var/www/*

file
数据库账号及密码

尝试登录看看,Bingo!
file

file

源码泄露:

file

这下漏洞的级别妥妥的“严重”了~

file

结果也确实没有令白帽小哥失望。

PS:关于 * 的用法,还可以这样使用:
/etc/apache2/*SOME-STRING
如果该字符串与该目录中的文件名的一部分匹配,则返回该文件。像下面这样:

file

file

你学会了么?白帽小哥的推特:@snoopy101101