当前位置: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:欢迎白帽子们帮我来做论坛测试


漏洞评价:

评论

  1. 2014-05-19 21:34 | LaiX ( 普通白帽子 | Rank:128 漏洞数:39 | 承接 建站、仿站、维护、反黑客、代码审计...)

    不应该无影响吧。

  2. 2014-05-19 21:53 | LaiX ( 普通白帽子 | Rank:128 漏洞数:39 | 承接 建站、仿站、维护、反黑客、代码审计...)

    找厂商理论了一下,以下是厂商的回复:因为跨站脚本不是存储在服务器上也不是访问服务器返回跨站代码而是客户端脚本的逻辑处理问题引起的,危害性不大,除非有些知识超出我范围了,那我就不知了。

  3. 2014-05-19 23:27 | LaiX ( 普通白帽子 | Rank:128 漏洞数:39 | 承接 建站、仿站、维护、反黑客、代码审计...)

    结贴:http://bbs.youyax.com/Content-index-id-5389.aspx

  4. 2014-05-22 23:24 | YouYaX(乌云厂商)

    1分很低,应该20分

  5. 2014-05-23 11:30 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)

    @YouYaX 反射XSS一般5分

  6. 2014-05-23 13:48 | YouYaX(乌云厂商)

    @只发通用型 貌似是我给多少分,白帽子就得多少分,别人帮忙找出了问题,20分应该的。

  7. 2014-05-23 18:24 | LaiX ( 普通白帽子 | Rank:128 漏洞数:39 | 承接 建站、仿站、维护、反黑客、代码审计...)

    @只发通用型 给多少rank无所谓,只要能认真思考积极修复,那就是对白帽子最大的回报了

  8. 2014-05-23 18:56 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)

    @YouYaX 良心厂商 我来了...

  9. 2014-05-23 23:06 | YouYaX(乌云厂商)

    @只发通用型 欢迎前去测试~`(*∩_∩*)′

  10. 2014-05-23 23:09 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)

    @YouYaX 已经提交 在后台审核了

  11. 2014-05-24 20:31 | YouYaX(乌云厂商)

    @只发通用型 没收到通知

  12. 2014-05-26 16:13 | 计算姬 ( 普通白帽子 | Rank:398 漏洞数:90 | 看我看我看我啊)

    能看到代码?

  13. 2014-05-26 16:56 | YouYaX(乌云厂商)

    @计算姬 我公开了,所以能看到吧

  14. 2014-05-26 17:06 | 计算姬 ( 普通白帽子 | Rank:398 漏洞数:90 | 看我看我看我啊)

    @YouYaX 嗯,我是说他能看到bbs的代码?我后来看了下,这论坛是开源的,所以能吓到代码啊,我懂了。我刚也提交了一个。

  15. 2014-06-06 08:28 | mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )

    @YouYaX 正愁今天撸哪一套,就你了!

  16. 2014-06-06 09:23 | 计算姬 ( 普通白帽子 | Rank:398 漏洞数:90 | 看我看我看我啊)

    @mramydnei 撸的差不多了,还有属于非代码安全的问题。不过是小厂商,我就不提交了。