收藏!小白程序员必看:Web文件功能点漏洞原理、绕过技巧与实战利用链汇总
本文详细介绍了Web文件功能点中常见漏洞的原理、绕过技巧和实战利用链,涵盖了文件读取、上传下载、ID遍历、导出解析等核心场景。文章重点讲解了伪协议读取、XXE、SSRF联动、ID注入越权等实用打法,并覆盖了从信息搜集到提权GetShell的完整流程,适合网络安全学习和日常挖洞实战。
0x01简介
Web文件相关功能是渗透测试高频突破口,涵盖文件读取、上传下载、ID遍历、导出解析等核心场景。本文整合各类文件漏洞的原理、绕过技巧与实战利用链,汇总伪协议读取、XXE、SSRF联动、ID注入越权等干货打法,覆盖从信息搜集到提权GetShell的完整流程,适配网安学习、日常挖洞实战需求。
现在只对常读和星标的公众号才展示大图推送,建议大家把渗透安全HackTwo“设为星标”,否则可能就看不到了啦!
参考文章:
https://xz.aliyun.com/spa/#/news/18107https://www.hacktwohub.com/
末尾可领取挖洞资料/加圈子 #渗透安全HackTwo
0x02正文详情
下载读取
文件可疑ID遍历/注入
下载接口出现铭感信息的(自己独有的东西)有用户的汇集的地方就很可能存在漏洞
出现数字ID遍历,越权下载其他人文件,GET``POST皆切换尝试,利用IDOR越权,但是有鉴权字段就无效了
userId=19230239023923232 NickName =232193299321324343orderid=1989885454549549注入思考是+1 -1,观察数值有没有被带入执行,可以是选择性数字的导入/下载数字是否带入数据库查询
赏金猎人|SRC简单拿下某公交后台系统多个高危漏洞思路及试探通用型漏洞
导出Excle功能点,输入1的时候,表示导出第一列数据,此处包长为6360
在我输2的时候表示导出前2列数据,此时包长为6364
当我输xxx?id=2-1时,此时导出的是开始第一列1列数据,包长为6360了,这就很明显的用户可以操控拼接进SQL语句进行正则运算,所以遇到文件id 测试遍历及注入有时候也会有意想不到的惊喜
假设原本的 SQL 查询语句为:SELECT column_name FROM table_name WHERE id = ‘用户输入的id’;
探测到注入无过滤情况就可以构造恒真条件永远为真,导致查询返回所有记录,从而绕过了原本的查询条件,获取了所有列的数据,假设存在过滤条件就慢慢探测了,只能靠个人思路绕过
如果用户输入的 id 是 1’ OR ‘1’=‘1,那么拼接后的 SQL 查询语句会变成:SELECT column_name FROM table_name WHERE id = ‘1’ OR ‘1’=‘1’’;
file参数下载接口任意读取
读取文件功能点接口,按照读取的文件id返回对应的文件,字段file=xxxx,同上文不同的是虽然功能也是为文件相关,但相关字段并不是idfileidinode这种明确表示依靠文件id输出文件的,而是file表示文件相关字段,此类场景不仅仅可以测试注入、越权、遍历、还可以测试任意文件读取,类似的参数还有filesname file files, 不外乎功能点,只能接口字段出现此类就可以测试,只是这种漏洞出现在操作文件读取下载场景较多,下面会介绍到利用伪协议读取场景
file=189839434343 //可以尝试读取file=…/…/ect/passwd
列如apis/xxxxxxx/download?filePath=接口,于是便可以尝试任意文件读取,成功下载etc/passwd
整理好
用字典,形成自己的测试规范,遇到好的绕过Payload做好记录,
图片链接http://file/1.png
图片的链接形式是http://file//xxxxx.png可以测试成file//etc/passwd或者只保留http://file对路径无处理可能会列出该目录下所有的文件
http://file//a0b24dbc24f3d24530999e10e11a88c7242338c0a849d91aa0ee47369cd2b6147f.pnghttp://file// etc/passwd http://file//
type类型任意文件读取
接口中出现type类型参数时,尝试读取文件,最不起眼的参数也可能隐藏着重大的安全风险,设计要文件相关的参数都需要铭感起来filename
GET /api/saber?type=xxxxx GET /api/saber?type=…/…/…/…/…/…/etc/passwd
400状态码任意读取
推特国外大牛挖掘遇到的情况,在路径上进行路径遍历,本以为参数带入才可以路径遍历,有时候骚的思路路径就是参数,响应包为400试试看路径遍历
payload: ///////./././././etc/passwd
文件包任意文件读取区别
文件包含会包含文件然后输出,任意文件读取只能读取
文件包含和任意文件读取都支持伪协议还有远程地址,但是文件包含一般会有漏洞文件的前缀
http://baidu.com/ saber.php ?name=…/…/…/…/Windows./system.ini saber.php<?php $file=$_GET['name']; include($file);?>
根据功能点分析这个地方会是SSRF还是任意文件读取,请求网络功能如下必须测试DNSlog
http://baidu.com/saber?file=htttp:sxxxxx
无响应办法就测试任意文件读取file协议,能读文件了就可以读其他记录IP的铭感文件,需要注意权限的问题,权限决定我们能读取/下载文件范围,尝试读取root/.bash_history看自己是否有root权限,此文件只能是root用户读取它包含了root用户操作命令的记录如果没有,只能按部就班的利用…/来逐层跳转读取
etc/passwd记录了系统所有用户信息http://baidu.com/saber?file=file://etc/passwd # /etc/shadow 是用于存储用户账户密码等安全相关信息的文件 只有root用户才能读
不带协议文件包含
理解http://xxxx/saber?name=etc/passwd与http://xxxxx/saber?name=file://etc/passwd之间的差异
参考文章
https://mp.weixin.qq.com/s/7prdLc9ml6q2chrRxdsdEQhttps://mp.weixin.qq.com/s/PdFm_Y3FNDkCMrsHXcm_2whttps://mp.weixin.qq.com/s/Zkw68UPDWcHBn6cayVdITg
拿到任意读取漏洞思路先读取管理员root用户.bash_history命令记录 ,看自己是否有root权限,此文件只能是root用户读取它包含了root用户操作命令的记录,读取此用户的登录私钥包括历史记录记录,如果用户配置了可以通过密钥登录,那么读取私匙到本地 也可以完成 登录,私匙验证的东西远程下载下来,然后可以直接拿私匙到自己电脑上去远程登录对方ssh
/root/.bash_history # 读取root用户历史命令可能会出现ssh私钥存储位置或其他铭感文件路径/proc/self/status # 当前用户运行进程状态
无法读取管理员.bash_history,尝试读取/proc/self/status进程的uid和gid判断 当前用户权限
后读取/etc/password的内容对比进程知道自己是什么用户,此文本会显示系统所有的用户,搜索home /bin/zsh就是实际存在且可以登录系统的用户以及root用户
攻防中首先尝试身份去读取/root/.bash_history,获取管理员的历史命令记录,如果读取不了代表当前并没有root权限,则寻找其他可登录的用户,以它的身份去读取文件
/home/saber/.zsh_history # 读取saber用户历史命令可能会出现ssh私钥存储位置/hoem/saber/.ssh/id_rsa # 尝试读取普通用户默认私钥 /root/saber/.ssh/id_rsa root用户默认地址/root/.ssh/id_rsa # root 默认地址
file读取机器文件获得内网IP
Linux系统
/etc/hosts 包含了主机名与 IP 地址的映射关系,可能会记录内网 IP 信息/etc/network/interfaces 存储网络接口的配置信息,其中可能包含内网 IP 地址/proc/net/fib_trie 包含了路由表信息,从中可以获取到内网 IP 地址~/.ssh/id_rsa Linux系统中用户的SSH 私钥默认位置
Windows系统
类似于 Linux 系统的/etc/hosts文件,存储了主机名与 IP 地址的映射关系C:/Windows/System32/drivers/etc/hosts:
常见中间件日志路径
/var/log/apache2/access.log/var/log/apache/access.log/var/log/apache2/error.log/var/log/apache/error.log/usr/local/apache/log/error_log/usr/local/apache2/log/error_log/var/log/nginx/a
dicr协议探测内网端口读取到IP就可以这样这样爆破操作
国光SSRF靶场探测内网
如果读取到IP端口并且未授权就连接Redisdict这个协议也可以操作Redis执命令
dict://127/0.0.1:6379/info/ # SSR伪造协议读取redis信息 cat /etc/hosts #读取网络信息
读取或包含Redis密码记录网站存在文件包含可以 读取redis配置文件信息,或者是其他的Spring boot heapdump等
上传文件图片
路径可控覆盖文件 / 上传后无路径
一个点可以任意读取,通过读取/home/user/.bash_history历史命令得到网址的目录地址,然后跨目录传
参考文章
https://mp.weixin.qq.com/s/g8-xTjaQ6Q9hL09rCkgLdw
判断是否可控
文件路径和文件名可控指我们选择图片上传,在请求包中/响应包就会显示出路径,我们修改路径或者文件名为自己可控的,再次发送如果成功路径代表可控
路径可控,那么可以控制整个网站的目录尝试覆盖,网站下存放的东西在前端是可以知道的,上传相同的路径相同的文件名不就可以实现覆盖了嘛)
- 路径可控尝试覆盖,上传2次同一目录下不同的图片,用浏览器打开最后图片是否一致,是则无用 否则是漏洞2. 再次上传测试…/跨目录上传实现目录穿越
此处是上传功能,上传的参数为type,正常上传后发现响应包回显的路径是这样,路径回显了等于请求包控制了响应包的上传,
POST /demo/upload?type=1.jsp // 请求包路径/demo/upload/home/type/1.jsp // 响应 包路径
猜测type参数就是文件夹名,如果 更改为其他的就会上传到其他位置去,使用…/实现跨目录上传
思路就是寻找系统的web路径,直接上传脚本getshell
POST /demo/upload?saber=1.jsp // 请求包路径/demo/upload/home/saber/1.jsp // 响应包路径
上传不可知路径
查看下载文件地方,下载时抓包对路径推敲
F12 找网站images 文件夹下是否存在路径
选择图片右键新标签打开,查看此图片对应的图片路径
路径推测方法
如果响应包回显了路径可以删掉第一层然后拼接响应的目录,上传文件靶场都是这样的形式
一般单独上传后的目录都是会在这一层目录下比如
上传回显如果是saber/1.txt或是1.txt 直接拼接在后面就行,会去掉原有 一层 看很多都是这样的
https://baidu.com/demp/saber/1.txthttps://baidu.com/demp/1.txt
OSS
阿里云验证
文件上传到OSS服务器过程中的三种经典验证方式
- 在客户端通过JavaScript代码完成签名,然后通过表单直传数据到OSS // 硬编码在JS中2. 在服务端完成签名,然后通过表单直传数据到OSS3. 在服务端完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到OSS OSS回调完成后,再将应用服务器响应结果返回给客户端
前提上云且可以预览不然不满足正常的文件上传,涉及到了云存储桶攻防,任何情况下,都不可以企图直接以图片后缀(.jps/.png/.gif/.jepg)命名文件并上传,这类文件里即使包含html代码或者js代码,其代码也不会被任何浏览器解析的
任意上传不限制类型
上传任意后缀文件都不解析,尝试上传.HTML文件写入XSS,或上传异常后缀的文件,写入HTML代码是很有可能得到存储XSS任意上传尝试htaccess文件 导致RCE
任意文件上传/类型解析
https://mp.weixin.qq.com/s/MEodN2cUG55rOnBMz48LqA
阿里云任意文件上传的时候,先判断文件的路径和文件名是否可控,接着去同厂商的其他网站查找静态图片或文件,看是否可以相互转换,实现任意文件覆盖
上传图片任意上传html asp php的文件,如路径可控进行路径穿越
- png —>1.php----->1.html…static/img/img1: 存放静态资源图片等信息的服务器
不做解析情况
不做解析我们修改文件类型Content-Type为我们想要的,上传的文件是HTML PDF SVG格式 不解析但是可以预览,或许是因为这个类型没有改变,把它的东西全部作为图片去解析了,尝试更改类型
(此操作情况是上传的文件支持预览操作而不是访问后直接下载,这样才有危害)
Content-Type: image/jpeg // 正常图片类型--------------------------------------------------------Content-Type: text/html // HTML文档类型上传.html修改Content-Type: application/pdf // PDF文件格式Content-Type: application/x-httpd-php // PHP格式Content-Type: application/jsp // JSP格式Content-Type: application/xml // XML格式
上传后缀名还是.jpg但文件类型改为html上传成功可能会图片后缀解析html
payload
Content-Disposition: form-data; name=“file”; filename="12.png"Content-Type: text/html
STStoken覆盖文件
导入或者上传的功能点,也是上传过后响应包返回了如下数据,如不知道桶名只能源码慢慢审查,判断是哪个云厂商然后找平台文档找脚本进行应用填入对应的值,还是需要一个包一个包的找泄露
Bucket 桶名tmp_secret_keytmp_tokene-------secret_id=secret_key=
根据文档脚本进行上传文件操作,上传的文件是在根目录下,按理
通过脚本填入对应的值,任意上传文件至网站根目录,如知晓 网站其他路径上传即可实现覆盖操作.body为上传的内容
☰
返回了如下数据,如不知道桶名只能源码慢慢审查,判断是哪个云厂商然后找平台文档找脚本进行应用填入对应的值,还是需要一个包一个包的找泄露
通过脚本填入对应的值,任意上传文件至网站根目录,如知晓 网站其他路径上传即可实现覆盖操作.body为上传的内容
☰
互动话题:如果你对网络攻防技术感兴趣,想学习更多网安方面的知识和工具,可以看看以下题外话!
题外话
黑客/网络安全学习路线
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2026最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
一、2026最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
**读者福利 |***CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 *(安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。
L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。
L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。
L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题
整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)
三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
四、网络安全护网行动/CTF比赛
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
**读者福利 |***CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 *(安全链接,放心点击)