linux文件上传白名单绕过,【漏洞详解】基于文件上传点挖掘存储型XSS漏洞

本文详细介绍了如何利用Linux文件上传的白名单绕过,探讨了存储型XSS漏洞的挖掘。通过实战案例,展示了在文件上传功能中,如何通过特殊字符和文件头欺骗服务器,利用Edge或IE浏览器的MIME嗅探攻击,成功执行JavaScript代码,实现存储型XSS攻击。此外,还讨论了异常后缀名和SVG文件的利用情况。
摘要由CSDN通过智能技术生成

原标题:【漏洞详解】基于文件上传点挖掘存储型XSS漏洞

说到文件上传漏洞,常见的姿势是是尝试利用上传木马 Getshell。但是,在挖漏时很少碰到可以顺利上传木马的点,一般都是卡在某一步(服务器白名单过滤、已上传木马文件找不到路径、无法解析……),然后不了了之……而实际上,对于文件上传的功能点,我们还可以进一步尝试进行存储型 XSS 跨站脚本攻击,往往会有意想不到的惊喜!本文将对其进行介绍。

PART ONE

实战案例

先来看某大佬分享的一个实战案例:【漏洞挖掘】从受限的上传漏洞到储存型XSS 。

1、上传功能

在做项目时,我非常喜欢通过 Fuzz 来研究目标的文件上传点。一般来说,文件上传漏洞会造成严重的安全漏洞,并且技术人员似乎难以防范。考虑到应用站点的安全性,有经验的人员会将上传的文件储存在特定域,以减轻或避免上传漏洞造成的危害。

目标属于私人项目,站点上有一个请求协助功能。在这个求助表单中,用户可以上传附件。尝试上传正常的图片后,我注意到一件事:上传的图片被储存在同一个域下。

f85dccf7fd80173653618c1a99cde90c.png

服务器响应包:

1{ "result":true, "message": "/UploadFiles/redacted/redacted/3021d74f18ddasdasd50abe934f.png,"code ":0}

2

2、模糊测试

接下来做常规操作,上传.html文件,返回:

1{ "result": false, "message": "That file type is not supported.", "code": 0}

当然,这是预料之中的事。现在,我可以大致判断目标站点采用了白名单策略。

接下来,尝试使用 Burp Intruder 来爆破有哪些后缀。Github 上的 SecLists 项目有一个很好用的后缀字典。但是,经过测试发现目标站点似乎存在速率限制,发了几十个数据包后,我的 IP 被 ban 了。

挂上V皮N,我接着手动测试了一些常用扩展。我还测试了我想得到的所有绕过方法(空字节绕过,unicode 编码等等),但都失败了。目前得出四个可上传的后缀名:jpg,jpeg,png 和 gif,成功上传后,目标应用会给文件重新赋名。

最后注意到一个有趣的东西,扩展名中可存在特殊字符,并且不会被删除。举个例子, badfile.”gif可以上传成功,但是badfile.foo”gif不行。

于是乎,构造请求:

1-----------------------------6683303835495

2Content-Disposition: form-data; name= "upload"; filename= "badfile.''gif"

3Content-Type: image/png

4

5GIF89a

6@HackerOn2Wheels

7-----------------------------6683303835495--

服务器响应:

1{ "result": true, "message": "/UploadFiles/redacted/redacted/3021d74f18f649f5ac943ff50abe934f.''gif", "code": 0}

关于这个文件上传点,总结如下:

应用从最后一个&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值