TOP16之CSRF -- 小黑超细详解+案例说明<宝藏文>

2023-10-27

              CSRF -- 跨站请求伪造,很好理解,就是盗用别人的身份伪造请求发送给服务器,在未授权的情况下执行权限保护之内的操作,因为请求的一切流程都是正常操作,这也是一般不会被检测到的漏洞行为。

             小黑子们,撸起袖子加油干!!!

目录

CSRF  -理解

判断是否有CSRF漏洞的简单依据

 案例一(DVWA-low):

burpsuite快速生成CSRF poc

 复制poc,然后将文本改成html格式

测试原理:

小结 :

案例二 (medium):

    绕过方式一:

    绕过方式二:

案例三(HIge级别):

   第一种绕过方式:

   第二种绕过方式:


CSRF  -理解

           如当你在某浏览器登录了QQ或者QQ登录权限的其它网址,在登录状态浏览不良网站,从网站上点击了不良链接,攻击者就可以利用已存在的cookie信息,盗取你的QQ信息,更改QQ密码、以你的名义发送短信、邮件、空间.....【咳咳咳....不过一般修改账密是会被看到的,所以后面收集信息之类的一套操作必须做到迅速】

          思路拓展:伪造跨站请求可以做收集用户信息的一种方式,比如点击链接后自动收集用户的账户密码而不是去修改它等.... csrf是可以绕过防火墙的,因为它本身不包含恶意的代码或者敏感的字符,只是盗取了被攻击者的权限做一些合规范围内的操作。

判断是否有CSRF漏洞的简单依据

1、抓取一个正常数据的请求包,如登录页面的请求或其它有用户操作权限的请求包,如果没有referer字段,那么极有可能存在CSRF漏洞。

2、如果有Referer字段,如果去掉referer字段提交还是有效,基本上可以确定为存在CSRF

3、利用工具探测是否存在CSRF

 案例一(DVWA-low):

burpsuite快速生成CSRF poc

            通过第一关的low级别抓包,生成csrf的poc脚本

 复制poc,然后将文本改成html格式

测试原理:

                               low级别没有任何防护措施,只是验证了账密是否相同就会修改密码,将脚本在同一个浏览器中打开即可,点击链接后执行跳转修改账密操作。(缺点:用户必须使用同一个浏览器打开链接,否则没有效果)。

                             这里的原理是csrf通过挂马的方式将链接挂载到网页上,用户通过点击该链接就会自动跳转,然后执行csrf的poc脚本内容。

小结 :

csrf攻击很容易被发现,要在不知情的情况下完成

1、利用短链接隐藏要跳转修改的URL,站长之家--短链接生成工具https://tool.chinaz.com/tools/dwz.aspx(缺点:但是会出现密码被修改的页面)

2、钓鱼网站,在公网上上传一个诱捕网(但默认链接打开的如果不是同一个浏览器,那么也盗取不了)

3、结合储存型xss,在xss注入点中写入CSRF代码,实现网页挂马状态

案例二:

        DVWA(medium):

                   将筛选验证http包头的referer参数必须包含主机名,原来的生成的html文件不能用

绕过方式一:

          将生成的poc文件命名为主机名IP.html(被攻击者服务器地址)上传到攻击者服务器的某个路径下。

格式为,http://攻击者服务器地址/xxx/被攻击者html文件【思路,在被攻击者的网站跳转到攻击者的服务器,访问html文件达到攻击目的

 绕过方式二:

              通过发现URL提交账户密码方式不会存在referer字段,那从这我们可以随意更改referer字段,达到攻击的目的,其实这应该也算是逻辑漏洞。

               通过抓取URL包,发现没有Referer字段,那我们可以自定义referer字段,但是必须要和host头部是一样的才可以。原账户是123456,修改后为admin【从这里可以思考,该怎么利用? 一般账密都不会get提交,就算是get提交后端做数据校验也没办法修改账密....】

 

案例三(HIge级别):

            第一种绕过方式:

         做了token验证,服务器会随机返回一个token,优先检查token才会处理客户端的请求,在这里会结合储存型xss漏洞,将token抓取到,才可以形成csrf修改用户账户密码【当xss注入到修改页面中,用户访问修改页面则会触发xss,截取到服务器发送的token值,然后再利用csrf去进行密码修改

csrf结合xss储存型漏洞,通过xss得到token值, 然后记录到csrf脚本中,执行修改当前页面的账密,不过首先得找到一个xss存在的漏洞点,然后就是需要构造储存型xss的时候需要找到需要拦截的csrf的漏洞点路径。

xss_s(high级别):txtName=<iframe src="../CSRF" οnlοad=alert(frames[0].document.getElementsByName('user_token')[0].value)>(有限制input输入长度,可以通过burpsuite抓包绕过)

   第二种绕过方式:

burpsuite插件绕过:

第一步找到插件,通过burpsuite的CSRF Token Tracker插件自动识别token值。

 第二步设定hostIP值,还有token的字段

第三步:抓包放包,dvwa验证token值,只能放包一次,就会重新验证令牌了

 CSRF-Token Tracker打开后会自动验证tongken值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TOP16之CSRF -- 小黑超细详解+案例说明<宝藏文> 的相关文章

随机推荐

  • JavaWeb项目(登录注册页面)全过程详细总结

    JavaWeb项目 登录注册页面 全过程总结 文章目录 JavaWeb项目 登录注册页面 全过程总结 一 环境准备与开发工具 二 创建 JavaWeb 项目 2 1 新建Dynamic Web Project项目 2 2 创建前端页面 2
  • 手机Vbus上防护用OVP简介

    手机Vbus上防护用OVP简介 作者 AirCity 2019 10 19 aircity007 sina com 1 什么是OVP OVP是Over Voltage Protection的首字母缩写 中文名是过压保护负载开关 当输入电压大
  • CentOS安装教程-解决“Warning:/dev/root does not exist”问题

    在安装CentOS时 若出现 Warning dev root does not exist could not boot 一般情况下是因为未找到安装系统盘的所在位置 例如 U盘 这时只需找到其位置 并对配置稍作修改即可 当我们使用U盘安装
  • LeetCode:二叉树的修改与构造(5道经典题目)

    LeetCode 二叉树的修改与构造 5道经典题目 本文带来与二叉树的修改与构造有关的经典题目 主要实现是C 226 翻转二叉树 106 从中序与后序遍历序列构造二叉树 105 从前序与中序遍历序列构造二叉树 654 最大二叉树 617 合
  • 安装报错ERROR: Could not find a version that satisfies the requirement tensorflow ERROR: No matching dis

    ERROR No matching distribution found for xxx的情况这可能是因为网络的问题 这时我们使用国内的镜像源来加速输入命令 python m pip install lxml 如果你安装的是别的库 请输入别
  • Java实现 LeetCode 120 三角形最小路径和

    120 三角形最小路径和 给定一个三角形 找出自顶向下的最小路径和 每一步只能移动到下一行中相邻的结点上 例如 给定三角形 2 3 4 6 5 7 4 1 8 3 自顶向下的最小路径和为 11 即 2 3 5 1 11 说明 如果你可以只使
  • 【YOLOX关键模块记录与解读】YOLOX: Exceeding YOLO Series in 2021

    目录 前言 一 主干部分的Focus网络结构 二 解耦头 三 Mosaic数据增强 四 Anchor Free 五 SimOTA标签匹配策略 六 参考资料 前言 论文地址 https arxiv org abs 2107 08430 源码地
  • uniapp引入外部js链接

    geturl let self this const url https webrtc github io adapter adapter latest js https g alicdn com cloudcallcenter SIPml
  • jenkins安装插件失败

    更改镜像库地址 去以下地址获取当前最新的地址 http mirrors jenkins ci org status html 截取上图红框中的url 在管理插件 gt 高级 中配置成下图中的格式
  • Qt中QLineEdit(取值、赋值、字体大小颜色)、QTextEdit和QPlainTextEdit

    核心 这些东西理解就可以了 下次用的时候看下笔记 能想起来就可以了 背 也背不下来 放弃吧 QString 界面设计最常用到的组件就是QLabel和QLineEdit QLabel用于显示字符串 QLineEdit用于输入和显示字符串 两个
  • 浏览器渲染原理

    浏览器渲染原理 目录 目录 浏览器渲染原理 B S架构及其运行原理 渲染过程 defer async不会阻塞页面解析 B S架构及其运行原理 b s架构是Brower Server结构 chrome浏览器渲染速度最快不同于其他浏览器 因为c
  • Transformer入门(一)——结构

    文章目录 前言 一 Transformer的产生和基础思想 1 1 Transformer的Motivation 1 2 Transformer的原始框架 1 3 关于Decoder的补充说明 二 Encoder中重要模块的具体实现 2 1
  • webpack配置devServer配置https代理与证书

    浏览器如果需要开发某些特定功能 需要https浏览器才会给予功能权限 则开发时我们需要在https环境 下面是配置一个webpack devServer的https环境 webpack config js module exports de
  • C++构造函数/拷贝控制

    1 C 构造函数 C 中构造函数 constructor 的作用是用来控制类对象的初始化过程 构造函数的作用是初始化类对象的数据成员 无论何时只要类的对象被创建 就会执行构造函数 1 1 默认构造函数 当定义一个类对象时 如果没有为对象提供
  • Git详细安装教程

    对于Git这块 我也算是个小白 最近在学习Git 所以趁此机会详细讲解一下Git的安装教程以及安装过程中遇到的问题 也欢迎大家对其补充 共同进步 1 下载Git Git的下载地址 windows系统 http gitforwindows o
  • Laravel_arse error: syntax error, unexpected '?'

    解决办法 php的版本不对 先打开composer phar 看看版本是否符合要求 之后修改服务器的php版本 我用的是wamp套餐 把php版本修改为7 2 4 建议也把编译器里的php开发环境统一为7 2 4
  • linux中嵌套循环,linux中的嵌套循环

    嵌套循环 内循环 一条循环语句可以在循环中使用任何类型的命令 包括其他循环命令 示例1 bin bash for a 1 a lt 3 a do echo Starting loop a for b 1 b lt 3 b do echo I
  • ezStudio,易用高效的业务基础平台开发工具

    摘要 本文从业务基础平台谈起 引申出与业务基础平台息息相关的开发工具 通过对国内外开发工具现状与未来趋势的描述 引导读者对开发工具有一个较为全面的了解 最后对清华同方ezONE 易众 业务基础平台中的ezStudio开发工具作了重点介绍与说
  • java excel通用工具类

    public class ExcelUtils 有时间记得重构下 生成excel流 throws IOException param type xone 1 lr 2 public static String createExcelIO L
  • TOP16之CSRF -- 小黑超细详解+案例说明<宝藏文>

    CSRF 跨站请求伪造 很好理解 就是盗用别人的身份伪造请求发送给服务器 在未授权的情况下执行权限保护之内的操作 因为请求的一切流程都是正常操作 这也是一般不会被检测到的漏洞行为 小黑子们 撸起袖子加油干 目录 CSRF 理解 判断是否有C