1. 程式人生 > 其它 >MD5繞過

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碰撞(等待後續更新)