PHP4.3.10以下版本出現嚴重漏洞_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:php中include文件報錯解決方法經常當php頁面中利用include, require, require_once包含了一些其他位置的頁面時,會出現錯誤,比如沒有發現次頁面,或者權限不允許等,可以根據以下方法來排除 1. 出現“未找到文件“類似的錯誤時候,檢查include文件的位置是否正確,下面引用php手冊頁面的
受影響系統:
PHP 5.0.2
PHP 5.0.1
PHP 5.0.0
PHP 4.3.9
PHP 4.3.8
PHP 4.3.7
PHP 4.3.6
不受影響系統:
PHP 5.0.3
PHP 4.3.10
描述:PHP存在輸入驗證漏洞,遠程攻擊者可以利用這個漏洞讀取系統文件內容及進行目錄遍歷攻擊。
問題一是addslashes()存在問題,addslashes()用于過濾用戶輸入,在magic_quotes_gpc設置"on"時,將對每個輸入執行addslashes()進行過濾,但是由于NULL字節不正確被addslashes()編碼,如果用戶輸入被include()或 require()使用,可能導致攻擊者讀取文件系統的任意文件。
問題二是上傳路徑遍歷問題,PHP自動過濾上傳的文件名數據,刪除在斜杠或反斜杠之前的數據,但是如果攻擊者上傳的文件包含單引號,而WEB服務又設置 magic_quotes為ON,或者對上傳文件名執行addslashes()操作,那么在單引號前會前綴一個反斜杠,因此在Windows系統可造成目錄遍歷問題,導致文件上傳到系統任意目錄中。
<*來源:Daniel Fabian (d.fabian@sec-consult.com)
鏈接:http://marc.theaimsgroup.com/?l=bugtraq&m=110321976808504&w=2
*>
測試方法:
警 告
以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!
Daniel Fabian (d.fabian@sec-consult.com)提供了如下測試方法:
如有如下PHP腳本:
<?php
whatever = addslashes(_REQUEST['whatever']);
include("/path/to/program/" . whatever . "/header.htm");
?>
惡意攻擊者可以提交如下URL獲得文件內容:
http://localhost/phpscript.php?whatever=../../../../boot.ini%00
目前官方已經發布了升級補丁以修復這個安全問題,強烈建議所有 Windows 主機上運行 PHP 的朋友升級到 PHP 4.3.10 或者 5.0.3版本
分享:PHP多文件上傳的實例代碼多文件上傳的例子//upload_html.php--------------------------------------------------------------------------------------------- HTML HEAD TITLE上傳文件/TITLE /HEAD script function beforesubmit(forma) { var indexnamea=forma.indexname.value;
相關PHP教程:
- 相關鏈接:
- 教程說明:
PHP教程-PHP4.3.10以下版本出現嚴重漏洞。