CSRF概述
Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。
CSRF(get)
打开右边的提示,告诉我们有这么多用户,密码都是123456,我们要验证CSRF的存在,只需要让一个用户登录后点击构造好的url,然后自动修改个人信息。
首先先登录vince用户
修改个人信息
将信息全改成1,保存修改信息时的url
a0b75a90b36f4b05a78d96ac87d6dd95.app.mituan.zone/vul/csrf/csrfget/csrf_get_edit.php?sex=111111111&phonenum=1111111111&add=111111111&email=111111&submit=submit
然后换个用户登录
访问之前保存的url
然后lucy的信息就被修改为全都是1了
CSRF(post)
post的原理和get是一样的,只是数据被隐藏在post里了,同样也是构造一个传输post参数的链接,然后诱使用户点击,这个链接的网页需要我们自己去构建
具体参考这位大佬的文章:皮卡丘–CSRF
我这里就不搞了,原理搞清楚就行了。
CSRF(token)
token是用来防止CSRF漏洞的,具体原理如下:
当浏览器访问网站A时,网站A设置cookie会增加随机值token,这个值是随机的。返回给浏览器时,cookie会储存在浏览器,同时会把token传给表单里面的隐藏字段。所以当浏览器用自己的表单时会自带token,网站A取到这个值和cookie里的token—致就通过。而网站B里面的表单没有这个值,所以不能通过,这样就阻止了恶意攻击。非表单也是这样的原理。