CSRF跨站请求伪造

1、CSRF跨站请求伪造

1.1 CSRF漏洞概述

1)在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般为一个链接)然后欺骗用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了。所以CSRF攻击也被称为“one cilck”攻击

2CSRFXSS的区别:CSRF是借用户权限完成攻击,攻击者并没有拿到用户权限,而xss则是直接盗取了用户的权限,然后实施破坏。

3)如何确定一个web系统存在CSRF漏洞

*对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造

--比如修改管理员账号,并不需要验证旧密码,导致请求容易被伪造

--比如对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造

*确认凭证的有效期(这个问题会提高CSRF被利用的概率)

--虽然推出或者关闭了浏览器,但是cookie仍然有效,或者session并没有及时过期,导致CSRF攻击变得简单

1.2 CSRF(get/post)实验演示和解析

1getcsrf演示

*get型的csrf漏洞所包含的信息都在url里,所以,我们只要可以获取到目标用户的url,就能对其信息进行修改,但同时还要保障的是,用户此时必须处于登陆状态,浏览器没有关闭

 

*这是我们得到的url,并对他进行加工,修改地址为baodinghttp://192.168.66.246/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=baoding&email=lucy%40pikachu.com&submit=submit

*这样就是我们构造完成的url,让用户点击

 

2postcsrf演示

*post型的csrf漏洞所需要修改的信息并不在url里,而是在请求体里面进行提交的。所以我们需要和xsspost请求一样,布一个站点,做一个表单,让目标用户点我们站点的表单的url。向存在postcsrf漏洞的页面去提交post请求。

*我们得先做一个post表单,并把它放到我们的www文件夹下

 

*发送给用户连接,用户访问,则完成修改:192.168.66.246/post.html

 

1.3 常见CSRF防范措施

1)增加token验证(常用)

对关键操作增加token参数,token值必须随机,每次都不一样

2)关于安全的会话管理(避免会话被利用)

*不要在客户端保存敏感信息(比如身份认证信息)

*测试直接关闭,退出时的会话过期机制

*设置会话过期机制,比如15分钟内误操作,则自动登陆超时

3)访问控制安全管理

*敏感信息的修改时需要对身份进行二次认证,比如修改账号,需要判断旧密码

*敏感信息的修改使用post,而不是get

*通过http头部中的referer来限制原页面

4)增加验证码

一般用在登陆,(防暴力破解),也可以用在其他重要信息操作的表单中

posted @ 2020-03-13 17:38  pangsong666  阅读(172)  评论(0编辑  收藏  举报