CSRF跨站请求伪造学习
csrf是什么?
csrf也叫做on click攻击
和xss非常容易混淆,主要区别就是CSRF是借用户权限完成攻击的,攻击这没有拿到用户的权限,而xss是直接盗取了用户的权限
一个例子就是CSRF攻击是当用户正在访问某个购物网站的话,他已经登录了,这个时候我们只需要自己注册一个账号,然后看一下修改个人信息的请求是什么,如果安全性不高的话,可能请求里面只有要修改的信息,不会携带原始信息进行验证,这样的话把这个链接发给他,他点击后,个人信息就被修改了。
而使用XSS攻击的话就是获取到他的cookie,然后用他的cookie进行登录,然后修改个人信息
如何确认一个web系统存在CSRF漏洞
对网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造
比如修改管理员账号时,并不需要验证旧密码,导致请求容易被伪造
比如对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造
确认凭证的有效期(这个问题会提高CSRF被利用的概率)
虽然退出或者关闭了浏览器,但cookie仍然有效,或者session并没有及时过期,导致CSRF攻击变的简单
实例
使用pikachu平台的题目
提示里面给了一些账号密码
我们用vince登陆
点击:修改个人信息
我们点submit抓一下包,看看传的是什么内容
1 |
|
发送的是这样一个请求,没有携带cookie并且直接把修改的信息放在url上面,猜测存在csrf漏洞
我们复制一下这个请求
现在我们退出登陆,登陆另一账号allen
然后我们直接把刚刚的请求输入到地址栏回车
我们发现allen的个人信息被改成vince的个人信息了,攻击成功。
总结实际利用方式:
vince的账号就是攻击者的,攻击者获取自己修改个人信息的请求,然后对这个请求进行伪造,比如可以把电话改成123456,然后这个请求就是一个链接,攻击者可以把这个链接发给被攻击者allen,如果被攻击者刚好登陆了这个网站,那么点击链接后,自己的个人信息就被改掉了。
注意这个攻击成功是有条件的:1、被攻击者当前登陆了该网站 2、点击攻击者的恶意链接使用的浏览器和登陆网站使用的浏览器相同。
用户防范措施:
- 使用完账号后及时退出登陆
- 不随便点击恶意链接
- 点击奇怪链接的时候换一个浏览器
程序员防范措施:
- 使用token
- 验证码
- 敏感操作前必须二次验证身份
但是如果网站本身存在xss攻击,那就没必要防范csrf了,因为xss可以获取cookie,token等,比csrf的权限高得多,所以必须先修复xss
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!