PHP 网站开发 入门,阿里营销网站建设,网站建设培训总结,公司做网站所上传的产品图片天命#xff1a;好像也挺实用的题目#xff0c;也是比较经典吧 天命#xff1a;把php的MD5漏洞都玩了一遍 第一关#xff1a;MD5绕过
先声明一下#xff1a;这题的MD5是php#xff0c;不是mysql的MD5#xff0c;把我搞迷糊了
一进来题目啥也没有#xff0c;那么就要看… 天命好像也挺实用的题目也是比较经典吧 天命把php的MD5漏洞都玩了一遍 第一关MD5绕过
先声明一下这题的MD5是php不是mysql的MD5把我搞迷糊了
一进来题目啥也没有那么就要看源码和抓包了
在响应头发现sql语句 经分析这sql语句半真半假应该是这样子的
$sql select * from test.admin where password.md5($str,true).;
大坑里面的md5函数是php的
参加加个true就是输出16位的二进制正常显示绝逼是乱码的所以也不需要echo看了
这里就是需要经过md5加密后依旧可以进行sql注入
网上说ffifdyop 的MD5加密结果是 276f722736c95d99e921722cf9ed621c
经过MySQL编码后会变成or6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密
其实一开始还不理解然后自己写了一个测试真假
现在mysql测试 然后放入php代码测试 居然是真的原理就是这样子只要有东西就算是true那就忽略密码直接判断为true
这里好像说是MySQL特性只有数字在开头才算有东西字母在前面是没东西的所以6xxx刚好算是有东西判定为 true 所以只需要把 ffifdyop 输入进去就完事 第二关弱比较MD5绕过
来到第二个页面啥也没有照旧两步骤看源码和抓包
看到了隐藏的php源码 $a $_GET[a];
$b $_GET[b];if($a ! $b md5($a) md5($b)){echo wow, glzjin wants a girl friend;
}
这里难点就是不一样的情况下都采用md5加密并比较还好有个漏洞就是弱比较大漏洞
两个等号的情况下 只要是0e开头都会当成科学计数法无论是0的多少次方通通都是0
那么找两个md5加密后是0e开头的内容就可以了 一搜一大堆搞掂下一关 第三关php特性绕过MD5
这关已经超出我认知范围了原来MD5这个函数只比较字符串其他一律不管
我们传进去的是数组那么两个变量就肯定不相等但md5函数识别不了数组当成是同一个数组进行加密那得到的结果肯定一样啊这个属于php的md5漏洞了吧 flag{a2a7fba8-9c7d-4ffa-8d1f-47781db64c89}