MD5绕过

1.php == 弱类型绕过

$a = $GET['a'];
$b = $_GET['b'];
if($a != $b && md5($a) == md5($b))
{
  echo flag;
}

两种方法:1.使用加密后‘oe’开头的字符串来绕过,应为以0e开头的字符串的值都为0。

例如

    QNKCDZO
    240610708
    byGcY
    sonZ7y
    aabg7XSs
    aabC9RqS
    s878926199a
    s155964671a
    s214587387a
    s1091221200a

2.使用数组进行绕过,应为MD5不能加密数组,会报错,返回null,但是null=null返回的值为true

例如: a[]=1&b[]=2

2.php === 强类型绕过

$a = $GET['a'];
$b = $_GET['b'];
if($a !== $b && md5($a) === md5($b))
{
  echo flag;
}

 

===会比较类型和值,所以不能用第一种方法来绕过,可以使用第二种方法,原理是相同的

3.sql注入类的MD5绕过

ffifdyop经过MD5加密后变为'or'6xxx

sql代码:select * from flag where user='amdin' and password='or' '6xxx'  等于  password=''or true == ture

从而实现了绕过

4.MD5碰撞(等待后续更新)

 

posted @ 2021-11-13 11:31  坠水  阅读(457)  评论(0)    收藏  举报