一、CSRF漏洞介绍:

CSRF是指利用受害者尚未失效的身份认证信息( cookie、会话

等信息),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下

以受害者的身份向服务器发送请求,从而完成非法操作(如转账、改密、信息修改等操作)。

CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用

二、CSRF类型:

  1. get请求型CSRF

        只需要构造URL,然后诱导受害者访问利用。

  1. POST请求型CSRF

        构造自动提交的表单,诱导受惠者访问或者点击

三、CSRF漏洞危害:

以受害者的名义发送邮件、发消息、盗取受害者的账号,甚至购买商品、虚拟货币转账、修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)等等操作。造成的问题包括:个人隐私的泄露、机密资料的泄露、用户甚至企业的财产安全;

一句话概括CSRF的危害:盗用受害者的身份,受害者能做什么,攻击者就能以受害者的身份做什么。

四、CSRF漏洞利用思路:

寻找有权限进行增删改查操作的功能点:比如修改密码、修改个人信息等等,通过burp构造HTML,修改HTML表单中某些参数,使用浏览器打开该HTML,点击提交表单后查看响应结果,看该操作是否成功执行。

五、通过工具利用CSRF漏洞方法:

       1.1  使用burpsuite中的engagement tools的generate CSRF poc模块

         抓包拦截浏览器访问页面的请求信息,在请求页面中点击鼠标右键,选择Generate CSRF         POC模块

在构造好了的攻击脚本中,可以将value的值修改成的自定义密码

Test in browser一般用于自己测试用

然后点击“copy

然后用代理burpsuite的浏览器打开

点击“submit request”即可成功修改密码

Copy HTML 一般用于攻击其他人,复制下代码保存为HTML文档

可以简单修改个中奖页面,诱惑受害者点击

点击领奖成功修改密码

  1. 2.   CSRFTester

下载地址: https://www.owasp.org/index.php/File:CSRFTester-1.0.zip

下载后点击run.bat

正常打开,并监听8008端口,需要把浏览器代理设置为8008

点击Start Recording,开启CSRFTester检测工作,我们这里抓添加管理员的数据包

然后右击删除没用的数据包

点击Generate HTML生成CSRF攻击脚本,我们这次添加test1账号

打开此文件,成功添加账号

六、CSRF漏洞修复建议

  1. token随机值防御

在请求地址中添加token并验证;

CSRF之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存储在cookie中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的cookie来通过验证。

要低于CSRF,关键在于在请求中放入和黑客所不能伪造的信息,并且该信息不存在于cookie中。可以在http请求中以参数的形式加入一个随机产生的token,并且在服务器端建立一个拦截器来验证这个token值,如果请求中没有token值或者token不正确,则可以认为可能是CSRF攻击而拒绝请求。

2.   referer值校验

增加HTTP referer的校验:

根据http协议,在http头部中有一个字段叫referer,它记录了该http请求的来源地址。如果referer记录的不是同一个浏览器的请求,那么久可能是攻击者伪造的恶意链接,可以根据此方法来防范CSRF攻击

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐