强网杯2020(Funhash)

题目名称:Funhash

首先拿到代码我们先分析,大体的意思我们需要绕过三个level,然后var_dump$row内容

level 1

通过gethash1的值,判断hash1的值要等于md4加密hash1后的值,于是利用php弱类型的特性,我们传入一个0e开头的值,加密后也是0e开头,就会被当成科学计数法,即可绕过。

level 2

通过get传两个变量,hash2值完全等于hash3的值,且两个变量md5加密后的值不能相等,所以利用php弱类型比较中,不能处理数组的特性,即可绕过

level 3

看到这段查询语句我们可以注入绕过,但是传入的值会被md5加密,我去查询md5函数的参数后,发现第二个参数为true,会将传入的第一个参数值转换为16字符二进制的格式。

最后得到payload

?hash1=0e251288019&hash2[]=a&hash3[]=b&hash4=4611686052576742364

不懂level3的,可以看下面那个帖子

https://blog.csdn.net/March97/article/details/81222922

 

原文地址:https://www.cnblogs.com/N-schema/p/13577446.html