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}

相关推荐
可信计算8 分钟前
从单视口渲染到分支击穿:关于概率、脑神经与“创世启动器”的一些构想
人工智能·笔记
优化Henry13 分钟前
LTE基站传输割接后S1连接失败排查实录
运维·网络·笔记·学习·信息与通信
星恒随风1 小时前
Linux进程间通信(一):从匿名管道、命名管道到进程池,深入理解Pipe、FIFO与文件描述符
linux·运维·笔记·学习·状态模式
霖霖7141 小时前
【ESP32笔记】读取DHT11温湿度数据
笔记·单片机·mcu·物联网
Xudde.1 小时前
DC-6 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
xian_wwq1 小时前
【学习笔记-一文读懂系列】一文读懂Jev模型
笔记·学习
Awh-2 小时前
ARM 裸机开发 DAY8 学习笔记
arm开发·笔记·学习
带金箍的至尊宝2 小时前
系统架构设计师笔记 08:UML 用例图、类图、时序图
笔记·系统架构·uml
PC2005-cloud2 小时前
MySQL学习笔记:主从复制集群搭建以及原理详解
笔记·学习·mysql
Xudde.2 小时前
Mr-Robot 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全