zoukankan      html  css  js  c++  java
  • CSRF(跨站请求伪造)

    1.CSRF简介

      CSRF的全名是Cross Site Request Forgery(跨站请求伪造),是一种诱使用户访问一个页面,然后盗用该用户身份在第三方站点里执行一次操作的攻击手段,其本质原因在于重要操作的所有参数都是可以被攻击者猜测到的。

    2.CSRF检测

      2.1 收集CSRF有利用价值的点(需要权限的)

        csrf由于其利用的特殊性,并不需要将整个站点的所有数据包均测试一遍,只需测试有csrf价值的点(需要权限的即时性的操作)即可

        如:转账、购物、修改密码、删除、发布内容...

      2.2 GET类型的CSRF检测

             如果有token等验证参数,先去掉参数尝试能否正常请求。如果可以,即存在CSRF漏洞。

      2.3 POST类型的CSRF检测

            如果有token等验证参数,先去掉参数尝试能否正常请求。如果可以,再去掉referer参数的内容,如果仍然可以,说明存在CSRF漏洞,可以利用构造外部form表单的形式,实现攻击。如果直接去掉referer参数请求失败,这种还可以继续验证对referer的判断是否严格,是否可以绕过。

    3.CSRF实例

      工具:burpsuite中Engagement tools的Generate CSRF PoC模块

      3.1 抓取修改密码的数据包,发送到Repeater模块

      3.2 右击选中Engagement tools,CSRF POC

      3.3 把构造好的html代码复制出来,保存为html格式

      3.4  用浏览器打开保存的html文件,点击Submit request按钮

      3.5 修改成功

    4.CSRF防御

      4.1 验证码:验证码是对抗CSRF最简介有效的防御手段,但处于用户体验考虑,网站不能给所有的操作都加上验证码。

      4.2 referer:用于检查请求是否来自合法的源,referer的缺陷在于,服务器并非什么时候都可以取到referer,很多用户处于隐私保护的考虑,限制了referer的发送

      4.3 token:产生一个随机数,使攻击者无法构造一个完整的URL。

    5.学习链接

    先知论坛:https://xz.aliyun.com/t/6128

     红日安全:https://github.com/hongriSec

      

  • 相关阅读:
    Android使用静默安装时碰见的问题
    Android 在Android代码中执行命令行
    android SystemServer.java启动的服务。
    Android AndroidRuntime类
    学习C的笔记
    Java虚拟机 JVM
    Android 关于ijkplayer
    Android 算法 关于递归和二分法的小算法
    Android 死锁和重入锁
    JAVA的内存模型(变量的同步)
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/12301279.html
Copyright © 2011-2022 走看看