Ricky Hao

XSS:IE下text/plain绕过XSS

0x00

一般在服务器返回Content-type: text/plain的时候,浏览器都不会去解析其中的代码。
但是IE在这方面有了个小Bug导致有可能绕过这个限制。

0x01 神秘的.eml文件

.eml文件,按字面上来看就是一个email格式。实际上它是OutLook的Email格式。
在这里,我们给出一个.eml文件范例

TEST.EML
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

=3Cscript=3Ealert=28document.domain=29=3C=2fscript=3E

当我们在IE中打开这样的链接

http://127.0.0.1/test.eml

他会弹窗让你下载。
但是,当我们设置Apache的.htaccess文件如下时

AddType message/rfc822 .eml

再次打开链接,会发现,IE将其直接渲染了,并且成功弹窗!
这是因为IE识别Content-Type将邮件内容直接渲染。

0x02 Bypass text/plain

有了上面的基础之后,我们可以尝试利用IE这个小bug来绕过Content-Type的限制。
例如我们可以将邮件内容换为一个指向text/plainiframe,这样当我们访问邮件链接时,会发现成功执行text/plain页面的内容,并且是在目标域下。
这样就能成功XSS了。

0x03 参考

[0day] Text/Plain Considered Harmful

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据