畸形php文件名執行漏洞,php文件解析漏洞

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SRBCR的頭像SRBCR
上一篇 2025-01-11 16:28
下一篇 2025-01-11 16:28

相關推薦

  • vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常問題的解決

    本文旨在解決vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常的問題,提供完整的代碼示例供參考。 一、分析問題 首先,需了解vue中下載文件的情況。一般情況下,我們…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • 為什麼用cmd運行Java時需要在文件內打開cmd為中心

    在Java開發中,我們經常會使用cmd在命令行窗口運行程序。然而,有時候我們會發現,在運行Java程序時,需要在文件內打開cmd為中心,這讓很多開發者感到疑惑,那麼,為什麼會出現這…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python將矩陣存為CSV文件

    CSV文件是一種通用的文件格式,在統計學和計算機科學中非常常見,一些數據分析工具如Microsoft Excel,Google Sheets等都支持讀取CSV文件。Python內置…

    編程 2025-04-29
  • Python如何導入py文件

    Python是一種開源的高級編程語言,因其易學易用和強大的生態系統而備受青睞。Python的import語句可以幫助用戶將一個模塊中的代碼導入到另一個模塊中,從而實現代碼的重用。本…

    編程 2025-04-29
  • Python合併多個相同表頭文件

    對於需要合併多個相同表頭文件的情況,我們可以使用Python來實現快速的合併。 一、讀取CSV文件 使用Python中的csv庫讀取CSV文件。 import csv with o…

    編程 2025-04-29
  • Python寫文件a

    Python語言是一種功能強大、易於學習、通用並且高級編程語言,它具有許多優點,其中之一就是能夠輕鬆地進行文件操作。文件操作在各種編程中都佔有重要的位置,Python作為開發人員常…

    編程 2025-04-29

發表回復

登錄後才能評論