一、什么是CSRF漏洞的
跨站请求伪造(Cross-site request forgery),通常简称为CSRF或者XSRF。是一种通过借用用户的权限在网站上执行并非自己本意的操作。
二、CSRF漏洞具体可以干什么
以你的名义(发邮件;发消息;修改密码;转账;购买商品等)
三、CSRF成立的必要条件
1.受害者没有退出当前页面,也就是说cookie值没有过期。
2.受害者点击了攻击者所发送的恶意连接。
四、CSRF漏洞的原理
首先当用户登录并浏览一个可信网站时,攻击者发送一个恶意链接,用户在没有退出当前网站时 点击了恶意链接,恶意链接将数据以用户的名义提价到可信网站,达成攻击。
五、如何确定一个网站是否含有CSRF漏洞
1.对目标网站增删改的地方做标记,
例如修改密码需不需要旧密码,对敏感信息的修改有没有做token验证
2.确认凭证的有效期
六、CSRF漏洞的利用
1.CSRF(get)型
1.1首先当我们作为攻击者时可以在网站上进行测试
1.2当用户填好数据准备提交时,我们可以通过抓抱=包获取请求包的信息
1.3此时作为攻击者我们可以伪造url连接
payload:http://localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=curry&phonenum=88888888&add=pengyang&email=kobe%40pikachu.com&submit=submit HTTP/1.1
2.CSRF(post型)
由于有些参数通过post提交,所以参数不是在url连接中,这是我们可以伪造一个和用户浏览的一样的表单页面,让用户点击时参数自动提交。
1.当用户输入修改信息。
2.抓取数据包
3.我们需要伪造一个表单
4.在用户没有退出页面时发送一个连接
payload:http://192.168.xx.1/post.html
查看数据改变了
3.CSRF修改密码
这个页面为修改密码的页面。存在CSRF漏洞,此时我们只需要伪造一个表单,在用户没有输入密码时点击CSRF恶意连接,即可自动更改密码
4.CSRF骗取金钱
首先登录到转账页面
抓取数据包
发现为post型请求包,所以我们需要伪造一个表单。
让类型变为hidden,不让用户看到,其
七、CSRF漏洞的防护
增加token验证(常用的做法):
1、对关键操作增加token参数,token值必须随机,每次都不一样;
操作原理:每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对这个随机码进行验证!
关于安全的会话管理(避免会话被利用):
1、不要在客户端端保存敏感信息(比如身份认证信息);
2、测试直接关闭,退出时,会话过期机制;
3、设置会话过期机制,比如15分钟内无操作,则自动登录超时;
访问控制安全管理:
1、敏感信息的修改时需要对身份进行二次认证,比如修改账号时,需要判断旧密码;
2、敏感信息的修改使用post,而不是get;
3、通过http 头部中的referer来限制原页面,增加验证码:一般用在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)