一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > 漏洞復(fù)現(xiàn)文件上傳漏洞利用方式與原理概述

漏洞復(fù)現(xiàn)文件上傳漏洞利用方式與原理概述

來源:千鋒教育
發(fā)布人:qyf
時間: 2022-08-12 15:15:07 1660288507

  介紹

  文件上傳漏洞是指用戶上傳了一個可執(zhí)行的腳本文件(php、jsp、xml、cer等文件),而WEB系統(tǒng)沒有進行檢測或邏輯做的不夠安全。文件上傳功能本身沒有問題,問題在于上傳后如何處理及解釋文件。

  分類

  根據(jù)簡介,主要分為上傳(客戶端)、解析(服務(wù)端)兩大類。

  上傳-javascript檢測

  簡介

  通過js代碼,對文件后綴進行判斷。

  原理

  一般使用白名單或黑名單的方式,判斷文件后綴,根據(jù)后綴決定用戶是否上傳。

  攻擊

  Firebug插件刪除判斷函數(shù)

  使用靶機pikachu做例子,直接通過F12修改。

  tupian.php

  <?php

  echo phpinfo();

  ?>

圖片 1

  F12查看代碼

圖片 2

  客戶端通過onchange實踐的checkFileExt函數(shù)進行檢測,我們刪除掉調(diào)用這個函數(shù)的部分。-

圖片 2(1)

  我們再次上傳tupian.php

  

圖片 3

  看路徑,我們修改上方的url,進行訪問。

圖片 6

  看到代碼已經(jīng)運行。

  中間人攻擊-burpsuite攔截

圖片 7

圖片 8

圖片 9

圖片 10

  防御

  上傳無法防御,可以進行文件重命名。

  上傳-MIME檢測

  簡介

  js的檢測基本沒有了,開始使用后端代碼進行檢測,雖然進行MIME檢測是使用的后端代碼,但是,依然是從客戶端獲取的,可以從客戶端修改,我還是歸于上傳這一類了。

  簡單來說,在請求頭中Content-Type:type/subtype來表明類型,常見的有

  text/plain

  text/html

  image/jpeg

  image/jpg

  image/png

  audio/mpeg

  audio/ogg

  audio/*

  video/mp4

  application/*

  application/json

  application/javascript

  application/ecmascript

  application/octet-stream

  攻擊

  中間人攻擊-burpsuite攔截

  burpsuite攔截

  修改Content-Type

  Forward 可以看到發(fā)送過去了,后序驗證同上,不再重復(fù)截圖。

  防御

  上傳無法防御,可以進行文件重命名。

  上傳-后端文件格式檢測

  簡介

  一些后端代碼含有一些函數(shù),能夠判斷文件類型,獲取文件的一些信息。以php為例,php的getimagesize函數(shù)可以獲取圖像的一些信息,如果不是圖像,那么無法獲取信息,就會報錯。

  有的站點使用文件頭來檢測文件類型,這種檢查可以在Shell前加入對應(yīng)的字節(jié)以繞過檢查。幾種常見的文件類型的頭字節(jié)如下表所示

  類型 二進制值

  JPG FF D8 FF E0 00 10 4A 46 49 46

  GIF 47 49 46 38 39 61

  PNG 89 50 4E 47

  TIF 49 49 2A 00

  BMP 42 4D

  原理

  如果你學(xué)過圖像相關(guān)的課程,比如信息隱藏這門課,會使用Matlab讀取圖像,進行信息隱藏,你就會知道圖像的一些格式,符合格式的話就是那個類型的文件,一般是頭部的一些字節(jié)。我們通過將惡意代碼前面添加其他類型文件的頭部就可以偽造成另一個類型,進而繞過檢測。

  攻擊

  我們修改tupian.php為tupian.php.jpg,進行上傳。

圖片 11

  沒有辦法上傳,雖然后綴對,但是內(nèi)部是不正確的。

  我們使用Linux中的xxd或od命令來查看.PNG或.png圖片的信息(博主雖然是在Windows中,但是使用的是cygwin)。

圖片 4

圖片 5

  可以看到文件前面是一樣的。

  使用cmd命令 copy /b CA.png + tupian.php tupian.png

圖片 6(1)

  目錄下會生成新圖片tupian.png,而且符合png格式,但是在圖片后面是php代碼。

圖片 7(1)

圖片 8(1)

  圖片上傳成功,但是打開后還是圖片。

  我們再使用之前的文件包含漏洞就可以了,注意url。

圖片 9(1)

  php由于歷史原因,部分解釋器可能支持符合正則 /ph(p[2-7]?|t(ml)?)/ 的后綴,如 php / php5 / pht / phtml / shtml / pwml / phtm 等 可在禁止上傳php文件時測試該類型。

  jsp引擎則可能會解析 jspx / jspf / jspa / jsw / jsv / jtml 等后綴

  asp支持 asa / asax / cer / cdx / aspx / ascx / ashx / asmx / asp{80-90} 等后綴。

  除了這些繞過,其他的后綴同樣可能帶來問題,如 vbs / asis / sh / reg / cgi / exe / dll / com / bat / pl / cfc / cfm / ini 等。

  防御

  若沒有文件包含漏洞,問題不大,否則無法防御。

  上傳-文件截斷

  簡介

  php %00截斷,由于00代表結(jié)束符,00后面的所有字符都會刪除掉,發(fā)生在php5.3.4之前版本,php的magic_quotes_gpc為OFF狀態(tài)。

  攻擊

圖片 10(1)

圖片 11(1)

  正好被水印擋住了,擋住的部分就是參數(shù)magic_quotes_gpc。

  解析-Apache文件解析

  一個文件可以有多個后綴,如:lady_killer.txt.png.mp3,在Windows中自然是認為這是mp3文件,也就是說最后的后綴生效。但是,Apache卻是從右向左讀后綴,不認識的跳過繼續(xù)讀,前面的文件就認為是圖片,如果沒有配置mp3后綴的話。因此,對于

  tupian.php.xxx就會認為這是php文件。類型的定義在Apache/conf/mime.types中

  解析-IIS文件解析

  IIS 6也出現(xiàn)截斷攻擊,截斷字符為";"。由于phpStudy沒有這個版本,太老了,不想去實現(xiàn)了,知道下就行了。

  解析-PHP CGI路徑解析

  沒找到了2010年的cve,可能是提交的bug吧,就是路徑為evil.jpg/1.php時,Nginx會把evil.jpg當做php文件交給php運行。

  繞過

  前端繞過

  通過抓包提交,繞過前端js檢測,刪除對js驗證腳本的調(diào)用,使其不能對上傳的文件類型做檢測,從而達到繞過

  黑名單繞過

  使用更多后綴

  jsp jspx jspf

  asp asa cer aspx

  php php3 php4 pht phtml

  后綴大小寫繞過

  由于windows不區(qū)分大小寫,后端校驗未使用strtolower等函數(shù)將文件后綴大小寫統(tǒng)一處理,導(dǎo)致黑名單不完整而繞過

  1.pHP

  后綴雙寫繞過

  后端過濾時,使用了preg_replace等替換函數(shù)將php關(guān)鍵字替換為空,但是卻沒有循環(huán)替換,導(dǎo)致前面的ph和后面的p重新組合成php,從而導(dǎo)致繞過

  1.phphpp

  空格繞過

  由于Windows處理文件時,會自動刪除文件后綴帶有的空格和點,從而導(dǎo)致繞過。

  1.php

  后面有空格

  ::$DATA繞過

  Windows的一種流文件格式,上傳這種格式流文件格式的同時會在相同目錄下生成一個含有相同內(nèi)容宿主文件

  MIME繞過

  修改Content-Type中為允許的類型,以下為常見MIME類型

  GIF image/gif

  JPG image/pjpeg image/jpeg

  ZIP application/x-compressed application/octet-stream

  JSP text/html

  EXE application/octet-stream

  %00截斷繞過

  PHP<5.3.29,且GPC關(guān)閉時,%00在URL中充當結(jié)束符,當解析到%00時,解析器就會認為字符串已經(jīng)讀取完畢

  1.php%00a.jpg

  十六進制的0x00也可

  文件頭檢查繞過

  例如,僅允許上傳圖片,通過文件頭來判斷,這時可以將惡意代碼拼接到圖片后面

  條件競爭繞過

  有的文件上傳功能是先將文件下載到服務(wù)器,如果是有問題的就刪除,我們可以利用這一邏輯漏洞,不斷上傳文件,即可訪問。

  防御

  1.文件類型判斷

  后綴白名單,MIME類型判斷結(jié)合

  2.文件重命名

  3.文件上傳目錄設(shè)置為不可執(zhí)行

  更多關(guān)于“網(wǎng)絡(luò)安全培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴謹,每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
反欺詐中所用到的機器學(xué)習(xí)模型有哪些?

一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預(yù)測一筆交易是否是欺詐。二、決策樹模...詳情>>

2023-10-14 14:09:29
軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

一、需求不清需求不明確是導(dǎo)致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標不同云快照的主要目標是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標...詳情>>

2023-10-14 12:48:59