csrf漏洞

Posted bulrushlw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csrf漏洞相关的知识,希望对你有一定的参考价值。

csrf(跨站请求伪造攻击)

  利用受害者尚未失效的身份认证信息,诱骗其点击恶意链接或包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向服务器发送请求。

  用户在关闭浏览器的时候,他的身份认证信息不会立刻失效。

  用户在登录正常网站a的时候,同时打开了一个危险网站b,那么攻击者就可以通过危险网站b利用受害者的身份认证信息,向服务器发送器请求。

csrf的分类:

  1.站外类型的:是数据外部提交问题,一般程序员会在留言或者评论的表单中加入水印防止spam问题(spam可以简单的理解问垃圾内容),但是为了提高用户体验,所以对一些操作没有进行限制,所以攻击者可以通过在站外的web表单中编写脚本伪造文件请求,或者和自动提交的表单一起使用实现get、post请求

    2.站内类型的:是由于程序员滥用类变量造成的,在一些敏感的操作中使用了request等变量请求参数。

验证csrf漏洞的方法:

  1.使用代码审计,查看源码中是否有关于token和referer的验证内容

  2.打开几个非静态页面,抓包查看是否有token,如果没有,再直接请求这个页面 ,不带referer,看返回的数据是否可以一样,如果一样的时候,很可能存在csrf漏洞。

  3.使用工具,比如csrftester

技术图片

 

 

 使用步骤 以DVWA为例,如下:

技术图片

点击提交之后,通过csrftester抓取到下面页面

技术图片

 

 

 技术图片

 

 点击Generate html即可生成poc,勾选Display Browser之后POC自动运行。完成。

 

csrf一般的攻击模式一般情况下有三种:

  1.利用get请求

  在页面中添加一个<img src>脚本

  2.利用post请求

  加入一个表单

  3.其他猥琐流csrf

  利用POC 

防御:

  1.在请求地址中加入token值并验证

    在session中加入一个token,在请求地址中随机产生一个,将两个进行对比

  2.验证referer

    referer中记录的是请求的来源地址,攻击者在利用csrf漏洞的时候,是在第三方页面中进行利用的,所以referer值也是第三方的

  3.在http头中自定义属性并验证

    这个也是利用token进行验证的,在头信息中通过xmlhttprequest加入csrftoken属性

绕过:

  一般情况下,遇到以上三种防御方式,就要结合其他漏洞进行利用

可能出现CSRF的位置:

  1.用户密码的修改

  2.购物地址的修改

  3.后台管理账户的新增等等

以上是关于csrf漏洞的主要内容,如果未能解决你的问题,请参考以下文章

CSRF漏洞

CSRF进阶之打造一个检测CSRF漏洞的脚本

web漏洞-CSRF及SSRF漏洞

Web安全Csrf漏洞利用

摸金CSRF漏洞

-CSRF漏洞