来源:自学PHP网 时间:2015-04-15 15:00 作者: 阅读:次
[导读] 程序官网:http: www youyax com 漏洞程序下载地址:http: www 2cto com ym 201402 44952 html漏洞文件位置在: YouYaX Tpl mobile home mypub html 第23行处的 eval() 函数 document onre...
程序官网:
http://www.youyax.com/
漏洞文件位置在:\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()/
修复方案:
根据业务选择是否保留或者过滤
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com