当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-061486

漏洞标题:代码审计系列7: youyax开源论坛程序 DOM Based XSS

相关厂商:youyax.com

漏洞作者: LaiX

提交时间:2014-05-19 19:59

修复时间:2014-08-17 20:00

公开时间:2014-08-17 20:00

漏洞类型:xss跨站脚本攻击

危害等级:低

自评Rank:10

漏洞状态:厂商已经修复

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-19: 细节已通知厂商并且等待厂商处理中
2014-05-19: 厂商已经确认,细节仅向厂商公开
2014-07-13: 细节向核心白帽子及相关领域专家公开
2014-07-23: 细节向普通白帽子公开
2014-08-02: 细节向实习白帽子公开
2014-08-17: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

DOM Based XSS

详细说明:

程序官网:
http://www.youyax.com/
漏洞程序下载地址:
http://down.chinaz.com/soft/33435.htm
漏洞文件位置在:\YouYaX\Tpl\mobile\home\mypub.html 第23行处的 eval() 函数

......
......
......
document.onreadystatechange = function(){
if (document.readyState == "complete"){
var aes=document.getElementById("pagination").getElementsByTagName("a");
var url=window.location.href;
18行 var url_array=url.split("=");
var page=url_array[1];
var uclass=document.getElementById("pagination").getElementsByTagName("a");
for(var n in uclass)
{
23行 var str=eval("/fy"+page+"/");
if(str.test(uclass[n].className)&&uclass[n].className!=undefined)
{
uclass[n].style.background="#deccb1";
}
}
}
}
......
......
......


观察上面的代码不难发现,18行处的

var url_array=url.split("=");


是罪魁祸首。
整个过程将URL以等号(=)之后的字符送入page变量,然后等到页面触发AJAX - onreadystatechange 事件 再通过eval函数执行了page里面的变量。
知道了程序的逻辑后,我们可以在URL处构造如下:

http://127.0.0.1/YouYaX/Tpl/mobile/home/mypub.html?=/.source+alert()/


漏洞证明:

当我们访问http://127.0.0.1/YouYaX/Tpl/mobile/home/mypub.html?=/.source+alert()/

1.png

修复方案:

根据业务选择是否保留或者过滤

版权声明:转载请注明来源 LaiX@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2014-05-19 21:02

厂商回复:

对系统无不良影响,但有助于开发者编码规范

最新状态:

2014-05-20:作者低估了漏洞的破坏力,被诱导点击后,危害等级应该是很高的,感谢LaiX指出的问题

2014-05-25:欢迎白帽子们帮我来做论坛测试