這些常見的PHP漏洞,如果你不知道,就別說自己是個攻城獅

2021-12-25 架構師學習路線

收錄於話題 #PHP學習 15個

md5加密漏洞比較哈希字符串的時候,php程序把每一個以「0x」開頭的哈希值都解釋為科學計數法0的多少次方,恆為0。所以如果兩個不同的密碼經過哈希以後,其哈希值都是以「0e」開頭的,那麼php將會認為他們相同。另外md5加密是有機率兩個字符串不同,但是加密後的值是相同的情況,這種情況稱為哈希碰撞。
<?php$str1 = 's878926199a';$str2 = 's214587387a'; echo json_encode([ 'md5_str1' => md5($str1), 'md5_str2' => md5($str2), 'bool' => md5($str1) == md5($str2)]);

結果兩個值加密後竟然相等。

缺點你懂的,如果一個網站的某個用戶密碼加密後剛好是0e開頭的,這個時候黑客過來破解,很容易就攻入了。

{ md5_str1: "0e545993274517709034328855841020", md5_str2: "0e848240448830537924465865611904", bool: true}

is_numeric漏洞

會忽視0x這種十六進位的數

容易引發sql注入操作,暴漏敏感信息

echo json_encode([ is_numeric(233333), is_numeric('233333'), is_numeric(0x233333), is_numeric('0x233333'), is_numeric('233333abc'),]);

結果如下:

16進位數0x61646D696EASII碼對應的值是admin。

如果我們執行了後面這條命令的話:SELECT * FROM tp_user where username=0x61646D696E,結果不言而喻

[ true, true, true, false, false]

in_array漏洞

in_array中是先將類型轉為整形,再進行判斷。

PHP作為弱類型語言,類型轉換的時候,會有很大漏洞。

轉換的時候,如果將字符串轉換為整形,從字符串非整形的地方截止轉換,如果無法轉換,將會返回0。

<?phpvar_dump(in_array("2%20and%20%", [0,2,3]));

結果如下:

switch漏洞

switch中是先將類型轉為整形,再進行判斷。

PHP作為弱類型語言,類型轉換的時候,會有很大漏洞。

轉換的時候,如果將字符串轉換為整形,從字符串非整形的地方截止轉換,如果無法轉換,將會返回0。

<?php$i ="abc";switch ($i) { case 0: case 1: case 2: echo "i是比3小的數"; break; case 3: echo "i等於3";}

結果如下:

i是比3小的數。

intval強轉漏洞

PHP作為弱類型語言,類型轉換的時候,會有很大漏洞。

轉換的時候,如果將字符串轉換為整形,從字符串非整形的地方截止轉換,如果無法轉換,將會返回0。

<?phpvar_dump(intval('2')); var_dump(intval('3abcd')); var_dump(intval('abcd')); 

*聲明:本文於網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯繫我們刪除或授權事宜

相關焦點

  • php反序列化漏洞
    100 而flag換成空格吞掉4個字符串,所以要6個flag(當然也可以8個php:3*8=24),然後還有在function參數加一個字符串來滿足吞24個字符串 所以構造數字1也就是滿足24長度加的,img變量要base64,因為實際的img參數被我們給擠出去了,所說這裡不影響payload
  • PHP反序列化漏洞基礎
    (2)會話過程當開始一個會話時,PHP會嘗試從請求中查找會話ID(通常通過會話cookie),如果請求中不包括會話ID信息,PHP就會創建一個新的會話。會話開始之後,PHP就會將會話中的數據設置到$_SESSION變量中。當PHP停止的時候,它會自動讀取$_SESSION中的內容,並將其進行序列化,然後發送會話保存管理器來進行保存。
  • PHP文件包含漏洞利用思路與Bypass總結手冊(三)
    測試代碼:一般情況下,這種前綴也是很常見的,限制用戶訪問www服務外的其他文件。< 5.2.8LFI-零字節截斷利用條件:利用姿勢:php version 5.3.4時已修復 零字節截斷漏洞>Bypass-協議限制data://如果在我們使用文件包含漏洞時data://協議被限制,但是我們又想要使用的話該怎麼繞過,比如下面這段限制代碼分析代碼可知filename變量內容開頭不能出現data字符串
  • php中函數禁用繞過的原理與利用
    我談談我個人的幾個偏向點:版本號最直觀的就是php版本號(雖然版本號有時候會在響應頭中出現),如我的機器上版本號為:PHP Version 7.2.9-1那麼找到版本號後就會綜合看看是否有什麼"版本專享"漏洞可以利用。
  • 反序列化漏洞詳解 一文了解反序列化漏洞
    "User"2 對象具有2個屬性s:4:"name" 第一個屬性的鍵是4個字符的字符串 "name"s:6:"carlos" 第一個屬性的值是6個字符的字符串 "carlos"s:10:"isLoggedIn" 第二個屬性的鍵是10個字符的字符串 "isLoggedIn"b:1                 第二個屬性的值是布爾值
  • 手機碎屏不用怕,15分鐘自己就能修補裂屏!
    最酷炫的寶寶都戳上方【想幫幫攻城獅】關注了大獅哥~下面這個場景即使做夢夢見了都會把哥嚇醒
  • 文庫|PHP弱類型
    高質量的安全文章,安全offer面試經驗分享盡在 # 掌控安全EDU #
  • 電子病歷OpenClinic存在漏洞被破解
    電子病歷OpenClinic存在漏洞被破解 某開源的病歷管理平臺存在四個安全漏洞,從而允許遠程代碼執行、竊取患者數據等操作。在共享的電子病歷OpenClinic應用程式中發現了四個漏洞。其中人們最關注的是,一個允許遠程的未經認證的攻擊者從應用程式中讀取患者的個人健康信息(PHI)的漏洞。
  • 女兒提前曬 iPhone X,攻城獅老爸被蘋果解僱;Linux Kernel 4.14-rc7 發布
    (點擊上方藍字,快速關注我們)參考:開源中國、solidot、cnBeta、騰訊科技等0、女兒提前曬 iPhone X,攻城獅老爸被蘋果解僱
  • 你所不知道的php編程中那些坑~
    php$a = '123';?>//file2.php<?如果被包含的文件有return,則inculde()成功時返回該文件的返回值。可以表示4294967296個數字,有符號的話就是-2147483647到2147483648解決方案php裡的辦法就是:不能使用intval,用floatval取代之。
  • 有安全研究者混入了 PHP 8.0 開發組!
    命名參數 Named ArgumentsPHP 8 以前,如果我們需要給一個函數的第N個參數傳參,那麼這個參數前面的所有參數,我們都需要傳參。但是實際上有些參數是具有默認值的,這樣做顯得多此一舉。如果你需要執行Attributes裡面的代碼,仍然需要通過反射來做到,比如:#[Attribute]classListensTo{public string $event;function__construct($event)
  • 如果斯柯達220毫米攻城榴彈炮,可能最後都成為德軍攻城利器?
    在第一次世界大戰之後,攻城炮這一名詞已經很少出現了,新型大炮開始向機動大炮發展,當然,在那個時期,大炮也不少。第一次對此產生興趣的南斯拉夫於1928年以M.28的名義購買了12門,主要用於要塞防禦,另一位顧客是波蘭,27門的訂單經常出現在宣傳照片中,用來炫耀軍事力量,但也許是為了避免讓外界知道該炮的裝填模式很笨拙,照片中的後膛被刻意遮蓋。波蘭還專門為此類攻城炮研製了一種可用於攻擊兵營、集結點等目標的破片彈,其破片彈對人員殺傷效果極佳。
  • 【乾貨 | 附exp、代碼分析和漏洞修補】web類漏洞總結
    埠:默認埠:908*;第一個應用就是9080,第二個就是9081;控制臺9090;攻擊方法:控制臺登錄爆破很多內網 websphere 的控制臺存在弱口令 / 默認口令,可以使用 admin/admin 以及 webshpere/webshpere 這種口令登錄。
  • 答案很常見,別說你不知道!
    答案很常見,別說你不知道!哈嘍,又到了腦筋急轉彎的歡樂時間了,該出手時候就出手!快來一起做這10道腦筋急轉彎吧!現在正式開始答題(一共有10道題,每題10分,共100分)——答案在最後哦1、一個人上了手術臺是什麼心情?2、小米是一位出色的小說家,有一次她連續寫了一個月,卻連一篇小說的題目都沒寫出來,這是為什麼呢?
  • 竹節七獅的覆滅:源於九靈元聖的六大失誤
    我賢孫,你錯惹了他也!」妖精道:「祖爺知他是誰?」老妖道:「那長嘴大耳者乃豬八戒,晦氣色臉者乃沙和尚,這兩個猶可。那毛臉雷公嘴者叫做孫行者,這個人其實神通廣大,五百年前曾大鬧天宮,十萬天兵也不曾拿得住。他專意尋人的,他便就是個搜山揭海、破洞攻城、闖禍的個都頭!你怎麼惹他?也罷,等我和你去,把那廝連玉華王子都擒來替你出氣!」那妖精聽說,即叩頭而謝。
  • 古代城門都是木門,攻城卻很少用火攻,因為根本不管用
    在古代的戰爭中城戰是非常常見的,因為城池在戰略上的重要意義,古人很重視城池的防禦,這也增加了攻城的難度,攻城戰往往非常的慘烈,攻城一方也要付出巨大的代價。城池最為薄弱的部分無疑就是城門了,古時候的城門材料基本都是木製的木頭都是很怕火的,可是在攻城的時候進攻的一方卻很少使用火攻而是採用架雲梯等方式攻城。
  • windows 檢查php版本專題及常見問題 - CSDN
    安裝apcu.dll動態庫文件,打開php_apcu-5.1.8-7.0-nts-vc14-x86.zip壓縮包 拷貝裡面php_apcu.dll文件放到安裝目錄E:\Tools\phpstudy\PHPTutorial\php\php-7.0.12-nts\ext下面。 在php.ini文件中加載動態庫。
  • 10個php編程最容易犯的錯誤
    循環結束後,$value並未銷毀,$value其實是數組中最後一個元素的引用,這樣在後續對$value的使用中,如果不知道這一點,會引發一些莫名奇妙的錯誤:)看看下面這段代碼:$array=[1,2,3];echoimplode(',',$array),"\n";foreach($arrayas&$value){}// by referenceechoimplode
  • 從PHP 5到PHP 7性能全評測(含未發布的JIT版PHP 8對比)
    如果你看看bench.php 和試驗性的 JIT 分支的這個列的交集,你會注意到,對於這個特定的測試基準,PHP 8 比 PHP 5.0 快 41 倍以上。純CPU基準測試的結果如下所示:測試不能在 5.3 之前的版本上運行,因為它使用了尚未實現的對象功能。
  • 《哈利波特》原著中死忠粉才知道的小漏洞,你發現了幾個?(一)
    《哈利波特》原著中死忠粉才知道的小漏洞,你發現了幾個?(一)圖片來自網絡,內容原創 禁止轉載首先小編要說的便是HP1當中的漏洞,在第14頁的時候作者曾說過皮爾是一個瘦骨如柴,而且臉型長得很像老鼠的人,但是到19頁的時候卻演變成了一個傻大個,不知道是作者忘記更改她之前的設定呢?還是有兩個皮爾的存在?