去年某政务云重保让我长了记性:攻击队早就不玩`php://filter`这种直球攻击了。他们在`file=`参数里玩俄罗斯套娃,先用base64编码绕WAF,再套两层路径遍历,最后用expect包装器执行远程命令。当时我手动构造payload到凌晨两点,结果第二天发现某开源工具LFImap的`-a`全模块扫描模式,五分钟就能覆盖我通宵写的测试用例。
这工具最骚的是支持**多语言命令注入**。有次给某跨境电商做渗透测试,发现个印尼语开发的接口,用`--lang-id`参数直接上了印尼语的特殊字符编码,愣是把藏在`/var/log/`里的支付日志给读了出来。后来甲方安全总监看到报告里的「成功利用印尼语路径分隔符」差点把枸杞茶喷屏幕上。
刚入行那会,我只会无脑甩`../`大法,现在用LFImap的`-q`快速模式,能根据目标环境智能选择payload:遇到Java系统自动切`classpath:`协议,撞见Node.js服务切`proc/self/environ`路径,连冷门的Ruby On Rails的`LOGFILE`参数都收录在指纹库。上次在某物联网平台发现个Go语言写的接口,工具居然用`os.Open()`的特定报错信息反推出了绝对路径。
最让我感动的是`--log request.log`日志记录功能。有次客户死磕「渗透测试破坏生产数据」,直接把工具生成的完整请求记录拍过去——每个payload都精确控制读取范围,连`tail -n 10`这种防爆操作都提前写进了自动化脚本。
想要获取工具的小伙伴可以直接拉至文章末尾
我们来提取并讨论上述工具描述中涉及的网络安全关键技术点:
-
突破传统WAF对基础LFI攻击的规则拦截。系统过滤`../`但放行base64编码,利用`php://filter/convert.base64-encode/resource=`协议链绕过。系统因多语言开发导致路径解析混乱,攻击者通过`--lang-id`参数注入特定编码字符读取支付日志。
-
在非传统注入点开辟攻击面。系统WAF仅监控GET参数,通过请求头污染(`X-Forwarded-For`插入恶意载荷),FORM-line参数后置注入(`-D "page=../../etc/passwd"`),HTTP方法篡改(POST型LFI漏洞利用)等,某VPN限定环境下通过`--proxy`参数将LFI转为SSRF攻击链。
-
解决无回显场景下的漏洞验证难题。DNS外带通信(`--callback`触发OAST服务),时间盲注与二阶攻击联动(`-s`参数结合`--timeout`),存储型漏洞延时触发机制。
-
将人工经验转化为可复用的攻击路径。智能环境识别(Java/Node.js/Ruby特征自动适配)。请求链完整记录(`--log`生成符合司法取证要求的操作日志)。快速模式(`-q`)动态剪枝低效测试用例
-
突破深度防御体系的最后一道防线。多维度载荷混淆(特殊字符插入/注释分割/空白符填充)。上下文感知型Payload生成(基于响应报错动态调整)。合规性边界试探(等保2.0例外条款的自动化检测)。
下载链接
https://github.com/hansmach1ne/LFImap
原文始发于微信公众号(白帽学子):本地文件包含测试工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论