码迷,mamicode.com
首页 > 其他好文 > 详细

csrf漏洞

时间:2020-06-01 11:42:48      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:pos   play   属性   编写   有关   工具   width   ssi   自动提交   

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漏洞

标签:pos   play   属性   编写   有关   工具   width   ssi   自动提交   

原文地址:https://www.cnblogs.com/bulrushlw/p/10621909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!