freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课
FreeBuf+小程序

FreeBuf+小程序

官方公众号企业安全新浪微博

国内领先的互联网安全新媒体,同时也是爱好者们交流与分享安全技术的社区

利用showModalDialog绕过IE的XSS过滤 金币
2015-08-06 14:06:55

今天我想与大家分享一篇使用showModalDialog绕过IE的Xss过滤的文章。

showModalDialog函数已经存在许多年了,虽然现目前在WEB标准中已经看不到它的身影,但它有一个独特的机制,我认为我为其写的这篇文章是值得的。该函数支持IE, Firefox以及Safari。注意Chrome37时就取消了对该函数的支持!

首先,我们来总结以下showModalDialog的使用方法

第一个参数就是你想要在模拟对话框中打开的URL,第二个参数是你想传递给模拟对话框参数,你可以在模拟窗口中通过window.dialogArguments特性使用它。

通过window.dialogArguments传递参数,这两个窗口必须同源。

但是他们的returnValue值不同,在Safari和IE下两个窗口不需要同源,而在Firefox两个窗口就需要同源了。

下面是我的测试地址:

http://vulnerabledoma.in/showModalDialog/opener.html

Safari可以轻松的将其传递给不同的源,请点击 "x-origin" 按钮进行测试。

从IE上进行复制,我们需要3xx重定向,请点击"x-origin(redirect)" 按钮进行测试。

通过Safari和IE中returnValue的特性,我们可以将信息传递给另外一个源。这可能会给目前许多Web应用带来威胁,当然我不会在2015年提倡大家安全使用showModalDialog。

绕过IE Xss过滤

可利用条件:

1.JS中存在Xss
2.JS中包含敏感信息

下面为我的测试页面:

http://vulnerabledoma.in/xss_token?q=[XSS_HERE]

<form name=form>
<input type=hidden name=token value=f9d150048b>
</form>
<script>var q="[XSS_HERE]"</script>

眼见为实,耳听为虚。请使用IE看看下面的POC

http://l0.cm/xssfilter_bypass/showModalDialog.html

如果顺利当你关闭模拟对话时,你会看到弹出token字符串。

我们来看看细节。你将会重定向到

http://vulnerabledoma.in/xss_token?q=%22%3BreturnValue=form.token.value//

注入有效载荷:

<form name=form>
<input type=hidden name=token value=f9d150048b>
</form>
<script>var q="";returnValue=form.token.value//"</script>

接着,token传递给returnValue。

无需多言,它的工作原理:

";returnValue=document.cookie//
";returnValue=localStorage.key//

我有尝试通过window.opener访问另一个页面的窗口目标(window object)

理解了么?

仅供参考

之前我的博客中有关于绕过Xss过滤的研究,全是日文见谅。

如果你对其他过滤方法感兴趣,欢迎使用Google搜寻。

ブラウザのXSS保護機能をバイパスする(1) (2012/2)
ブラウザのXSS保護機能をバイパスする(2) (2012/3)
ブラウザのXSS保護機能をバイパスする(3) (2012/9)
ブラウザのXSS保護機能をバイパスする(4) (2014/9)
ブラウザのXSS保護機能をバイパスする(5) (2014/10)

在未来我将尽量使用英文来更新博客,谢谢

Update(2015/6/17)

我找到一种方法通过returnValue传递其他同源页面的信息。

无论如何,请进入下面的地址,并点击go按钮

http://l0.cm/xssfilter_bypass/showModalDialog2.html

如果顺利,你能够在弹出的窗口中看到来自其他同源页面的信息"<h1>This is secret Text!</h1>"

在这个POC,我们不需要3xx重定向,可以在来自x-origin页面存在着showModalDialog的iframe中设置returnValue。

* 参考来源mksben,译者/鸢尾 转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文作者:, 转载请注明来自FreeBuf.COM

被以下专栏收录,发现更多精彩内容
+ 收入我的专栏
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦