當前位置:首頁 » 文件管理 » php上傳文件漏洞

php上傳文件漏洞

發布時間: 2022-08-21 00:59:00

① 文件上傳漏洞如何搭建

文件上傳是Web應用中比較常見的功能,用戶經常會通過文件上傳的功能分享照片、修改頭像或上傳附件等操作;文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,並通過此腳本文件獲得了執行服務端命令的能力;文件上傳本身是一個網站正常的業務需求,但如果文件在上傳之後,伺服器端沒有妥善的處理,就會導致嚴重的後果。簡單寫一個php上傳代碼演示php上傳漏洞。

1.首先搭建phpstudy的安裝環境,在phpstudy網站根目錄建立php演示文件夾,放入php文件上傳代碼。

5.嘗試訪問phpinfo.php文件使用剛才猜想的路徑,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函數被執行。

② php上傳漏洞如何防止注入木馬

電腦中毒有很多原因,比如:上網瀏覽網頁,下載軟體文件,接受別人發來的東西,連接U盤手機,放光碟,漏洞沒有修復,導致病毒入侵。。反正病毒無處不在,想要電腦不中毒,除非你的電腦不聯網。或是定期殺毒,騰訊電腦管家就可以 ,資源佔用量少,雲查殺木馬非常給力,漏洞查殺,系統修復,而且繼承了騰訊在反網路釣魚,打擊惡意網址方面十餘年的安全防護經驗及基因。騰訊電腦管家操作方便簡單,界面清爽,清理垃圾更加全面。還有記得要修復好漏洞,病毒就無法鑽漏洞進入電腦的了。

③ 文件上傳漏洞的類型有哪些

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/Nginx<0.8.3畸形文件解析漏洞,當訪問http://xxx.com/1.jpg/1.php時,此時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的上傳。

④ 如何查找php文件包含漏洞的方法

找360或安全聯盟檢測介面, 免費的。
主要是查上傳漏洞。可以網路下,夠學習一段時間的。

⑤ 文件上傳漏洞有哪些挖掘思路

文件上傳漏洞作為獲取伺服器許可權最快的方式,雖然相關資料很多,但很多人對上傳校驗方式、如何針對性繞過檢測、哪種上傳和解析的場景會產生危害等還是比較模糊。本文作一些闡述,然後補充一些除了上傳webshell的其他非常規挖掘姿勢,包括XSS、重定向、Dos、CSRF等等。
1、基礎知識:
要深入了解文件上傳,必須了解上傳屬性、常見文件的結構、圖形處理函數等內容。
1) 報文特點:
觀察文件上傳報文的特點:
Header中Content-Type特徵有二:
1.multipart/form-data(form表單的enctype屬性,規定為二進制數據)
2.boundary字元串(作用為分隔符,以區分POST數據)
POST內容特徵有五:
1.Content-Disposition:form-data
2. name:input表單名
3.filename:文件名
4.Content-Type:定義文件的類型和網頁的編碼,決定瀏覽器將以什麼形式、什麼編碼讀取這個文件;
5.boundary:Content-Type的值前面加了兩個---

2) 常見校驗規則
現存常用的上傳校驗規則無非下面幾類:
1.客戶端javascript校驗(後綴名)
2.文件頭content-type欄位校驗(image/gif):附帶參數
4.後綴名黑/白名單校驗:擴展名
5.文件內容頭校驗:GIF89a
6.文件內容校驗:文件信息,二次渲染
7.自定義正則校驗
3)一個澄清
文件上傳和文件解析是兩個過程,即使我們上傳的是php文件,但解析為圖片,訪問php文件會顯示「圖片無法顯示」;或者我們上傳的是jpg文件,但裡面混有shell腳本,若被解析為php文件也會執行;又或者上傳處沒法繞過檢測,只能上傳jpg文件,但在其他功能處存在文件包含等功能,仍可執行成功。
還是回到安全的本質,上傳是「輸入」,那文件解析就是「輸出」,任何漏洞挖掘都需要結合輸入+輸出。

2、繞過技巧:
這里匯總一些實戰中較常用的繞過技巧:
1)後綴名黑名單
以下替換後綴也可以解析為shell:
php:.phtml,.phpt,.php3,.php3p
asp:.aspx,asmx,ashx,web.config
perl:.pl,.pm,.cgi,.lib
jsp:.jspx,.jsw,.jsv,.jspf
Coldfusion:.cfm,.cfml,.cfc,.dbm
另外可以配合操作系統的文件命名規則:
.php.,.php空格,.php:1.jpg,.php::$DATA等
這些後綴的文件會被windows系統自動去掉不符合規則符號後面的內容,從而只留下.php。
2)後綴名白名單
除了結合各種伺服器解析特性,較常用的是Null Byte Injection空位元組注入,插入空位元組值的原因是某些應用程序伺服器腳本語言使用c/c++庫來檢查文件名和內容。在C/C ++中,一行以/00結尾或稱為NullByte。因此,只要解釋器在字元串的末尾看到一個空位元組,就會停止讀取,認為它已經到達字元串的末尾。
如,我們將要上傳的Happy.jpg的名稱更改為Happy.phpA.jpg,然後上傳文件,在Burp中捕獲請求,切換到Hex視圖。在字元串視圖中找到文件名。查看相應的Hex表,並將41('A')替換為00(為空位元組)。結果字元串變為Happy.php(空).jpeg。由於php解釋器在內部使用C語言庫,它將停止讀取Happy.php後的文件名,文件將保存為Happy.php。
另一種繞過白名單的方法是使用雙後綴:shell.php.jpg。

⑥ 文件上傳漏洞原理是什麼

文件上傳原理

在文件上傳的功能處,若服務端腳本語言未對上傳的文件進行嚴格驗證和過濾,導致惡意用戶上傳惡意的腳本文件時,就有可能獲取執行服務端命令的能力,這就是文件上傳漏洞。

文件上傳漏洞高危觸發點

相冊、頭像上傳

視頻、照片分享

附件上傳(論壇發帖、郵箱)

文件管理器

存在文件上傳功能的地方都有可能存在文件上傳漏洞,比如相冊、頭像上傳,視頻、照片分享。論壇發帖和郵箱等可以上傳附件的地方也是上傳漏洞的高危地帶。另外像文件管理器這樣的功能也有可能被攻擊者所利用值得注意的是,如果移動端也存在類似的操作的話,那麼相同的原理,也存在文件上傳漏洞的風險。

為了防禦文件上傳漏洞的產生,需要在服務端做嚴格的防護,因為瀏覽器、客戶端傳回的數據並不可信任。首先是第一道防線,文件類型檢測,上傳的文件需要經過嚴格的文件類型檢測防止上傳的文件是惡意腳本。

上傳之後的文件要進行重命名。

如果上傳的文件是圖片類型,可以選擇使用重繪圖的方式對圖片進行保存,但是這種方式會對服務端性能稍有影響

最後,文件上傳的目錄不可賦予可執行許可權,可以使用BOS這樣的雲存儲服務,當然最方便的還是使用BOS這樣現成的雲存儲服務

⑦ 文件上傳漏洞

在上網的過程中,經常會將一些如圖片、壓縮包之類的文件上傳到遠端伺服器進行保存。文件上傳攻擊指的是惡意攻擊者利用一些站點沒有對文件的類型做很好的校驗,上傳了可執行的文件或者腳本,並且通過腳本獲得伺服器上相應的權利,或者是通過誘導外部用戶訪問、下載上傳的病毒或木馬文件,達到攻擊的目的。為了防範用戶上傳惡意的可執行文件和腳本,以及將文件上傳伺服器當做免費的文件存儲伺服器使用,我們需要對上傳的文件類型進行白名單(非黑名單,這點非常重要)校驗,並且限制上傳文件的大小,上傳的文件需要進行重新命名,使攻擊者無法猜測到上傳文件的訪問路徑。
對於上傳的文件來說,不能簡單地通過後綴名稱來判斷文件的類型,因為惡意攻擊可以將可執行文件的後綴名稱改成圖片或者其他後綴類型,誘導用戶執行。因此,判斷文件類型需要使用更安全的方式。很多類型的文件,起始的幾個位元組內容是固定的,因此,根據這幾個位元組的內容,就可以確定文件類型,這幾個位元組也被稱為魔數( magic number)。

⑧ 文件上傳漏洞如何搭建

文件上傳是Web應用中比較常見的功能,用戶經常會通過文件上傳的功能分享照片、修改頭像或上傳附件等操作;文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,並通過此腳本文件獲得了執行服務端命令的能力;文件上傳本身是一個網站正常的業務需求,但如果文件在上傳之後,伺服器端沒有妥善的處理,就會導致嚴重的後果。簡單寫一個php上傳代碼演示php上傳漏洞。

1.首先搭建phpstudy的安裝環境,在phpstudy網站根目錄建立php演示文件夾,放入php文件上傳代碼。

2.php文件上傳漏洞演示代碼,代碼未限制任何文件屬性的上傳。


3.

寫一個phpinfo.php文件,通過瀏覽器訪問進行上傳。

4.

提示上傳成功,保存於uploads路徑中,可以猜想保存路徑為http://10.10.10.1/php/uploads

5.

嘗試訪問phpinfo.php文件使用剛才猜想的路徑,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函數被執行。


⑨ 文件上傳漏洞及解析漏洞總結

  • 首先搭建phpstudy的安裝環境,在phpstudy網站根目錄建立php演示文件夾,放入php文件上傳代碼。

  • php文件上傳漏洞演示代碼,代碼未限制任何文件屬性的上傳。

  • 寫一個phpinfo.php文件,通過瀏覽器訪問進行上傳。

  • 提示上傳成功,保存於uploads路徑中,可以猜想保存路徑為http://10.10.10.1/php/uploads

  • 嘗試訪問phpinfo.php文件使用剛才猜想的路徑,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函數被執行

⑩ 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類型
熱點內容
如何尋找資產配置機會 發布:2024-10-13 19:13:47 瀏覽:375
轎車安卓中控怎麼安裝手機卡 發布:2024-10-13 19:05:23 瀏覽:450
商城首頁android 發布:2024-10-13 17:53:20 瀏覽:496
甲骨文雲伺服器如何申請 發布:2024-10-13 16:49:39 瀏覽:135
c語言中參數傳遞 發布:2024-10-13 16:30:15 瀏覽:82
cos伺服器搭建 發布:2024-10-13 16:17:41 瀏覽:338
象棋軟體演算法 發布:2024-10-13 15:32:35 瀏覽:903
平板怎麼看真正配置 發布:2024-10-13 14:53:32 瀏覽:35
微信存儲空間的其他 發布:2024-10-13 14:52:14 瀏覽:672
怎麼繞過系統密碼登錄密碼登錄密碼登錄 發布:2024-10-13 14:47:41 瀏覽:510