织梦CMS 登录页面的XSS 注入漏洞及处理

资源来源网络,如需授权,请更换源码,模块仅供学习,如需商用请购买正版授权,本栏目不提供技术服务,积分不够请签到!如何签到?系统升级暂停签到,恢复关注公告!
如遇下载链接蓝奏网盘打不开lanzous替换成lanzoux尝试! 广告

一、客户检测报告:

事件URL:

http://127.0.0.1/mgr/login.php?gotopage=%22%3E%3Cinput%20type=%22text%22%20onInput=alert(1)%3E%3Cx=%22

事件类型:
漏洞-KingCms门户系统存储型XSS

事件URL:

http://127.0.0.1/mgr/login.php?gotopage=%22%3E%3Cinput%20type=%22text%22%20onInput=alert(1)%3E%3Cx=%22

二、XSS注入分析

检测方使用的注册方式(转码前):

http://127.0.0.1/mgr/login.php?gotopage=”><input type=”text” onInput=alert(1)><x=”

原理是 利用目标表单页面上面的一个input 隐藏域:<input name=”gotopage” value=”${gotopage}”> 实现注入。

 

三、处理方式 :

方法1:过滤js关键字

function xss_clea1($var)
{
$ra=array(‘/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/’,’/script/i’,’/javascript/i’,’/vbscript/i’,’/onload/i’,’/onunload/i’,’/onchange/i’,’/onsubmit/i’,’/onreset/i’,’/onselect/i’,’/onblur/i’,’/onfocus/i’,’/onabort/i’,’/onkeydown/i’,’/onkeypress/i’,’/onkeyup/i’,’/onclick/i’,’/ondblclick/i’,’/onmousedown/i’,’/onmousemove/i’,’/onmouseout/i’,’/onmouseover/i’,’/onmouseup/i’,’/onunload/i’);
$var = preg_replace($ra,”,$var);

return htmlspecialchars($var,ENT_QUOTES);
}

方法2:转义特殊符号 及html 关键字

function xss_clean2($data){

// Fix &entity\n;

$data=str_replace(array(‘&’,'<‘,’>’),array(‘&amp;’,’&lt;’,’&gt;’),$data);

$data=preg_replace(‘/(&#*\w+)[\x00-\x20]+;/u’,’$1;’,$data);

$data=preg_replace(‘/(&#x*[0-9A-F]+);*/iu’,’$1;’,$data);

$data=html_entity_decode($data,ENT_COMPAT,’UTF-8′);

// Remove any attribute starting with “on” or xmlns

$data=preg_replace(‘#(<[^>]+?[\x00-\x20″\’])(?:on|xmlns)[^>]*+>#iu’,’$1>’,$data);

// Remove javascript: and vbscript: protocols

$data=preg_replace(‘#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([`\'”]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu’,’$1=$2nojavascript…’,$data);

$data=preg_replace(‘#([a-z]*)[\x00-\x20]*=([\'”]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu’,’$1=$2novbscript…’,$data);

$data=preg_replace(‘#([a-z]*)[\x00-\x20]*=([\'”]*)[\x00-\x20]*-moz-binding[\x00-\x20]*:#u’,’$1=$2nomozbinding…’,$data);

// Only works in IE: <span style=”width: expression(alert(‘Ping!’));”></span>

$data=preg_replace(‘#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'”]*.*?expression[\x00-\x20]*\([^>]*+>#i’,’$1>’,$data);

$data=preg_replace(‘#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'”]*.*?behaviour[\x00-\x20]*\([^>]*+>#i’,’$1>’,$data);

$data=preg_replace(‘#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'”]*.*?s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*+>#iu’,’$1>’,$data);

// Remove namespaced elements (we do not need them)

$data=preg_replace(‘#</*\w+:\w[^>]*+>#i’,”,$data);

do{// Remove really unwanted tags

$old_data=$data;

$data=preg_replace(‘#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i’,”,$data);

}while($old_data!==$data);

// we are done…
return $data;
}

四、如何使用:

在接收页面,用这两个函数分别过滤所有的参数:

如:

$gotopage = xss_clean1($gotopage);
$gotopage = xss_clean2($gotopage );

©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
风格酷模板网 » 织梦CMS 登录页面的XSS 注入漏洞及处理
NOTICE:【咨询风格酷】客服QQ:1131734965
NOTICE:【咨询风格酷】客服微信:wwwxmamnet
NOTICE:【风格酷模板网②群】QQ群:288678775
☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉如果源码网盘地址失效!或有其他问题,请点我报错,谢谢合作!
☉人民币与积分汇率为1比10,即1元=10积分.有任何疑问请联系客服
☉如有其他问题,请加网站客服QQ(1131734965)进行交流。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
☉源码、模板等资源会随着技术、环境的升级而存在部分问题,还请慎重选择。

发表评论

风格酷模板网www.xmam.net分享优质网站模板

立即查看 了解详情