ctf show web入门104

这是一道非常经典的 PHP 弱类型比较中的 sha1() 碰撞题目。

核心的代码逻辑在这两行:

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

这里有个致命的漏洞点:

sha1() 函数无法处理数组:如果给 sha1() 传入一个数组,它不会报错,而是会返回 NULL。

利用数组绕过(最简单、最常用)

在 PHP 中,如果你向 sha1() 函数传入一个数组(例如 ?v2\[\] = 1),sha1() 无法对数组进行哈希计算,会直接返回 NULL 并触发一个警告(Warning)。

当 v1是一个数组时,sha1(v1 是一个数组时,sha1(v1是一个数组时,sha1(v1) 返回 NULL。

当 v2是一个数组时,sha1(v2 是一个数组时,sha1(v2是一个数组时,sha1(v2) 返回 NULL。

最终比较变为:NULL == NULL,结果为 true。

构造 Payload

GET 请求参数(加在 URL 后面):?v2\[\]=2

POST 请求体(放在 Body 中):v1\[\]=1

相关推荐
ん贤2 小时前
深度学习入门笔记(一)
人工智能·笔记·深度学习
=PNZ=BeijingL2 小时前
Claude Code 笔记- 基本信息
笔记·ai编程
学计算机的计算基2 小时前
MySQL 性能调优面试复习:Explain、索引、慢查询、缓存和架构优化
java·数据库·笔记·mysql
Hillain2 小时前
软件设计师设计模式
java·开发语言·经验分享·笔记·算法·设计模式·软考
十月的皮皮2 小时前
C语言学习笔记20260603-打印整数(32位)二进制的奇数位和偶数位(2种方法)
c语言·笔记·学习
问心无愧05132 小时前
ctf show web入门108
笔记
逸模10 小时前
告别熬夜手工整理台账,逸模智能归集实现项目数据自动化存档
大数据·运维·人工智能·笔记·其他·信息可视化·自动化
Frostnova丶10 小时前
【算法笔记】数学知识
笔记·算法
xqqxqxxq11 小时前
哈希表(HashMap)技术学习笔记
笔记·学习·散列表