CSRF中级防御绕过

devtools/2024/9/25 21:20:44/

1)回顾low级别做过csrf页面的密码重置,重复之前的操作,我们发现级别调整中级之后,报错如下

image-20240730154603783

2)查看源码

  • $_SERVER[‘HTTP_REFERER’]:上一次的请求的url
  • $_SERVER[‘SERVER_NAME’]:当前的服务器的host
  • 代码:如果$_SERVER[‘HTTP_REFERER’]和$_SERVER[‘SERVER_NAME’]一样的话,我们才会接受请求
  • stripos(a,b):b是否在a中包含,如果包含,则为真

image-20240730154632897

if (isset($_SERVER["HTTP_REFERER"]) and @$_SERVER["SERVER_NAME"] != "null" and  $_SERVER["SERVER_NAME"] =="mycrm.com" and @$_SERVER["HTTP_ORIGIN"]  != "null" and  $_SERVER["HTTP_ORIGIN"]  == "http://mycrm.com"){//代码正文pass
}else{echo "修改异常,你已经被检测轻点整事";
}

3)抓包

  • 分析:$_SERVER[‘HTTP_REFERER’]和$_SERVER[‘SERVER_NAME’]

image-20240730155034848

4)绕过

方法一:

image-20240730155136607

方法二:

image-20240730162040798


http://www.ppmy.cn/devtools/117172.html

相关文章

前端接口415状态码【解决】

前端接口415状态码【解决】 一、概述 415状态码是HTTP协议中的一个标准响应状态码,代表“Unsupported Media Type”(不支持的媒体类型)。当客户端尝试上传或发送一个服务器无法处理的媒体类型时,服务器会返回这个状态码。这通常意…

泰勒锥检测系统源码分享

泰勒锥检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

通信工程学习:什么是VNF虚拟网络功能

VNF:虚拟网络功能 VNF(Virtual Network Function)即虚拟网络功能,是网络功能虚拟化(NFV)架构中的一个核心概念。VNF允许通过软件化和虚拟化的方式,将传统的网络设备功能(如路由器、交…

Web_php_include 攻防世界

<?php show_source(__FILE__); echo $_GET[hello]; $page$_GET[page]; while (strstr($page, "php://")) { 以是否检测到php://为判断执行循环$pagestr_replace("php://", "", $page);//传入空值&#xff0c;替换 } include($page); ?&g…

24/9/24 算法笔记 超参数优化算法

在机器学习中&#xff0c;优化超参数的算法是至关重要的&#xff0c;因为它们可以帮助我们找到最佳的模型配置&#xff0c;从而提高模型的性能。以下是一些常用的超参数优化算法&#xff1a; 网格搜索&#xff08;Grid Search&#xff09;&#xff1a;这是一种穷举搜索的方法&a…

深入探讨 Flask、Gunicorn、Gevent 与 RecursionError:事件循环与 Monkey Patching 的正确使用

在现代高并发应用中&#xff0c;使用异步 I/O 操作处理密集的网络任务&#xff08;例如短信发送&#xff09;是提升系统性能的常见策略。为了在 Python 中实现这样的并发处理&#xff0c;我们可以使用 Gunicorn 和 Gevent 搭配 Flask 应用。然而&#xff0c;在实现过程中&#…

普元DWS - Linux下安装DWS标准版

1 前言 普元DWS全称是普元数据开发平台。 功能是对不同结构的数据进行转换处理&#xff0c;比如将MySQL的数据转换到达梦数据库中。 本文讲解如何在Linux下安装DWS标准版 2 DWS的版本 普元DWS有两个版本&#xff1a;微服务版和标准版。 微服务版是基于分布式部署的&#x…

c/c++八股文

c基础 一、指针和引用的区别 定义方式: 指针是通过 * 操作符定义的变量,用于存储另一个变量的地址。例如: int* p &x;引用是通过 & 操作符定义的别名,直接引用另一个变量。例如: int& r x; 内存占用: 指针是一个独立的变量,占用一定的内存空间。引用不是独立的…