弱类型
哈希绕过
变量覆盖
弱类型语言
===在进行比较时,会先判断两种字符串的类型是否相等。==会在比较之前会将字符串转化为相同类型再比较。
例如1==ture 结果是ture
但是1===ture 结果是false

*注意最后一个
最后一个是科学计数法的形式,0乘以任何数都是0,所以两者相等。

题目训练:

解题过程:
首先看到json_decode,不认识,百度一下。

了解题目要求之后,开始做题。发现题目当中

看到是弱相等,使用hackbar post提交一个数据,推测key的内容是admin(字符串),结果如下图。

显示fail,显然错误。开头不为0,输入数字,拿到flag。

哈希绕过
Md5绕过
登陆的哈希验证
例如:

弱相等就用0e开头的MD5

将a和b换成它们明文,它们哈希值相等。
贴一篇0e开头MD5值小结
https://blog.youkuaiyun.com/Fly_hps/article/details/104702138
如果题目中是强相等(===),可以采用数组方法。

哈希绕过第三层,全是字符串且要求强相等。需要进行MD5碰撞。


变量覆盖
用传参的值替换掉原有变量的值。
需要利用Extract()函数

简单来说,将原来变量的值替换掉。
或者用到Parse_str函数

例题分析

首先看到MD5,而且是弱相等。

发现QNKCDZO的MD5值是纯数字科学计数法,0e830400451993494058024219903391

要传一个字符串,和QNKCDZO不相等,但是MD5和它相等,结合前面,找一个即可。
上传参数即可。

感悟:需要加强对php语言的学习。
*本篇文章参考bilibili视频:BV1oM41117WG
*图片来源:https://www.bilibili.com/video/BV1oM41117WG/?spm_id_from=333.337.search-card.all.click
https://www.sojson.com/encrypt_md5.html (MD5在线转换)
*如有侵权请联系删除。