ctf的php,CTF中常见的PHP漏洞
1.MD5()漏洞
php在處理字符串時會利用!=,||,==進行hash值的比較 他把每一個“0E’開頭的哈希值都解釋為0,因此如果兩個不同的密碼經過hash處理之后都是以‘0e’開頭,那么PHP會認為兩者是相同的,南京郵電大學一次ctf上就出了一道這個題。一些經md5()后以0e開頭的例子
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
驗證一下這個現象。
說到md5就還有一個經典案例就是
數組的MD5值都相等 都為NULL,
這里寫了一小段代碼
成立
2.strcmp()
strcmp(string $str1, string $str2);
比較str1和str2 如果長度1>2 返回1否則返回0
但是僅限于兩者數據類型相同 如果s1是一個int型 s2是個string型就無法比較 返回的永遠是0
寫段代碼
剛才的說法是成立的
3.變量覆蓋(GLOBLS)
我見過最常見的變量覆蓋 也是最容易判斷是否為變量覆蓋的技巧就是審計代碼時候看有沒有出現$$這樣的符號
這里面args變量在前面會有很多功能,但是只要在最后出現$$args 這就是一個全局變量。直接args=GLOBLS即可。
一個在阿里安全部的學長告訴我當你審計一個企業級10萬行以上代碼的程序不費勁的時候,基本就算頂尖安全工程師了。
剩下的好多還沒想好怎么寫容易理解,有時間慢慢寫吧。
總結
以上是生活随笔為你收集整理的ctf的php,CTF中常见的PHP漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php输入安全验证漏洞,PHP 输入验证
- 下一篇: php object 对象不存在。增加对