本文目錄一覽:
- 1、PHP 網路開發詳解之遠程文件包含漏洞
- 2、計算機掃描出php漏洞如何處理
- 3、php文件上傳漏洞,請教這樣怎麼解決?
- 4、php代碼執行漏洞所能造成的危害包括以下哪些內容
- 5、PHP漏洞有哪些
- 6、文件上傳漏洞的類型有哪些?
PHP 網路開發詳解之遠程文件包含漏洞
以下代碼(Code)實現了根據瀏覽器地址欄參數的文件名稱包含不同文件的功能。
複製代碼
代碼如下:
?php
$file_name
=
$_GET[“filename”];
//獲得當前文件名
include(“$file_name
“);
//包含文件
//一些其他操作
?
這時,通過在地址欄上指定不同的文件名就可以實現包含不同文件並執行的功能。例如,通過在瀏覽器上訪問就可以在代碼(Code)中包含並執行myinc.php文件。
由於上面的代碼(Code)沒有進行任何錯誤處理,在瀏覽器上不加參數運行,所以將得到以下運行結果。
Warning:
include(.php)
[function.include]:
failed
to
open
stream:
No
such
file
or
directory
in
C:\Program
Files\xampp\htdocs\Bugs\test6.php
on
line
3
Warning:
include()
[function.include]:
Failed
opening
‘.php’
for
inclusion
(include_path=’.;C:\Program
Files\xampp\php\pear\’)
in
C:\Program
Files\xampp\htdocs\Bugs\test6.php
on
line
3
訪問者通過讀取這段錯誤信息,可以得知當前的操作是一個文件包含操作。這時,可以在自己的伺服器上放置一個相應的腳本代碼。需要注意的是PHP在獲取遠程文件時獲得的是遠程伺服器的最終輸出結果,而不是文件本身。該腳本代碼位於192.168.0.1伺服器上,文件名為hello.txt,腳本代碼(Code)如下所示。
複製代碼
代碼如下:
?php
echo
“hello
world!”;
?
這時,通過在瀏覽器中訪問就可以運行hello.txt中的腳本了。
為了解決這個問題,一種方式是完善代碼的錯誤信息,使訪問者無法知道當前腳本正在包含參數中指定的文件。修改後的代碼(Code)如下所示。
複製代碼
代碼如下:
?php
$file_name
=
$_GET[“filename”];
//獲得當前文件名
if(!@include(“$file_name.php”))
//包含文件
{
die(“頁面在瀏覽過程中出現錯誤”);
}
//一些其他操作
?
修改後,如果在被包含的文件無法找到時將出現「頁面在瀏覽過程中出現錯誤」的錯誤信息,訪問者將無法獲得當前頁面的具體操作信息。
第二種方式可以更加有效地防止遠程文件包含攻擊。方式是替換地址欄參數中的斜線「/」。這樣,在地址欄參數中輸入遠程文件地址時,代碼將無法正確地獲得參數。修改後的代碼(Code)如下所示。
複製代碼
代碼如下:
?php
$file_name
=
str_replace(‘/’,
”,
$_GET[“filename”]);
//獲得當前文件名
if(!@include(“$file_name.php”))
//包含文件
{
die(“頁面在瀏覽過程中出現錯誤”);
}
//一些其他操作
?
這樣,在瀏覽器中訪問
時,實際上PHP代碼(Code)獲得的包含文件名稱是http:192.168.0.1bugstest6_test。頁面將不會包含遠程文件,並顯示相應的錯誤信息。
計算機掃描出php漏洞如何處理
系統漏洞是指應用軟體或操作系統軟體在邏輯設計上的缺陷或在編寫時產生的錯誤,這個缺陷或錯誤可以被不法者或者電腦黑客利用,通過植入木馬、病毒等方式來攻擊或控制整個電腦,從而竊取您電腦中的重要資料和信息,甚至破壞您的系統。
漏洞原理windows系統漏洞問題是與時間緊密相關的。一個windows系統從發布的那一天起,隨著用戶的深入使用,系統中存在的漏洞會被不斷暴露出來,這些早先被發現的漏洞也會不斷被系統供應商:微軟公司發布的補丁軟體修補,或在以後發布的新版系統中得以糾正。而在新版系統糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。
因而隨著時間的推移,舊的系統漏洞會不斷消失,新的系統漏洞會不斷出現。系統漏洞問題也會長期存在。
安全公告
2014年2月12日凌晨,微軟發布7個漏洞補丁,包括4個「嚴重」級別的補丁和3個「重要」級別的漏洞。分別修復了Internet Explorer、.Net、Windows中存在的多個漏洞和一個Windows8專屬漏洞。
2014年1月16日,發布1月安全公告,其中4個漏洞補丁級別均為「重要」,它們分別修復了MS Office Word、Windows 7內核和舊版本Windows 內核驅動中存在的多個遠程代碼執行和提權漏洞。同時推送的還有Adobe Flash Player 12的版本更新安裝包及Adobe Reader安全更新。
微軟一般在每月第二周的周二發布安全公告,被稱為「補丁星期二」。
漏洞級別
漏洞按嚴重程度分為「緊急」、「重要」、「警告」、「注意」四種。一般的說,在微軟的網站上定義為重要的都應該及時更新。
漏洞修復
系統自動更新Update,或用電腦管家等安全軟體自動修復。
希望我能幫助你解疑釋惑。
php文件上傳漏洞,請教這樣怎麼解決?
檢查一下上傳文件的類型,不要根據後綴判斷類型。用Fileinfo函數去檢查他的真實類型。
示例:
$a = finfo_open(FILEINFO_MIME);
$b = finfo_file($a,’m.js’);
print_r($b);//根據輸出的的mime類型進行進行判斷是不是你要求上傳的類型
還有個函數也能檢查文件的MIME類型:mime_content_type()
但是這個函數已經被廢棄,不推薦使用它
示例:
$a = mime_content_type(‘m.js’);
print_r($a);//會輸出 m.js 文件的MIME類型
php代碼執行漏洞所能造成的危害包括以下哪些內容
假如你的 include 中包含 可變的參數,而且可悲外部修改,例如:
?phpinclude(“inc/”.$_GET[‘file’]);這樣的話,就會引發漏洞,用戶可以構造任意參數來讀取你的文件。
PHP漏洞有哪些
首先和ASP一樣,對敏感字元過濾不嚴會導致注入..
還有PHP很有特點,他得運行程序是很人性化得,如果設置不好,隨便提交個有錯得地址之類就會告訴你絕對路徑之類得敏感信息.
PHP包含過濾不嚴會導致讀取任意文件.
變數過濾不嚴會導致偽造數據欺騙伺服器.
等等等等好多..我說得這些都是比較常見和常用得
文件上傳漏洞的類型有哪些?
1、 前端檢測繞過
有的站點只在前端對文件的類型有所限制,我們只需用bp抓包然後修改文件後綴名就能繞過這種檢測。
2、 文件頭檢測繞過
有的站點使用文件頭來檢測文件的類型,這種檢測可以在shell前加入相應的位元組一繞過檢測,幾種常見的文件類型的頭位元組如下:
3、 後綴檢測繞過
部分伺服器僅根據文件後綴、上傳時的信息或者文件頭來判斷文件類型,此時可以繞過。php由於歷史的原因,部分解釋器可能支持符合正則/ph(p[2-7]?|t(ml)?)/的後綴,如php/php5/pht/phtml/shtml/pwml/phtm等。如果後端對文件名進行了過濾,可以嘗試雙寫文件名,比如1.pphphp。
4、 系統命名繞過
在windows系統中,上傳不符合windwos命名規則的文件名會被windows系統自動去掉不符合規則符號後面的內容,例如:test.asp.、test.asp(空格)、test.php:1.jpg、test.php:: D A T A 、 t e s t . p h p : : DATA、test.php:: DATA、test.php::DATA…這些文件上傳到伺服器端之後都會變成test.php
在linux系統下,可以嘗試上傳文件後綴名為大小寫混用的Php文件。
5、 文件包含繞過
在文件包含的時候,為了靈活包含文件,將被包含文件設置為變數,通過動態變數來引入需要包含的文件,用戶可以對變數的值進行控制,而伺服器端未對變數進行合理的校驗,這樣就導致所包含的文件有可能存在惡意代碼。比如1.php
?php $file=$_GET[『file』]; include($file); ?
這個程序就包含了一個文件,我們在1.txt文件中寫入
?php phpinfo(); ?
然後將這個文件包含在1.php中1.php?file=1.txt這樣
?php phpinfo(); ?就成功寫入1.php這個文件當中,我們訪問1.php這個文件的時候就能出現php信息那個頁面。利用這個漏洞我們就可以進行文件上傳,我們只需包含一個一句話木馬內容的txt就能用菜刀連接,這樣就成功執行了文件上傳。
6、 解析漏洞繞過
目錄解析:在網站中建立名稱為*.asp、.asa格式的文件夾時,其文件夾下面的文件都會被當做asp執行。
文件解析:當文件名為.asp;1.jpg時,也會被當做asp執行
Apache解析漏洞:Apache在解析文件時,是從右往左,如果遇到不認識的擴展名時,就會繼續向左判斷,例如1.php.rar就會被當做
php解析。
IIS 7.0/IIS 7.5/Nginx0.8.3畸形文件解析漏洞,當訪問時,此時1.php不存在,就會將1.jpg當做php文件去執行,所以如果存在該漏洞,將php木馬後綴改成jpg然後訪問1.jpg/1.php然後1.jpg就會被當成1.php來執行。
.htaccess,該文件裡面的代碼如下:
FilesMatch 「1」
SetHandler application/x-httpd-php
這段代碼的意思就是文件名包含」1」這個這個字元串就會被當成php文件來處理。但是值得注意的是上傳.htaccess必須是網站根路徑。
7、 文件截斷繞過
00截斷:由於00代表結束符,所以會把00後面的所有字元刪除。
能利用這個漏洞的前提是,php版本要小於5.3.4,magic_quotes_gpc需要為OFF狀態。我們用bp進行攔包之後,需要send to repeater,然後在hex中,在php後面添加00
8、 競爭條件攻擊
一些網站上傳文件邏輯上是允許上傳任意文件的,然後檢查上傳文件的內容是否包含webshell腳本,如果包含則刪除該文件,這裡存在的問題是文件上傳成功之後和刪除文件之間存在一個短的時間差,攻擊者就可以利用這個時間差來上傳漏洞攻擊。攻擊者先上傳一個webshell腳本1.php內容如下:
?php fputs(fopen(『../shell.php』,』w』),』?php @eval($_POST[a]) ?』); ?
代碼內容就是生成一個新的webshell,shell.php,那麼當1.php上傳成功之後,我們快速訪問這個文件,這時就會在伺服器端當前目錄下自動生成shell.php,這時就利用時間差完成了webshell的上傳。
原創文章,作者:SRBCR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/318169.html