日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

發(fā)布時(shí)間:2024/7/23 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CTF中常見php-MD5()函數(shù)漏洞

1.數(shù)字與字符串之間的比較

var_dump( 0 == "a" );

var_dump( "0" == "a" );

第一個(gè)返回的是 true ,第二個(gè)返回的是 false

因?yàn)閜hp把字母開頭的轉(zhuǎn)化為整型時(shí),轉(zhuǎn)化為0, 前面數(shù)字后面字母的話就只取到第一個(gè)字母出現(xiàn)的位置之前(如intval(’'123abd45gf)結(jié)果為123)

2.MD5函數(shù)漏洞

$_GET['name'] != $_GET['password']

MD5($_GET['name']) == MD5($_GET['password'])

要求滿足上述條件則

那么要求name和password數(shù)值不同但是MD5相同,在這里可以利用繞過(guò)。

PHP在處理哈希字符串時(shí),它把每一個(gè)以“0E”開頭的哈希值都解釋為0,所以如果兩個(gè)不同的密碼經(jīng)過(guò)哈希以后,其哈希值都是以“0E”開頭的,那么PHP將會(huì)認(rèn)為他們相同,都是0。

以下值在md5加密后以0E開頭:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

以下值在sha1加密后以0E開頭:

sha1(‘a(chǎn)aroZmOk’)

sha1(‘a(chǎn)aK1STfY’)

sha1(‘a(chǎn)aO8zKZF’)

sha1(‘a(chǎn)a3OFF9m’)

GET傳入a=QNKCDZO&b=240610708就能繞過(guò)了

3.php特性

if($_POST['param1']!==$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])){

die("success!");

}

在php中===為完全等于運(yùn)算,不僅比較值,而且還比較值的類型,只有兩者一致才為真。再次使用a=QNKCDZO&b=240610708就不行了,因?yàn)閍和b類型不同。

PHP中md5的函數(shù)特性

md5([1,2,3]) == md5([4,5,6]) == NULL

[1] !== [2] && md5([1]) === md5([2])

所以GET傳入a[]=1&b[]=2就能夠繞過(guò)了。

4.MD5碰撞

if((string)$_POST['param1']!==(string)$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])){

die("success!);

}

要求構(gòu)造param1和param2不同,但是MD5相同,也就是說(shuō)要求傳入兩個(gè)MD5相同的不同字符串。

Param1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2

Param2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

MD5值相同使用谷歌可以搜到相當(dāng)多被巧妙構(gòu)造出的二進(jìn)制文件,其MD5相同,注意一點(diǎn),post時(shí)一定要urlencode!!!

總結(jié)

以上是生活随笔為你收集整理的php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。