LFI(本地文件包含):允许攻击者暴露目标服务器上的文件,在目录遍历(../)的帮助下,可以使攻击者访问本不应该访问到的文件。
今天的故事来自国外一位名为Abhishek的白帽子,接下来我们看看他是如何绕过LFI过滤的吧。
首先来看个例子:
https://example.com/redirect.php?page=/home/index.html
上面这个URL是正常访问index.html页面。
https://example.com/redirect.php?page=../../../etc/passwd
而如果该网站存在LFI漏洞的话,通过上面这个URL可以顺利读取到服务器上的passwd文件。
而此类漏洞被评级为P1级,因为通过LFI漏洞有可能通过各种方法实现RCE。
hackerone上对于LFI的评级
这位白帽小哥在一次目标渗透时,遇到了一个疑似可以LFI的漏洞,他进行某次尝试时:
../../../../../../../etc/passwd.html
出现了如下提示:
感觉有戏,但是结尾会以.html结束。
于是这位小哥尝试将文件类型更改为 txt、png等后缀,得到的结果却依然失败:
另外,小哥还尝试使用了空字节%00,同样失败:
在经历了大量的错误与阻止后,经过小哥的不懈努力,最终成功绕过:
而最终的Payload是:
www.target.com/rd?page=Li4lMkYuLiUyRi4uJTJGLi4lMkYuLiUyRi4uJTJGLi4lMkZldGMuLiUyRnBhc3N3ZC4uJTJGMDAudHh0Ly8uJTAw
如果你把上面这段编码进行base64解码的话,就是:
..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc..%2Fpasswd..%2F00.txt//.%00
正所谓“世上无难事,只怕有心人!”,希望这篇文章能给正在阅读的你有更多的启发!
另外,附上一份LFI的字典:
https://raw.githubusercontent.com/emadshanab/LFI-Payload-List/master/LFI%20payloads.txt
如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品
https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374
技术交流请加笔者微信:richardo1o1 (暗号:growing)