鉴于最近打的一个比赛,来了解一下ctf中经常出现的弱等于强等于的问题
PHP弱类型
Q1:二者弱比教
这部分内容自己检索,简要的说==
的情况下,左右两边的类型会进行转化。
举个例子来说
<?php
show_source(__FILE__);
$a=$_GET['a'];
$b=$_GET['b'];
if($a != $b&& md5($a) == md5($b))
echo "you are right!";
else
echo "erro";
?>
如题,需要我们传入的内容不一样,但是MD5加密之后需要相同
常见的做法有两种
方法一:
弱比教数组绕过,payload如下
?a[]=1&b[]=2
先进行数组的比较,1!=2,再md5加密,对于对数组的加密,默认是Null,两者加密之后相同
方法二:
常见的知识积累
?a=240610708&b=s214587387a0
原理是两者MD5加密之后开头都是0e,在php语言中,0e会在php解释为0
以下是常见的一些
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a0
sha1的弱比教类比上面的内容
Q2:自身弱比教
例题如下
<?php
show_source(__FILE__);
$a=$_GET['a'];
if( md5($a) == $a)
echo</