最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php安全攻防利用文件上傳漏洞與繞過技巧詳解

 更新時間:2021年10月14日 15:34:54   作者:1A_  
這篇文章主要介紹了php安全攻防如何利用文件上傳漏洞與繞過技巧詳解,有需要的朋友可以參考借鑒下,希望大家多多進步早日升職加薪

前言

文件上傳漏洞大多出現(xiàn)在可以進行文件上傳的地方,如用戶頭像上傳,文檔上傳處等。該漏洞是一個危害十分大的漏洞,通過文件上傳,攻擊者可以上傳webshell并進行getshell操作,從而獲得系統(tǒng)shell,可執(zhí)行任意命令。也為后續(xù)大型木馬的上傳,特權提升提供了一個良好的基礎。

文件上傳漏洞的一些場景

接下來針對文件上傳漏洞的一些waf過濾的場景進行說明并進行繞過和利用。

場景一:前端js代碼白名單判斷.jpg|.png|.gif后綴

在該場景下,防御的姿勢是通過js代碼對上傳的文件后綴進行判斷,如果不是.jpg|.png|.gif這三個后綴的文件則不允許上傳至后臺

繞過方式:

將帶有一句話木馬的文件后綴名改為xxx.jpg|png|gif,在上傳處通過BurpSuite進行包攔截并改包,將文件后綴名改為php|jsp等腳本的后綴。上傳成功后訪問該文件的路徑即可getshell。

場景二:后端PHP代碼檢查Content-type字段

在該場景下,防御的姿勢是通過js代碼對上傳文件請求的Content-type字段進行檢查,如果不是image/jpeg則不允許上傳至后臺

繞過方式:

將上傳一句話木馬文件的request包進行攔截,添加或修改Content-type字段為image/jpeg

場景三:代碼黑名單判斷.asp|.aspx|.php|.jsp后綴

在該場景下,防御姿勢是通過后臺代碼對上傳的文件后綴進行判斷,如果是.asp|.aspx|.php|.jsp這四個后綴的文件則不允許上傳

繞過方式:

當apache的配置文件httpd.conf中存在如下配置時:

AddType application/x-httpd-php .php .phtml .phps .php5 .pht

說明可以通過上傳.phtml|.phps|.php5|.pht這些后綴名的文件,且他們都會被解析稱后綴為.php的文件。所以可以嘗試使用上傳xxx.php5這類的文件進行繞過

關于AddType命令的作用:

AddType 指令

作用:在給定的文件擴展名與特定的內(nèi)容類型之間建立映射
語法:AddType MIME-type extension [extension] …
AddType指令在給定的文件擴展名與特定的內(nèi)容類型之間建立映射關系。MIME-type指明了包含extension擴展名的文件的媒體類型。
AddType 是與類型表相關的,描述的是擴展名與文件類型之間的關系。AddType 是與類型表相關的,描述的是擴展名與文件類型之間的關系。

場景四:代碼擴大黑名單判斷

在該場景下,防御姿勢是通過后臺代碼對上傳的文件后綴進行判斷,如果是

.php|.php5|.php4|.php3|.php2|.php1|.html|.htm|.phtml|.pht|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|.pHp1|

.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|

.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf

這些后綴的文件則不允許上傳

繞過方式——htaccsess:

使用.htaccsess文件進行繞過

.htaccsess文件的作用:

.htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網(wǎng)頁配置。通過htaccess文件,可以實現(xiàn):網(wǎng)頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能IIS平臺上不存在該文件,該文件默認開啟,啟用和關閉在httpd.conf文件中配置。

.htaccsess文件的使用條件:

mod_rewrite模塊開啟。
AllowOverride All

構造.htaccess文件,內(nèi)容如下:

AddType application/x-httpd-php .jpg

這里代碼的意思可以讓 .jpg后綴名文件格式的文件名以php格式解析,因此達到了可執(zhí)行的效果。所以我們可以把要上傳的php文件的后綴名改為.jpg格式從而繞過

繞過方式——大小寫繞過:

如果在黑名單中沒有針對大小寫進行限制,則可以進行大小寫繞過,如將.php后綴改為.PhP|.PHP后綴

場景五:一些復合判斷

在該場景下,防御姿勢除了基本的黑/白名單外,還包括了對一些特定字符的限制,具體情況可以進行fuzz或者有條件可以進行代碼審計

空格、點繞過(windows)

當接收文件時,后臺代碼的限制條件中沒有去除文件名首尾的空格(或是沒有對.進行拆分)時,可以利用windows系統(tǒng)的命名規(guī)則進行繞過:如,將文件后綴改為xxx.phpxxx.php.、xxx.php .

在windows下xx.jpg[空格] 或xx.jpg.這兩類文件是不允許存在的,若這樣命名,windows會默認去除空格或點

還有些情況具體就需要看代碼邏輯,比如如果代碼只刪除一次點且只去除一次首尾空格,在windows環(huán)境下就可以用xxx.php. .進行繞過

::$DATA繞過(windows)

::$DATA繞過同樣利用了windows的特性

NTFS文件系統(tǒng)包括對備用數(shù)據(jù)流的支持。這不是眾所周知的功能,主要包括提供與Macintosh文件系統(tǒng)中的文件的兼容性。備用數(shù)據(jù)流允許文件包含多個數(shù)據(jù)流。每個文件至少有一個數(shù)據(jù)流。在Windows中,此默認數(shù)據(jù)流稱為:$ DATA。

即在php+windows的環(huán)境下,如果文件名+::$DATA會把::$DATA之后的數(shù)據(jù)當成文件流處理,不會檢測后綴名,且保持::$DATA之前的文件名。

雙寫繞過

當防御的代碼中存在將某些特定后綴進行空字符替換時(如利用str_ireplace函數(shù)將.php|.jsp等后綴替換為空字符)

這時候可以將后綴雙寫,即將php改成pphphp

%00截斷

00截斷繞過方式需要滿足以下條件

php版本小于5.3.4
php.ini的magic_quotes_gpc為OFF狀態(tài)
使用move_uploaded_file函數(shù)且參數(shù)受用戶控制

此時move_uploaded_file函數(shù)遇到0x00會截斷

可以將上傳文件后綴改為xx.php%00進行繞過

%0a繞過

%0a繞過方式需要滿足以下條件

Apache httpd 2.4.0至2.4.29
FileMatch正則匹配.php|.php5等后綴

該版本apache會通過$匹配后綴,而$匹配時會正則匹配某字符串結尾或以換行符結尾的一個字符串,即php[換行符]會被匹配成php

可以將上傳文件后綴改為xx.php%0a進行繞過

圖片馬繞過

window的cmd命令制作圖片馬

copy 1.jpg /b + shell.php /a shell.jpg

或是利用其他圖片馬生成器生成

二次渲染繞過

判斷圖片格式后用image函數(shù)進行二次渲染

繞過方式:

抓包找到二次渲染中未被改動的地方,將一句話馬插入該地方,.jpg|.png|.gif三種文件格式不同,所以構造馬的方式也不同

注:gif文件最簡單,直接用ue等16進制編輯器就可以改,但是jpg和png需要特殊的構造腳本

先將一張正常的jpg圖片上傳,上傳后將服務器存儲的二次渲染的圖片保存下來。
將保存下來經(jīng)過服務器二次渲染的那張jpg圖片,用此腳本進行處理生成payload.jpg
然后再上傳payload.jpg

條件競爭

當上傳文件邏輯為:先move_uploaded_file函數(shù)將上傳文件臨時保存,再進行判斷,如果不在白名單里則unlink刪除,在的話就rename重命名。此時會存在條件競爭

繞過方法:
用burp開啟兩個intruder模塊,一個用于重復上傳,另一個用于重復訪問。會有一定記錄返回執(zhí)行結果

/.繞過

move_uploaded_file函數(shù)參數(shù)可控時,可以嘗試/.繞過,因為該函數(shù)會忽略掉文件末尾的/.,所以可以構造save_path=1.php/.,這樣file_ext值就為空,就能繞過黑名單,而move_uploaded_file函數(shù)忽略文件末尾的/.可以實現(xiàn)保存文件為.php

以上就是php安全攻防利用文件上傳漏洞與繞過技巧詳解的詳細內(nèi)容,更多關于php文件上傳漏洞利用與繞過技巧的資料請關注腳本之家其它相關文章!

相關文章

  • php服務器的系統(tǒng)詳解

    php服務器的系統(tǒng)詳解

    在本篇文章里小編給大家整理的是關于php服務器用什么系統(tǒng)的相關知識點內(nèi)容,有興趣的朋友們跟著學習參考下。
    2019-10-10
  • PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等)

    PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等)

    這篇文章主要介紹了PHP入門教程之正則表達式基本用法,結合實例形式分析了正則表達式的結構、原理及正則匹配、搜索、分割、元子符、修飾符等相關概念與操作技巧,需要的朋友可以參考下
    2016-09-09
  • php實現(xiàn)的遍歷文件夾下所有文件,編輯刪除

    php實現(xiàn)的遍歷文件夾下所有文件,編輯刪除

    遍歷文件夾; 功能:(a)可刪除文件 (b)可編輯文本,網(wǎng)頁文件 (c)可刪除文件夾,前提是該文件夾為空 (d)可建立文件,文件夾,修改文件夾名稱
    2010-01-01
  • 通過chrome瀏覽器控制臺(Console)進行PHP Debug的方法

    通過chrome瀏覽器控制臺(Console)進行PHP Debug的方法

    這篇文章主要介紹了利用chrome瀏覽器控制臺(Console)進行PHP Debug,需要的朋友可以參考下
    2016-10-10
  • php中array_column函數(shù)簡單實現(xiàn)方法

    php中array_column函數(shù)簡單實現(xiàn)方法

    這篇文章主要介紹了php中array_column函數(shù)簡單實現(xiàn)方法,結合實例形式簡單分析了array_column函數(shù)的功能,并針對低版本的情況給出了array_column函數(shù)的實現(xiàn)代碼,需要的朋友可以參考下
    2016-07-07
  • php準確計算復活節(jié)日期的方法

    php準確計算復活節(jié)日期的方法

    這篇文章主要介紹了php準確計算復活節(jié)日期的方法,涉及php操作日期的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • php中注冊器模式類用法實例分析

    php中注冊器模式類用法實例分析

    這篇文章主要介紹了php中注冊器模式類用法,以實例形式分析了注冊器讀寫類的相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • php壓縮多個CSS為一個css的代碼并緩存

    php壓縮多個CSS為一個css的代碼并緩存

    壓縮多個CSS文件成一個并緩存一個小時。也可以使用相同的JavaScript代碼,但替換下面的“文本/的CSS“和”文本 JavaScript的“,當然一定要包括。代替的。css的js文件。
    2011-04-04
  • 最新評論

    北宁市| 大英县| 遂宁市| 屏山县| 仙游县| 和硕县| 安达市| 盐亭县| 大荔县| 广宗县| 阜阳市| 金溪县| 同德县| 襄樊市| 梁平县| 呈贡县| 凯里市| 浑源县| 清河县| 临泽县| 措美县| 大荔县| 隆子县| 聂荣县| 汝南县| 全椒县| 南投县| 江孜县| 竹溪县| 临朐县| 翁牛特旗| 建阳市| 蕲春县| 遂昌县| 赤峰市| 志丹县| 延津县| 长阳| 宣汉县| 常熟市| 景泰县|