日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 上传文件漏洞,【文件上传】PHP文件上传漏洞

發(fā)布時間:2025/3/20 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 上传文件漏洞,【文件上传】PHP文件上传漏洞 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

0x01 文件上傳漏洞

文件上傳漏洞顧名思義就是用戶上傳一個可執(zhí)行的腳本文件,獲得了執(zhí)行服務(wù)器端命令的能力。通常,文件上傳是getshell最常用、最直接的方式了。但是,文件上傳本身是一個正常的業(yè)務(wù)需求,因此問題在于如何安全的上傳。

0x02 文件上傳的觸發(fā)條件

上傳的文件被Web容器解釋執(zhí)行

用戶能夠從web頁面訪問到被上傳的文件(直接或間接)

用戶上傳的文件通常不能被網(wǎng)站程序壓縮、修改內(nèi)容

0x03 從防御的角度看上傳

通常防御文件上傳漏洞是分幾個點的,大體上就以下幾方面

1. 客戶端javascript校驗

在瀏覽加載文件,但還未點擊上傳按鈕時變彈出對話框,內(nèi)容可能是“只允許上傳xxx后綴名的文件”之類的,而此時并沒有發(fā)送數(shù)據(jù)包。

繞過方法:

關(guān)閉瀏覽器的javascript功能

用burp抓包改后綴名

2. 檢測MIME 類型

· 客戶端判斷:

$_FILES['myfile']['type'] == 'image/jpeg'

· 服務(wù)端判斷:

$fileinfo = finfo_open(FILEINFO_MIME);

$mimetype = finfo_file($fileinfo, $file_true_name);

繞過方法:

用burp抓包,修改Content-Type

3. 檢查內(nèi)容

服務(wù)器端會讀取上傳的文件然后判斷文件內(nèi)容時候有<?php之類的

繞過方法:

如果檢查文件頭的話就就可以找張真正的圖片然后用winhex在圖片的末尾寫php代碼

4. 檢查文件擴展名

一般檢查文件擴展名為最直接有效的方法,通常是基于白名單或者黑名單來實現(xiàn)的。

黑名單繞過

可以使用能夠被解析的其他文件擴展名

jsp jspx jspf

asp asa cer aspx

php phtml php3 php4 php5 PHP phtm

exe exee

特殊文件名繞過

比如在上傳的時候改成test.asp.或者test.asp_(下劃線為空格,這里方便大家看用下劃線表示了),這種命名方式在windows下是不允許的,繞過驗證后windows系統(tǒng)自動去掉后面的點和空格,但要注意Unix/Linux是沒有這個特性的。

00截斷

有的時候可能會遇到服務(wù)器端把后綴名已經(jīng)定好了,而恰好別的地方有一個可以任意讀取php文件的服務(wù),這個時候可以把圖片馬上傳后在這里查看,查看的時候用%00把后面的.php給截斷就好了

.htaccess文件攻擊

配合名單列表繞過,上傳一個自定義.htaccess文件,即可輕松繞過各種檢測。

解析漏洞繞過

這類漏洞直接配合上傳一個代碼注入過的非黑名單文件即可,再利用解析漏洞即可

白名單繞過

%00截斷

跟之前說的很像,就是上傳一個比如shell.php%00.jpg,服務(wù)器檢測后綴名是.jpg,但實際上已經(jīng)被截斷了。

解析漏洞利用

這類漏洞直接配合上傳一個代碼注入過的白名單文件即可,再利用解析漏洞

.htaccess文件攻擊

配合名單列表繞過,上傳一個自定義.htaccess文件,即可輕松繞過

0x04 與文件上傳息息相關(guān)的解析漏洞

IIS5.x-6.x解析漏洞

?使用iis5.x-6.x版本的服務(wù)器,大多為windowsserver2003,網(wǎng)站比較古老,開發(fā)語句一般為asp;該解析漏洞也只能解析asp文件,而不能解析aspx文件。

?目錄解析(IIS6.0),只要文件夾有asp的話,該目錄下所有文件都會當作asp來解析,www.xxx.com/xx.asp/xx.jpg(xx.asp要存在)

?www.xxx.com/xx.asp;.jpg服務(wù)器默認不解析;號后面的內(nèi)容,因此xx.asp;.jpg便被解析成asp文件了。(xx.asp;.jpg為上傳文件)

IIS的PUT上傳

?PUT是在WebDav中定義的一個方法,允許用戶上傳文件到指定目錄。

?在許多WebServer中都默認禁用了此方法,或者對上傳做了嚴格限制。但在IIS中,如果目錄支持寫權(quán)限,同時開啟了WebDav,就會支持PUT,再結(jié)合MOVE方法,可Getshell。

apache解析漏洞

?Apache解析文件的規(guī)則是從右到左開始判斷解析,如果后綴名為不可識別文件解析,就再往左判斷。比如test.php.owf.rar“.owf”和”.rar”這兩種后綴是apache不可識別解析,apache就會把test.php.owf.rar解析成php?www.xxxx.xxx.com/test.php.php123

?Apache的httpd.conf的AddHandler php5-script .php這時只要文件名里包含.php即使文件名是test2.php.jpg也會以php來執(zhí)行。(配置錯誤)

nginx解析漏洞(Nginx<8.03)

?當cgi.fix_pathinfo開啟時(為1)

?當訪問www.xx.com/phpinfo.jpg/1.php時,會將phpinfo.jpg當做php進行解析

?其中1.php是一個不存在的文件

0x06 參考

某大佬的PPT

文件上傳框架

總結(jié)

以上是生活随笔為你收集整理的php 上传文件漏洞,【文件上传】PHP文件上传漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。