upload-labs關卡12(基于白名單的%00截斷繞過)通關思路

文章目錄

  • 前言
  • 一、靶場需要了解的前置知識
    • 1、%00截斷
    • 2、0x00截斷
    • 3、00截斷的使用條件
      • 1、php版本小于5.3.29
      • 2、magic_quotes_gpc = Off
  • 二、靶場第十二關通關思路
    • 1、看源代碼
    • 2、bp抓包%00截斷
    • 3、驗證文件是否上傳成功
  • 總結


前言

此文章只用于學習和反思鞏固文件上傳漏洞知識,禁止用于做非法攻擊。注意靶場是可以練習的平臺,不能隨意去尚未授權的網站做滲透測試!!!


一、靶場需要了解的前置知識

1、%00截斷

%00截斷常在url中get請求使用,在url中%00表示ascll碼中的0 ,而ascii中0作為特殊字符保留,表示字符串結束,所以當url中出現%00時就會認為讀取已結束。所以一般文件上傳繞過%00會在路徑上使用。

http://xxx.com?filename=test.php%00.txt

這樣服務器讀取%00的時候就會中斷讀取,造成只讀取了test.php。

2、0x00截斷

0x開頭表示16進制,0在十六進制中是00, 0x00就是%00解碼成的16進制。其實和%00的原理沒有太大區別,只是使用的方式不一樣,這個0x00是手動修改為16進制變成的,通常通過bp修改,其實%00解碼就是0x00,0x00通常在post請求使用。

3、00截斷的使用條件

1、php版本小于5.3.29

2、magic_quotes_gpc = Off

去php.ini修改就行

二、靶場第十二關通關思路

  • 1、看源代碼
  • 2、bp抓包%00截斷
  • 3、驗證文件是否上傳成功

1、看源代碼

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);if(in_array($file_ext,$ext_arr)){$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = '上傳出錯!';}} else{$msg = "只允許上傳.jpg|.png|.gif類型文件!";}
}

發現這是一個白名單過濾,只能上傳jpg、png、gif文件。那么白名單繞過最常見的方法就是00截斷了。這里發現有一個路徑拼接,也就是如果上傳的文件后綴名符合白名單就會隨機命名文件然后拼接到文件所在的絕對路徑上。那么我們可以在文件路徑進行截斷,把成功上傳的文件后綴名截斷掉,保留我們需要的php后綴名。

2、bp抓包%00截斷

這里我上傳含有一句話木馬的文件為23.jpg,然后%00截斷讓其上傳23.php。因為這里的save_path是get傳參,也就是說url會把%00自動解碼成空字符,上傳后服務器就會以為是結束符就不會讀取拼接上來的jpg文件了。
在這里插入圖片描述

3、驗證文件是否上傳成功

這里訪問的時候記得把9020231122143153.jpg去掉,因為成功上傳的其實是23.php
最后蟻劍連接成功。
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述


總結

這一關是基于白名單的%00截斷繞過,原理就是%00其實在計算機眼里是結束符,我們通過路徑截斷,讓其拼接的正常jpg文件變成我們修改的php文件。此文章是小白自己為了鞏固文件上傳漏洞而寫的,大佬路過請多指教!

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

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

相關文章

LL(1)語法分析程序設計與實現

制作一個簡單的C語言詞法分析程序_用c語言編寫詞法分析程序-CSDN博客文章瀏覽閱讀322次。C語言的程序中,有很單詞多符號和保留字。一些單詞符號還有對應的左線性文法。所以我們需要先做出一個單詞字符表,給出對應的識別碼,然后跟據對應的表格…

國民新旅游時代,OTA們如何制勝新周期?

文 | 螳螂觀察(TanglangFin) 作者 | 圖霖 消費全面復蘇的大背景下,旅游業正迎來預期中的拐點。 一個顯著表現是,旅游消費正在從可選消費轉化成必選消費。 國內消費者旅游需求的不降反增,就是最好的印證。 同程研究…

DoFaker: 一個簡單易用的換臉工具

DoFaker: 一個簡單易用的換臉工具 基于insightface開發,可以輕松替換視頻或圖片中的人臉。支持windows和linux系統,CPU和GPU推理。onnxruntime推理,無需pytorch。 更新 2023/9/16 更新動作遷移算法2023/9/14 更新臉部增強算法(GFPGAN)和超分…

TypeScript枚舉

1、數字枚舉 enum Direction {Up,Down,Left,Right, } var Direction; (function (Direction) {Direction[Direction["Up"] 0] "Up";Direction[Direction["Down"] 1] "Down";Direction[Direction["Left"] 2] "L…

[點云分割] 基于顏色的區域增長分割

效果&#xff1a; 代碼&#xff1a; #include <iostream> #include <thread> #include <vector>#include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/search/search.h> #include <pcl/search/kdtree.h> #inclu…

AR道具特效制作工具

AR&#xff08;增強現實&#xff09;技術已經逐漸滲透到各個行業&#xff0c;為企業帶來了全新的營銷方式和用戶體驗。在這個背景下&#xff0c;美攝科技憑借其強大的技術實力和創新精神&#xff0c;推出了一款專為企業打造的美攝AR特效制作工具&#xff0c;旨在幫助企業輕松實…

MIKE水動力筆記19_統計平均潮差

本文目錄 前言Step 1 ArcGIS中創建漁網點Step 2 將dfsu數據提取到漁網點Step 3 Python統計平均潮差 前言 日平均潮差&#xff08;average daily tidal range&#xff09;&#xff1a;日高潮潮高合計之和除以實有高潮個數為日平均高潮潮高&#xff0c;日低潮潮高合計之和除以實…

Quartz .Net 的簡單使用

參考了&#xff1a;c# .net framework 4.5.2 , Quartz.NET 3.0.7 - runliuv - 博客園 (cnblogs.com) https://www.cnblogs.com/personblog/p/11277527.html&#xff0c; Quartz.NET 作業調度&#xff08;一&#xff09;&#xff1a;Test - 簡書 自己要輪詢的任務&#xff1a…

NX二次開發UF_CAM_PREPRO_init_module 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_PREPRO_init_module Defined in: uf_cam_prepro.h int UF_CAM_PREPRO_init_module(void ) overview 概述 Initializes the required environment for this module. 初始化此…

淺談Python裝飾器原理與用法分析

前言 本文實例講述了Python裝飾器原理與用法。分享給大家供大家參考&#xff0c;具體如下&#xff1a; 1、裝飾器的本質是函數&#xff0c;主要用來裝飾其他函數&#xff0c;也就是為其他函數添加附加功能 2、裝飾器的原則: (1) 裝飾器不能修改被裝飾的函數的源代碼 (2) 裝…

VScode調試沒有反應

點擊調試按鈕后沒反應 有可能是vscode中安裝的python插件版本問題 可以通過重新安裝比較舊一點的python嘗試解決此問題 步驟如下&#xff1a; 然后從中選擇比當前版本更低的版本即可 安裝完成后需重啟vscode

初識EasyAR

EasyAR 一、介紹&#xff08;核心還是 目標圖像的屏占比&#xff09; 支持 EasyAR-AR|AR技術|AR SDK|Unity AR|下載 1.表面、圖片(靜止/運動)跟蹤&#xff0c;支持多目標 2.3D物體(靜止/運動)跟蹤(注&#xff1a;物體旋轉、遠近移動也可以&#xff0c;本人試過&#xff0c;…

縱享雙創盛宴 “之江創客”再創電商新輝煌

消費日報網訊&#xff08;記者 牛夏風&#xff09;營造良好電商雙創生態&#xff0c;集聚電商發展新勢能。10月31日&#xff0c;以“開放、連接、協同、賦能”為主題的“之江創客”2023全球電子商務創業創新大賽總決賽暨頒獎典禮在湖州南潯圓滿落幕。 記者從現場獲悉&#xff…

SQL 中的 MIN 和 MAX 以及常見函數詳解及示例演示

SQL MIN() 和 MAX() 函數 SQL中的MIN()函數和MAX()函數用于查找所選列的最小值和最大值&#xff0c;分別。以下是它們的用法和示例&#xff1a; MIN() 函數 MIN()函數返回所選列的最小值。 示例&#xff1a; 查找Products表中的最低價格&#xff1a; SELECT MIN(Price) F…

js 獲取當前窗口顯示的放大比例

可以獲取當前窗口顯示的放大比例&#xff0c;也稱為設備像素比 (devicepixelratio) 。這通常用于處理高DPI (高分辨率)屏幕上的視圖縮放。您可以使用window.devicePixelRatio 屬性來獲得當前設備像素比。 以下是一個簡單的JavaScript示例&#xff0c;演示如何獲取設備像素比: j…

基于獼猴Spike運動解碼的不同解碼方法性能對比

公開數據集中文版詳細描述 參考前文&#xff1a;https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神經元Spike信號分析 參考前文&#xff1a;https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501神經元運動調制分析 …

2023 年戴森設計大獎得主是誰?給大樓降溫、爭取救援機會

2023 年戴森設計大獎得主是誰&#xff1f;給大樓降溫、爭取救援機會 ?編輯拉風的極客2023/11/22 摘要 當今社會除了持續不斷對科技創新保持注目&#xff0c;還有很多年輕發明家為了實際場景的難題提供解決方案。 11 月 15 日&#xff0c;2023 年戴森設計大獎國際大獎名單正…

Doris DDL和DML

1 創建用戶和數據庫 1)創建test用戶 mysql -h hadoop1 -P 9030 -uroot -p create user test identified by test; 2)創建數據庫 create database test_db; 3)用戶授權

2023年危險化學品生產單位安全生產管理人員證模擬考試題庫及危險化學品生產單位安全生產管理人員理論考試試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2023年危險化學品生產單位安全生產管理人員證模擬考試題庫及危險化學品生產單位安全生產管理人員理論考試試題是由安全生產模擬考試一點通提供&#xff0c;危險化學品生產單位安全生產管理人員證模擬考試題庫是根據危…

文件的原理和應用

常識: 1 文件包括屬性和內容 2 文件有打開和未打開文件&#xff0c; 3 本文先討論誰打開的文件&#xff0c;以及如何管理已經打開的文件 一 回憶c接口 1 fopen 我們在test.c里面用一下fopen函數&#xff0c;不存在打開的文件會默認創建&#xff0c;那為什么默認新建在當前…