ctf show web入门106

这是一道非常经典的 PHP 代码审计/CTF 题目。核心考点在于 PHP 弱类型下的 sha1() 绕过。

关键的判断逻辑在这里:

php 复制代码
if(sha1($v1)==sha1($v2) && $v1!=$v2){
    echo $flag;
}

想要拿到 $flag,你需要满足两个条件:

v1 != v2:传入的两个变量值绝对不能相等。

sha1(v1)==sha1(v1) == sha1(v1)==sha1(v2):它们经过 sha1() 哈希运算后的结果,在 PHP 的弱类型比较(==)下必须相等。

数组绕过法:

原理:PHP 中的 sha1() 函数无法处理数组。如果你往 sha1() 里传入一个数组(例如 \[\]),该函数无法计算哈希,会直接返回 NULL 并触发一个警告(Warning)。逻辑演变:sha1(数组1) -> 返回 NULL

sha1(数组2) ->返回 NULL比较时:NULL == NULL 成立(结果为 true)。同时,两个不同的数组满足 v1 != v2。

通过POST传参输入 v1\[\]=1

通过GET传参输入?v2\[\]=2使这个式子满足if判断语句从而输出flag

flag为:ctfshow{70b1a16b-ce32-4d60-8f22-a116173428a7}

相关推荐
一支蜉蝣1 小时前
Day26 XD安全学习笔记--PHP 应用&模版引用&Smarty渲染&MVC 模型&数据联动&RCE 安全
笔记·网络安全·html·php
東隅已逝,桑榆非晚2 小时前
算法3.双指针法-快乐数
c++·笔记·学习·算法
欢欢李2 小时前
【LTE L3 笔记 01】LTE空口特点
笔记·无线通信·物理层·lte·空口协议
ZZHow10243 小时前
神经网络与深度学习笔记_Day1
人工智能·pytorch·笔记·python·深度学习·神经网络·机器学习
ACP广源盛139246256733 小时前
选型笔记:HDMI2.1 四进一出切换中继方案 GSV6705@ACP 评估
笔记·硬件架构·硬件工程·视频·国产芯片
Z21-X4 小时前
云原生运维实战笔记:华为云存储类服务全景解析——EVS、OBS、SFS与CBR深度实践
运维·笔记·学习·云原生·华为云
1314lay_10074 小时前
ABAP 程序性能优化总结
经验分享·笔记·性能优化
程序边界19 小时前
一台数据集成软件的拆解笔记(下):一致性、容错、跑批与迁移,KFS 真正难的地方在这
java·前端·笔记
金色光环21 小时前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
zhangrelay21 小时前
mrpt杂乱笔记-26-10-31
笔记·学习