第九周文件上傳

文件上傳漏洞

不同的網站要不同的webshell。我們使用是php開發的網站。

一服務器白名單繞過

服務端白名單(Whitelist)是?種安全機制,它只允許預定義的合法元素通過(只有有限的元素進入),其他所有內容默認被拒絕。相比黑名單,白名單通常更安全。但某些情況也會被繞過。
分為兩種:

1.1MIME類型檢測繞過

利用burp來整。可以修改Content-Type來發送php,把類型改為image就ok。

不過都是可以在發送圖形時,摻一點php代碼就。

1.2?00截斷繞過

該類型漏洞比較老且條件苛刻,實戰當中幾乎不會出現,僅理解原理即可.

操作系統在識別字符串時,當讀取到\0字符時,就認為讀取到了?個字符串的結束符號。系統是C語?或匯編語?定義字符串時以\0作為字符串的結尾,電腦在讀取到\0時認為到結尾了,因此,我們可以通過修改數據包,插?\0字符的方式,達到字符串截斷的?的。
?戶在前端輸?的時候是不能直接使?\0的,通常會使?%00或者0x00。
舉例子
http://www.XXX.com/upload/aaa.php%00bbb.jpg
\0在ASCII碼表中意味空字符,所以輸入的時候%00bbb.jpg是省略的。

二服務器黑名單繞過

服務端?名單(Blacklist)是?種安全防護機制,它會明確禁?某些已知的危險元素,但這玩意太多了,所以相比于白名單較為容易繞過。

缺點
說明案例
覆蓋不全無法窮盡所有危險項漏掉.phtml
導致繞過
靜態防御難以應對新型攻擊變種新型擴展名不斷出現
維護成本高需持續更新黑名單每個新漏洞都需添加規則
誤殺風險可能組織合法請求禁止 select
影響正常查詢
繞過手段多攻擊者創新速度快大小寫/編碼/截斷等多種方式
依賴實現細節受服務器解析邏輯影響IS/APACHE/Nginx處理差異

2.1特殊可解析后綴

就是說除了代碼中的禁止個后綴名的,我們可以寫入許多 Web 服務器配置也會將以下擴展名識別為 PHP 腳本并執?其中的代碼:

其他的后綴名:
  1. .phtml:傳統上?于 "PHP + HTML" 混合?件,許多默認配置中已啟?
  2. .phps:本應?于顯示 PHP 源代碼(Source),但如果配置不當,可能會被執???顯示
  3. php5:?于 PHP 5 特定腳本,在?些服務器上顯式?持
  4. .pht:較少?但可被解析的擴展
  5. 其他變種:.php4? ?.php3 (舊版 PHP 3)? ? .php7? ? ?.phar (PHP 歸檔?件)

2.2.htaccess?件繞過

Upload-labs(Pass-04)源碼分析,又多了黑名單后綴,相中間件為Apache的情況下,?名單未校驗 .htaccess ?件,導致可上傳該?件,繞過?名單檢測.

2.2.1什么是.htaccess 呢?

.htaccess ?件也被稱為分布式配置?件,全稱是 Hypertext Access。.htaccess ?件提供了針對目錄改變配置的?法, 即在特定的?檔?錄中放置?個包含?條或者多條規則指令的該文件,以作?于此?錄及其所有子目錄。通過.htaccess?件,可以幫我們實現:
  • 網頁301重定向、?定義404錯誤??、
  • 改變?件擴展名、允許/阻?特定的?戶或者?錄的訪問(我們就是著重與這個)
  • 禁??錄列表、配置默認?檔等功能。

.htaccess?件?效的前提條件

  • mod_rewrite模塊開啟
  • AllowOverride All

由于沒有過濾 .htaccess ?件,可以重寫?件解析規則繞過,上傳?個.htaccess文件

<FilesMatch "a.jpg">  #名字非常重要,發送后下面的名字要相同
Sethandler application/x-httpd-php
</FilesMatch>

記住?filename要改為".htaccess "。.htaccess針對的是文件夾生效的。這樣子就會把a.jpg當成php來解析。

然后再把a.jpg發送進去,記住名字一定改為a.jpg

2.3.user.ini?件繞過

.user.ini和.htaccess?樣是?錄的配置?件,.user.ini就是?戶?定義的php.ini,可以利用這個?件來構造后?和隱藏后?。不過有一個前提是傳輸的服務器里面必須有一個php文件,否則.user.ini無法生效
.user.ini使?范圍很?,不僅限于 Apache 服務器,同樣適?于 Nginx服務器,只要服務器啟?了
fastcgi 模式 (通常?線程安全模式使?的就是 fastcgi 模式)。但是docker環境不是fastcgi模式,?法復現該漏洞。

2.4??寫繞過

通過Upload-labs(Pass-06)查看源代碼,可以看到又禁了很多后綴名。但是沒有后綴名大小寫進進行統一。可以利?大小寫進?繞過。PhP,Php

2.5空格繞過

Upload-labs(Pass-07)通過代碼分析沒有去空格,在?件后綴加空格后上傳.

不過上傳成功了,但是我們無法訪問成功。原理:Windows系統中會?動去除?件名最后的空格,靶場是linux環境。

因此在Windows系統中可以使用此方法繞過。

2.6點繞過

Windows系統中會?動去除?件名最后的 . ,因此在Windows系統中可以使?此?法繞過;Linux系統雖然不會?動去除?件名最后的 . ,但是部分Linux系統搭配中間件可以實現解析。

2.8::$DATA繞過

在Windows中,如果?件名 + ::$DATA 會把 ::$DATA 之后的數據當成?件流處理,不會檢測后綴名,且保持::$DATA之前的文件名。使?它的?的就是不檢查后綴名。

Windows會?動去掉末尾的::$DATA變成 phpinfo.php

這個是圖片展現了防止::$DATA繞過。

這是上傳

2.9配合解析繞過

也就是說?尾去空,刪除末尾的點,去除字符串:$SDATA,轉換為小寫這些措施只驗證了?次,所以繞過思路也很簡單:在數據包中把后綴名改為:
.php. .(兩個點之間有個空格)
.php. ::$DATA

以 .php. . 為例的驗證過程:?先系統發現最后有?個點,這時會把它去掉,又發現有?個空格,也會把它去掉,這時還有?個點,也就是.php. 由于系統只驗證?次,所以不會再去掉剩下的點,這時就可以上傳成功。

2.10雙寫后綴名繞過

從源碼中可以發現,源碼中定義了黑名單列表,我們上傳?件的后綴名凡是符合黑名單中任意一個后綴都會被替換為空,那么我們可以利?雙寫后綴名的方式進行繞過。例如
phpinfo.pphphp 替換后變成 phpinfo.php

三.服務端內容檢查繞過

3.1文件頭檢查

Upload-labs?Pass-14?根據下?描述,?需要使?圖片進行上傳,?然后使用文件包含漏洞進行利用獲?Webshell?。查看源碼,?發現web后端代碼檢查了上傳?件的前兩個字節并且根據字節判定文件后綴,

只能上傳后綴為圖片的文件。從代碼看,都可以看出類似白名單。

繞過是與文件包含有關系的。特點就是無論后面是什么,都會把它當是php代碼來執行。

3.2突破getimagesize和exif_imagetype

?getimagesize函數來判斷上傳?件,作?是獲取?件是不是圖?格式
的。但都是可以上傳?張真圖然后抓包,在最后添加木馬就行了。

3.3二次渲染繞過

這一個比較綜合了。這個的過程就是,先接收的時候檢查一下文件的后綴名字和文件類型,然后再利用? imagecreatefrom[jpeg|png|gif] 函數來判斷是否為真的圖片,如果是圖片的話image[jpeg|png|gif] 函數對其進行二次渲染。
簡單來說,它會把你發的圖片檢查一下確認是否為真的圖片,如果確認為真的圖片后再生成一張圖片。
我們上傳張圖片看看,可以明顯看出兩張圖片大小不對。所以我們可以找到兩張圖片沒有改變的部分,然后再把php代碼插入進去。不過圖片有不同的后綴
  • GIF:渲染前后的兩張 GIF,沒有發生變化的數據塊部分直接插? Webshell 即可
  • JPG:需要使用腳本將數據插?到特定的數據塊,而且可能會不成功,所以需要多次嘗試
  • PNG:沒有 GIF 那么簡單,需要將數據寫?到 PLTE 數據塊 或者 IDAT 數據塊
如何找出兩張圖片的相同和不同之處了?
這就需要工具010editor:010 Editor - Pro Text/Hex Editor | Edit 300+ Formats | Fast & Powerful | Reverse Engineering
下載好后打開比較,curl+m
比較后。match藍色意味相同,找到相同的后在藍色區域插入PHP代碼。
記得在右邊更改且保存
重新上傳文件出現圖片則證明成功了。(如果不成功,可以按同樣方法多操作幾次)

3.4條件競爭

代碼看出,當你上傳文件時,會判斷是否是圖片,如果是的話重新命名,如果不是的話,就會直接刪除代碼。也就是說,不管我們上傳是不是圖片,都會短暫的保留在服務器里面,只要我們在電腦判斷期間讓上傳的php代碼執行速度快過刪除速度就行了。

如果趕在被刪除之前執行并生成新的webshell而新的webshell是不會被刪除的。這個也叫做條件競爭上傳繞過

#一旦執行就會生成新的webshell
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["aa"])?>');?>

我們進行競爭分為兩步

1.利用burp的Intruder模塊來不斷地上傳php文件

記住要把插件關掉,否則會崩潰。

2訪問php?件

再重發get請求,多試一試幾次就成了。

從這里可以看出已經成了。再次訪問一下創建的文件,再用蟻劍連接

四.中間件解析漏洞

文件上傳漏洞在不同的系統?、架構以及行為中,?利用形式也是各不相同?。常用的web容器有IIS?Tomcat?Nginx?Apache?。以下主要以?較經典的解析漏洞做解釋。

IIS?5.x/6.0?解析漏洞

漏洞原理

  1. 當創建.asp的?件?錄的時候 ,在此?錄下的任意文件, 服務器都解析為asp文件 。例如如下: 漏洞?錄利?形式:www.xxx.com/xx.asp/xx.jpg。xx.jpg的內容可以為—段合法的asp腳本文件。
  2. 服務器默認不解析;以后的內容,?導致xx.asp;.jpg被解析成xx.asp

漏洞?件利?形式:www.xxx.com/xx.asp;.jpg?xx.jpg的內容可以為—段合法的asp腳本?件。

微軟認為這不是漏洞所以沒有補丁。

Nginx?解析漏洞

漏洞原理:Nginx?件解析漏洞主要發?在PHP環境與Nginx的配合使用中,核心問題是NginxPHP-FPM對請求URI的處理不—致導致的。

觸發條件:

  1. ??Nginx版本?<?0.8.41
  2. 配置了??fastcgi_split_path_info??且正則表達式不安全

Apache?解析漏洞

Apache?1.x2.x版本中存在解析漏洞?,例如如下地址格式

  www.xxxx.com/post_shell.php.mage.edu

Apache從右到左開始判斷后綴?,若edu非可識別后綴,?再判斷mage?直到找到可識別后綴才停止,?然后將?該可識別后綴進解析,?因此如上地址解析為訪問apache.php文件

五.Upload_Auto_Fuzz

在日常遇到文件上傳時,如果一個個去測,會消耗很多時間,如果利用工具去跑的話就會節省很多時間,本Burp Suite插件專為文件上傳漏洞檢測設計,提供自動化Fuzz測試,共500+條payload。
地址:GitHub - T3nk0/Upload_Auto_Fuzz: 本Burp Suite插件專為文件上傳漏洞檢測設計,提供自動化Fuzz測試,共500+條payload。

主要功能

windwos特性

  • NTFS數據流(::$DATA)
  • 保留設備名(CON, AUX)
  • 長文件名截斷

內容欺騙

  • 魔術字節注?(GIF/PNG/PDF頭)
  • SVG+XSS組合攻擊
  • 文件內容混淆(注釋插?、編碼變異)

安裝?式

該插件是python開發,因此需要先安裝jython。

這樣就好了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/98264.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/98264.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/98264.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機視覺必讀論文:從經典到前沿

計算機視覺必讀論文:從經典到前沿 一、前言 二、經典論文解讀? 2.1 圖像分類? 2.1.1 《ImageNet Classification with Deep Convolutional Neural Networks》(AlexNet)? 2.1.2 《Very Deep Convolutional Networks for Large-Scale Image Recognition》(VGGNet)? 2.1.…

對比PowerBI的字段參數,QuickBI的已選字段還有改進的空間

對比PowerBI的字段參數&#xff0c;QuickBI的已選字段還有改進的空間 之前分享過QuickBI的已選字段 vs PowerBI的字段參數&#xff0c;QuickBI可以在表格中實現PowerBI的字段參數效果&#xff0c;甚至比PowerBI實現的過程和使用方式更絲滑。 但如果應用到圖形中會怎么樣呢&am…

飛算JavaAI:Java開發新時代的破曉之光

免責聲明&#xff1a;此文章的所有內容皆是本人實驗測評&#xff0c;并非廣告推廣&#xff0c;并非抄襲。如有侵權&#xff0c;請聯系&#xff0c;謝謝&#xff01;【#飛算JavaAl炫技賽】 【#Java開發】摘要&#xff1a;飛算JavaAI作為全球首款聚焦Java的智能開發助手&#xff…

vulntarget-c靶場內網滲透

1. 環境搭建 2.對ubuntu20的滲透 對其進行端口掃描 訪問80端口 發現是laravel框架。版本是v8.78.1 使用 kaili 自帶的msf 進行滲透 search laravel use exploit/multi/php/ignition_laravel_debug_rce執行利用完成檢測 上傳木馬 先將木馬進行base64編碼 <?php eval($_P…

基于大模型多模態的人體體型評估:從“尺碼測量”到“視覺-感受”范式

基于大模型多模態的人體體型評估&#xff1a;從“尺碼測量”到“視覺-感受”范式摘要&#xff1a;傳統體型識別依賴CV骨架/關鍵點與像素量尺&#xff0c;容易受衣物、發型、姿態、光照影響&#xff0c;且“厘米級數值”與穿衣體驗、審美感受之間存在鴻溝。本文提出一種基于大模…

【docker】——docker國內可用的源

不知道哪里來的&#xff0c;但是可以用。1. 解決方案打開配置文件&#xff08;若文件不存在&#xff0c;會自動創建&#xff09; sudo vim /etc/docker/daemon.json將以下內容粘貼進去{"builder": {"gc": {"defaultKeepStorage": "20GB&quo…

【Windows端口管理】快速查看和釋放被系統保留的TCP端口

問題描述在Windows系統開發時&#xff0c;經常遇到端口無法使用的問題。系統會自動保留一系列TCP/UDP端口范圍&#xff0c;導致應用程序無法綁定這些端口。查看所有被保留的端口范圍查看TCP保留端口# 查看所有TCP端口排除范圍 netsh interface ipv4 show excludedportrange pro…

面經匯總(1)

1.介紹C面向對象的三大特性2.介紹常見的排序算法3.介紹TCP/UDP區別4.TCP三次握手四次揮手5.如果四次揮手第四次客戶端的ACK沒有發出去會有什么結果&#xff1f;6.介紹MYSQL的事務7.介紹線程池8.主要的線程池有哪幾種&#xff1f;9.手撕反轉鏈表10.介紹對象存儲以及常見的對象存…

遙感圖像數字水印系統優化方案

遙感圖像數字水印系統優化方案 1. 引言 遙感圖像在現代地理信息系統、環境監測、軍事偵察等領域發揮著重要作用。為了保護遙感圖像的版權和完整性&#xff0c;數字水印技術被廣泛應用。然而&#xff0c;現有的遙感圖像水印方案往往在不可見性、魯棒性和容量之間存在權衡&#x…

鴻蒙高效數據處理框架全攻略:緩存、并行與流式實戰

摘要 在如今的物聯網和智能設備世界里&#xff0c;數據已經成為最關鍵的資源。無論是可穿戴設備、智能家居&#xff0c;還是車載系統&#xff0c;每一秒都會產生大量數據。如果缺少一套高效的數據處理框架&#xff0c;開發者就可能面臨內存溢出、處理延遲大、設備卡頓等問題。本…

零售企業數字化轉型的道、法、術:基于開源AI大模型AI智能名片S2B2C商城小程序的戰略重構

摘要 在數字經濟與消費升級的雙重驅動下&#xff0c;零售企業正經歷從"流量爭奪"到"用戶時間爭奪"的范式轉變。本文以阿里巴巴、京東、萬達三大巨頭的戰略實踐為樣本&#xff0c;結合開源AI大模型、AI智能名片與S2B2C商城小程序的技術特性&#xff0c;提出…

瑞云渲染為電影《731》提供云渲染技術支持,助力影片全球上映

在“九一八事變”94周年這一莊嚴沉重的紀念時刻&#xff0c;抗戰電影《731》&#xff08;海外名&#xff1a;《EVIL UNBOUND》&#xff09;于世界各地上映&#xff0c;激起廣泛的社會反響與深遠的歷史思考。 瑞云渲染&#xff08;Renderbus&#xff09;作為全球領先的云渲染服…

EasyDSS視頻直播RTMP推流技術如何實現多機型的無人機視頻統一直播

在當今這個瞬息萬變的傳媒時代&#xff0c;無人機與推流直播的結合&#xff0c;正以前所未有的方式重塑著信息傳播的邊界。無人機以其獨特的空中視角和靈活的機動性&#xff0c;為直播行業帶來了革命性的變化&#xff0c;而推流直播技術的成熟&#xff0c;則讓這一變化得以實時…

str.maketrans() 方法

str.maketrans() 方法 功能概述 str.maketrans() 是 Python 中字符串對象的一個靜態方法&#xff0c;用于創建一個字符映射轉換表。這個轉換表本質上是一個字典&#xff0c;它定義了字符之間的替換規則&#xff0c;后續可以被 str.translate() 方法使用&#xff0c;以實現字符串…

敏感詞檢測API平臺推薦

敏感詞檢測API平臺推薦 背景簡介 敏感詞檢測用于識別文本中的違規、涉政、涉黃、辱罵等敏感詞&#xff0c;幫助產品在評論、彈幕、客服對話、運營文案、廣告投放等環節實現自動化質檢與合規攔截。市場上主要有兩類服務商&#xff1a; 專業型廠商&#xff1a;聚焦算法與工程落…

Day25_【深度學習(3)—PyTorch使用(6)—張量拼接操作】

張量的拼接操作在神經網絡搭建過程中是非常常用的方法&#xff0c;例如: 在后面將要學習的注意力機制中都使用到了張量拼接。torch.cat 函數可以將兩個張量根據指定的維度拼接起來&#xff0c;不改變數據維度。前提&#xff1a;除了拼接的維度&#xff0c;其他維度一定要相同。…

機器視覺在PCB制造中的檢測應用

機器視覺在PCB制造中的檢測應用&#x1f3af;機器視覺在PCB制造中的檢測應用&#x1f3af;一、基材預處理階段&#xff1a;基材表面缺陷檢測&#x1f3af;二、線路制作階段&#xff1a;線路精度與缺陷檢測&#x1f3af;三、鉆孔與導通孔加工階段&#xff1a;孔位與孔質量檢測&a…

Python面試題及詳細答案150道(136-150) -- 網絡編程及常見問題篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

【pdf.js】pdf檢索對應文本和高亮功能

文章目錄需求場景1、使用pdf.js解決pdf.js跨域2、預覽方案3、檢索方案4、實現效果??總結需求場景 本文主要針對網頁端 PDF 本地預覽場景&#xff0c;支持通過關鍵字對 PDF 進行檢索查詢&#xff0c;當點擊檢索結果列表中的對應關鍵字時&#xff0c;可同步在預覽界面中觸發內容…

kafka--基礎知識點--9.1--consumer 至多一次、至少一次、精確一次

1 自動提交 1.1 原理&#xff1a; Kafka 消費者后臺線程每隔 auto.commit.interval.ms 自動提交最近一次 poll() 的 offset 無需開發者干預 1.2 示例&#xff1a; enable.auto.committrue auto.commit.interval.ms5000 # 每 5 秒自動提交一次 from confluent_kafka import Con…