BUUCTF[ACTF2020 新生賽]Include 1題解

BUUCTF[ACTF2020 新生賽]Include 1題解

  • 題目分析:
  • 知識準備:
    • `php://filter` 過濾器參數說明
    • 常用過濾器功能對照表
  • 開始解題:
    • 原理解析
    • 構造payload
  • 總結

題目分析:

生成靶機,打開網址,查看源碼,抓包查看有無隱藏信息(公式化)。
點擊tips:
tips
發現一段留言:Can you find out the flag?,同時我們觀察url

http://163da250-9a0d-4ec7-9002-49df5c87e38b.node5.buuoj.cn:81/?file=flag.php

結合題目標題以及url中的?file=flag.php,幾乎就可以斷定有文件包含漏洞了。

知識準備:

在開始解題之前,我們需要了解PHP偽協議的知識:
PHP偽協議通過替換數據報的頭部信息來欺騙網絡協議。

以下是關于 php://filter 參數的過濾器整理表格:

php://filter 過濾器參數說明

參數類型過濾器名稱作用
必須項resource=<要過濾的數據流>指定待篩選過濾的數據流(必填)
可選項(讀鏈)read=<過濾器1|過濾器2>讀鏈設置一個或多個過濾器,用管道符 | 分隔
可選項(寫鏈)write=<過濾器1|過濾器2>寫鏈設置一個或多個過濾器,用管道符 | 分隔
默認鏈<過濾器1|過濾器2>未加前綴的過濾器列表將根據操作類型(讀/寫)自動應用到對應鏈

常用過濾器功能對照表

過濾器類型過濾器名稱作用
字符串過濾器string.rot13等同于 str_rot13(),進行 ROT13 字符變換
string.toupper等同于 strtoupper(),將字符串轉為大寫
string.tolower等同于 strtolower(),將字符串轉為小寫
string.strip_tags等同于 strip_tags(),移除 HTML/PHP 標簽
轉換過濾器convert.base64-encode等同于 base64_encode(),進行 Base64 編碼
convert.base64-decode等同于 base64_decode(),進行 Base64 解碼
convert.quoted-printable-encode將 8-bit 字符串編碼為 Quoted-Printable 格式(可打印字符)
convert.quoted-printable-decode將 Quoted-Printable 格式解碼為 8-bit 字符串

開始解題:

原理解析

后端代碼大概可能是下面這樣:

include($_GET['file'])

如果我不使用PHP偽協議,讀取flag.php之后,include()就會自動執行其中的PHP代碼,這樣就無法在網站前端閱讀到完整的源碼。但是如果我們使用php://filter,對文件中的命令進行一些處理,就可以獲得完整的源碼。

構造payload

?file=php://filter/read=convert.base64-encode/resource=flag.php

payload中的每一個過濾器都能從上面的表格中找到,payload實現了把flag.php中的所有字符轉換為BASE64編碼,以逃脫include()執行php代碼,獲得完整源碼
base64

BASE64解碼得到:

<?php
echo "Can you find out the flag?";
//flag{5b7c82b0-4473-42a3-bb8c-068dcd50a1d0}

FLAG被注釋掉了,但是通過PHP偽協議找到了。

總結

本題的提示還是非常明顯的,沒有繞彎,主要考察了CTFer對文件包含漏洞和PHP偽協議的理解,總的來說不是很難適合初學者(比如我)。

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

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

相關文章

vscode + cmake + ninja+ gcc 搭建MCU開發環境

vscode cmake ninja gcc 搭建MCU開發環境 文章目錄 vscode cmake ninja gcc 搭建MCU開發環境1. 前言2. 工具安裝及介紹2.1 gcc2.1.1 gcc 介紹2.1.2 gcc 下載及安裝 2.2 ninja2.2.1 ninja 介紹2.2 ninja 安裝 2.3 cmake2.3.1 cmake 介紹2.3.2 cmake 安裝 2.4 VScode 3. 上手…

九(1). 引用作為函數參數的使用

引用作為參數使用 在 C 中&#xff0c;引用作為函數參數是一種高效且靈活的參數傳遞方式&#xff0c;它避免了拷貝開銷&#xff0c;同時允許函數直接操作原始數據。 以下是關于引用作為參數的詳細使用指南和最佳實踐&#xff1a; 1. 引用作為參數的基本用法 (1) 普通引用&…

Linux多路TTS混音播放:讓多個語音同時清晰可聽

Linux多路TTS混音播放:讓多個語音同時清晰可聽 為什么需要多路混音播放?技術原理概述第一步:配置ALSA dmix混音插件為什么需要dmix?具體配置步驟第二步:生成TTS語音文件為什么需要格式轉換?Python生成腳本第三步:實現多路同時播放播放器設計原理Python實現代碼多路同時播…

Spring AI 1.0 GA 深度解析:構建企業級AI應用的全棧實踐指南

目錄 Spring AI 1.0 核心架構解析統一接口與多模型支持檢索增強生成(RAG)全流程實戰對話記憶與工具調用進階模型評估與可觀測性體系企業級應用案例與最佳實踐未來演進與技術展望1. Spring AI 1.0 核心架構解析 1.1 技術架構演進 #mermaid-svg-ymTZMAaxOwd4OAMu {font-family…

Docker 安裝 Redis 容器

系列文章目錄 文章目錄 系列文章目錄前言1 獲取redis鏡像2 創建和部署redis容器3 查看redis是否啟動成功4 使用Redis客戶端驗證連接總結 前言 搭建環境&#xff1a; ubuntu22.04.05 docker redis: 7.0.10 測試環境&#xff1a; windows: win11 Redis測試客戶端&#xff1a;Ti…

學習vue3階段性復習(插槽,Pinia,生命周期)

目錄 插槽(匿名插槽&#xff0c;具名插槽) 插槽概述 匿名插槽 具名插槽 Pinia(統一管理&#xff0c;共享數據&#xff09; pinia概述 安裝和使用Pinia 1 使用命令下載Pinia 2 再main.js中導入&#xff0c;注冊到vue框架中 3使用pinia 持久化存儲插件 1 第一步&…

嵌入式Linux 期末復習指南(上)

鑒于互聯網上針對本科目相關復習視頻及資料過少&#xff0c; 撰寫本篇期末復習指南用作期末復習知識點掃盲&#xff0c;以應對本科期末考試及格之用。 由于任課老師并透露考試范圍或任何有關試卷的相關信息&#xff0c;本篇指南基于教材、上機實驗報告及作者經驗編寫&#xff0…

VScode ios 模擬器安裝cocoapods

使用 Homebrew 安裝&#xff08;推薦&#xff09; 如果你有 Homebrew&#xff0c;直接用它安裝更穩定&#xff1a; brew install cocoapods

Python趣學篇:用Pygame打造絢爛流星雨動畫

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 專欄介紹&#xff1a;《Python星球日記》 目錄 一、項目簡介與效果展示二、技術棧與核…

可視化大屏通用模板Axure原型設計案例

本文將介紹一款基于Axure設計的可視化大屏通用模板&#xff0c;適用于城市、網絡安全、園區、交通、社區、工業、醫療、能源等多個領域。 模板概述 這款Axure可視化大屏通用模板集成了多種數據展示模塊和組件&#xff0c;旨在為用戶提供一個靈活、可定制的數據展示平臺。無論…

20250530-C#知識:萬物之父Object

C#知識&#xff1a;萬物之父Object Object類&#xff08;即object&#xff09;是所有類的基類&#xff0c;這里面的方法還是需要好好了解一下。 1、Object類 是頂級父類&#xff0c;其他類默認都是Object類的子類&#xff08;自定義類也會默認繼承Object類&#xff09;可以用O…

蘋果應用開發詳細教程(2025最新版)

蘋果應用開發詳細教程(2025最新版) 第一階段:開發環境搭建 硬件準備 Mac電腦(macOS Monterey 12或更高版本)iPhone/iPad(真機調試建議iOS 16+)軟件安裝 # 通過App Store安裝Xcode xcode-select --installXcode 15+(包含Swift 5.9編譯器)安裝CocoaPods(依賴管理工具)…

flutter項目遷移空安全

重中之重 備份好項目文件&#xff0c;甚至連已經加載好的flutter庫也可以備份。環境包升級 2.1 不要直接換成flutter:3.0以上的版本&#xff0c;這樣做既有基本的庫兼容問題&#xff0c;又有空安全下的語法問題(整個項目中需要增加 late、?、!的語法錯誤&#xff0c;一片報錯的…

架構師面試題整理

以下是從提供的HTML代碼中提取的所有class"title-txt"的文本內容&#xff0c;已排除重復項并按順序整理&#xff1a; 緩存專題 實戰解決大規模緩存擊穿導致線上數據庫壓力暴增面試常問的緩存穿透是怎么回事基于DCL機制解決突發性熱點緩存并發重建問題實戰Redis分布…

pytest 中 fixture 與類繼承交互導致的問題

文章目錄 問題分析將屬性綁定到 **類** 上使用 scopefunction 解決方法為什么有兩個不同的對象核心原因&#xff1a;fixture 的執行上下文scopefunction 的情況scopeclass 的情況 為什么 pytest 要這樣做&#xff1f;這是 pytest 的設計局限 總結 本文探討 Pytest 中 fixture 作…

uniapp+ts模擬popup彈出框(下拉框)

效果圖&#xff08;未展開的樣子&#xff09;&#xff1a; 效果圖&#xff08;展開的樣子&#xff09;&#xff1a; 子組件代碼&#xff1a; <!--* Date: 2024-04-26 14:30:00* LastEditTime: 2025-05-29 09:01:06* Description: 技術服務 --> <template><view …

中小型企業大數據平臺全棧搭建:Hive+HDFS+YARN+Hue+ZooKeeper+MySQL+Sqoop+Azkaban 保姆級配置指南

目錄 背景?一、環境規劃與依賴準備?1. 服務器規劃(3節點集群)2. 系統與依賴?3. Hadoop生態組件版本與下載路徑4. 架構圖二、Hadoop(HDFS+YARN)安裝與配置?1. 下載與解壓(所有節點)2. HDFS高可用配置3. YARN資源配置?4. 啟動Hadoop集群三、MySQL安裝與Hive元數據配置…

谷粒商城-分布式微服務項目-高級篇[三]

十五、商城業務-支付 15.1 支付寶支付 15.1.1 進入“螞蟻金服開放平臺” 支付寶開放 平臺地址&#xff1a; 支付寶開放平臺 15.1.2 下載支付寶官方 demo&#xff0c;進行配置和測試 開發者文檔&#xff1a;支付寶開放平臺文檔中心 電腦網站支付文檔&#xff1a;小程序文…

DeepSeek 賦能低空經濟:無人機智能調度的破局之道

目錄 一、引言二、DeepSeek 技術探秘2.1 DeepSeek 技術核心要點2.2 與傳統技術對比優勢 三、低空經濟無人機調度挑戰剖析3.1 飛行控制困境3.2 數據處理難題3.3 系統集成阻礙 四、DeepSeek 應用方案與成果4.1 智能調度與路徑規劃4.2 自主飛行與協同控制4.3 通信與數據鏈優化4.4 …

【Kubernetes】ubuntu20.04通過kubeadm + Docker安裝k8s

Kubernetes v1.24集群安裝配置步驟總結 一、環境準備 &#xff08;一&#xff09;系統要求 運行兼容deb/rpm的Linux操作系統&#xff08;如Ubuntu或CentOS&#xff09;的計算機&#xff0c;1臺或多臺。每臺機器內存2GB以上&#xff0c;內存不足會限制應用運行。控制平面節點…