如果是使用"=="判断即可直接传入md5值是0e开头的任一密码 若是"==="判断
标签:
成因分析:== 在进行对照的时候,会先将两边的变量类型转化成不异的,再进行对照
0e在对照的时候会将其视作为科学计数法,所以无论0e后面是什么,0的几多次方还是0。
因此CTF角逐中需要用到弱类型HASH对照缺陷最明显的标识表记标帜等于打点员暗码MD5之后的值是以0e开头
操作要领:由缝隙成因我们可以分析出: 只要让我们输入的暗码在颠末函数加密之后是以0e开头即可
附上一部分md5加密之后是以0e开头的值:
ej0D ek06 el08 eo0n ey0M ey0O ez0s e006 e10l eU3Z eW3vfSoL fToh fTo1 fUoU fYou fapF fbpf fdpF fnpZ fppr fqpa frpj fwpD fyp5 f1p2 f4pN f7pu fDpQ fHpP fIp4 fJpX fLpv fOpi fQp3 fTpi fVpz feqN fjqN fvq1 fyqy fAqJ fEqk fFqg fFqi fHqX fIqF fKqh fLq6 fQq6 fQqA fRql fUq4 fUqA fXq0 farg farJ ftrT f7rm fCrB fErY fIrt QNKCDZO s878926199a s155964671a s214587387a s214587387a s878926199a
View Code 例题示范:
<?php
$a = $_POST[‘pwd‘];
$password = "0e1998badb934bce65ad9ba8facc9121"; //注意:这里打点员暗码md5的值是以0e开头的,如果没有看到0e而直接去解md5九成是解不出来的
if(md5($a) == $password){ //注意:这里是两个等号"=="进行判断,若是"==="则不存在弱类型hash对照缺陷
echo $flag;
}
?>
在已知打点员暗码md5值是以0e开头的前提下,不雅察看代码逻辑,如果是使用"=="判断即可直接传入md5值是0e开头的任一暗码
若是"==="判断,则可以通过数组返回NULL的要领来绕过
如下代码:
<?php $a = $_GET[‘pwd‘]; $password = "0e1998badb934bce65ad9ba8facc9121"; if(md5($a) == $password){ //注意:这里是三个等号"==="进行判断 echo $flag; } ?>
传入?pwd[]=1就可以告成绕过判断。
,温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31039.html
- 上一篇:CSS的代码气势派头
- 下一篇:这些属性位于花括号内