南邮 /x00

本文解析了一个CTF挑战题,通过两种方法绕过PHP脚本的验证:一是利用%00截断结合URL解码;二是利用ereg和strpos函数处理数组返回null的特点。详细介绍了isset(), ereg(), strpos()等函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目: http://ctf.nuptsast.com/challenges#/x00


view-source:

    if (isset ($_GET['nctf'])) {                                        //
        if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)
            echo '必须输入数字才行';
        else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)   
            die('Flag: '.$flag);
        else
            echo '骚年,继续努力吧啊~';
    }
代码的意思就是,输入一个值,满足是数字的同时还要含有字符串“#biubiubiu”,既是数字又是字符串是不可能的。

isset函数是检测变量是否设置。

  格式:bool isset( mixed var [, mixed var [, ...]] )

  返回值:

  若变量不存在则返回FALSE

  若变量存在且其值为NULL,也返回FALSE

  若变量存在且值不为NULL,则返回TURE

  同时检查多个变量时,每个单项都符号上一条要求时才返回TRUE,否则结果为FALSE

  如果已经使用unset()释放了一个变量之后,它将不再是isset()。若使用isset()测试一个被设置成NULL的变量,将返回FALSE。同时要注意的是一个NULL字节("\0")并不等同于PHP的NULL常数。

  警告:isset()只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用defined()函数。

ereg()函数

strpos()函数  

  查找 "php" 在字符串中第一次出现的位置。

所以改题目有两种思路:

  1 利用%00截断,这个也是ereg函数一个漏洞,类似于0x00截断,都是因为这些函数遇到ASCII码为0的字符时,会自动默认到了结尾而停止;这里有一个需要注意的:我们构造的flag是需要一层url解码的,#在url中是特殊字符,因此我们需要先将#编码为%23

  2 利用ereg和strpos函数处理数组的特性
当ereg函数处理数组时,会直接返回NULL,而===又是强判断,NULL自然不等于FALSE,因此绕过第一个条件;strpos函数也无法处理数组,直接返回NULL;因此构造?nctf[]=%23biubiubiu即可得到flag:

参考链接:https://blog.youkuaiyun.com/destiny1507/article/details/86629434

-------------------------------------------------------------------

知识点:

  isset() ,ereg(),strpos()

  url解码 例如%23解码为#

  因为ereg()函数存在NULL截断漏洞,导致正则过滤被绕过,所以可以用%00来截断正则匹配。

  ereg()处理数组返回null,strpos()处理数组返回null。

  PHP ===是强判断。

转载于:https://www.cnblogs.com/islsy/p/10665352.html

有通信原理试题库和部分书后习题 XXX级本科《通信原理》试题(卷) 题 号 1 2 3 4 5 6 7 8 9 总分 分 数 说明:答案要求简明扼要,全部做在考试题(卷)上。 一、 (20分)填 空 1、 数字通信系统的主要优点是 __________ 、_____________、 ________________、________________。 2、 通信系统的主要质量指标通常用_________和________衡量, FSK系统指标具体用______ _和_ _______衡量,FM/PM系统具体指标用______ 和______ _衡量。 3、 PCM量化可以分为 和 。在线性PCM中,抽样频率为8 KHZ,对双极性信号编码时编码器输出码元速率为72 KB,则量化信噪比为_______dB。 4、 ΔM信号携带着输入信号的_______信息,Σ—ΔM信号携带着输入信号的_______信息,PCM信号携带着输入信号的_______信息,。 5、 窄带高斯噪声的一维随机包络服从_________ 分布,其概率密度函数p(x)= ;OOK信号加窄带高斯噪声的 一维随机包络服从 分布。 6、 在0—-T时刻内高度为A的矩形信号,与之相匹配的滤波器的单位冲激响应h(t)图形为 ,传递函数H(ω)= ,最大输出信噪比r0max= ,最大信噪比出现的时刻to= 。 7、 门限效应是 ;用示波器观察眼图的方法步骤是(1) ,(2) 。 8、 二进制代码 1011000000000000101的差分码是 ;HDB3码是 +1 。 9、在ΔM系统中,输入信号f(t)=Acosωkt,抽样速率为fs,量化台阶为δ,要求系统不出现过载现象,而且能正常编码,输入信号f(t)的幅度范围应为 。 10、信道带宽为6 MHz,信号功率与噪声谱密度之比为6 MHz,则信道最大传输速率为 ,当信道带宽B趋向无穷大时,则信道最大传输速率为 。 二、(15分)已知语音信号的最高频率fm为4kHz,幅度范围为(-5.120V,+5.120V),采用13折线法对其进行PCM,试回答计算下列问题: 1 求当采样值为-1.450V时编码器的输出C0C1C2C3C4C5C6C7(设段内码为戈雷码); 2 求量化误差为多少(伏); 3 C0C1C2C3C4C5C6C7=11010011时,表示的采样值是多少? 4 求编码器的输出速率Rb ; 5 如果有32路同样信号,设每帧头增加2bit,且每路也增加1bit做同步信息,对它们进行TDM多路复用, 求编码器的输出速率RΣ=? 三、(10分)已知(7,3)循环码的全部码字如下表: 0000000;0011101;0100111 0111010;1001110;1010011 1101001;1110100;1111111 1. 该循环码共有几个循环圈,并画出循环圈; 2. 求循环码的生成多项式g(x),生成矩阵G和监督矩阵H。 四、 (5分)已知码长为15的汉明码, 1. 计算监督位应为多少? 2. 计算编码效率为多少? 五、(15分)已知数字信息流为 10100111,码元速率为2400B,载波频率为4800Hz,: 1、 画出2DPSK信号的波形示意图; 2、 画出产生和接收2PSK信号的原理方框图; 3、 在2PSK信号产生和接收方框图基础上,如何改动可以产生和接收2DPSK信号; 4、 二进制数字调制系统中,在相干接收和非相干接收情况下,那种信号的系统误码率最大,那种信号的系统误码率最小; 5、 2FSK信号的频带宽度B2= ?8ASK信号的频带宽度B8=? 六、( 10分)已知AM信号的时域表示式为 1、 画出产生该信号的方框图; 2、 画出该信号的频谱图(基带信号的频谱自定); 3、 画出一种能接收(解调)该信号的方框图。 七、(8分)数字基带传输系统的传输特性H(ω)如下图, 1、 当传输速率分别为fb=2w、fb=3w时,画图分析在抽样点上是否有码间串扰? 2、 系统无码间串扰的最大传输速率fbmax=? 八、(9分) 同步是通信系统的重要部分,简要回答下列问题: 1、 实现载波同步有哪些具体方法? 2、 帧同步系统的主要性能指标有哪些; 3、 为使群同步能可靠建立且具有一定的抗干扰能力,群同步应采取什么措施。 九、(8分)已知某高斯信道的频带宽度为6 MHZ,如果要求传输24 Mbit/s的数字信号,试设计(画出)其发端的原理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值