CTF WEB題

[文件包含,少許難度]

地址:攻防世界

代碼審計WRONG WAY!
<?php
include("flag.php"); #包含了一個“flag.php”文件
highlight_file(__FILE__); #來顯示當前文件的源代碼
if(isset($_GET["file1"]) && isset($_GET["file2"])) #isset()是一個內置函數,用于檢查變量是否存在且為非null。 檢查是否設置了get參數“file1”和“file2” 且 有值
{
$file1 = $_GET["file1"]; #get傳入一個"file1"賦值給$file1
$file2 = $_GET["file2"]; #get傳入一個"file2"賦值給$file2
if(!empty($file1) && !empty($file2)) #檢查是否“$file1和$file2” 都不為空
{
if(file_get_contents($file2) === "hello ctf") #(file_get_contents($file2) 是一個內置函數,用于將整個文件的內容讀取到一個字符串中的函數調用,file2是一個文件路徑。 這里是檢查讀取file2 文件中的內容 是否和"hello ctf" 完全相等
{
include($file1); # 滿足上述條件,才可以執行 include($file1),出發文件包含漏洞,“$file1”的文件可以讀取 “flag.php” 的內容
}
}
else
die("NONONO"); #否則,輸出“NONONO”
}

詳細介紹

(file_get_contents($file2) 一個內置函數,用來讀取文件的內容,$file2 是包含文件路徑的變量,file_get_contents 函數會打開該文件,并且將文件的所有內容會作為一個字符串返回,打開失敗時,則返回false

最后包含file1,我們希望得到flag,獲取內容,可以用filter讀取

file1和 file2 要存在,且都不為空,file2 的內容為 hello ctf

因為file2 的內容為 hello ctf 可以用php://input 和data:// 進行繞過

 payload1:?file1=php://filter/read/convert.base64-encode/resource=flag.php&file2=data://text/plain,hello ctf  payload2:?file1=php://filter/read/convert.base64-encode/resource=flag.php&file2=php://input  

總結:

整體來說不難,主要是代碼審計,配合文件包含php偽協議即可,多多重復,你也行!

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

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

相關文章

c++圖論(一)之圖論的起源和圖的概念

C 圖論之圖論的起源和圖的概念 圖論&#xff08;Graph Theory&#xff09;是數學和計算機科學中的一個重要分支&#xff0c;其起源可以追溯到 18 世紀 的經典問題。以下是圖論的歷史背景、核心起源問題及其與基本概念和用途&#xff1a; 借用一下CSDN的圖片哈 一、圖論的起源&…

Ollama + CherryStudio:構建本地私有知識庫

前面我們介紹了Ollama的安裝和使用&#xff0c;并通過Open-WebUI進行調用&#xff0c;相信大家對Ollama也有了一定的了解&#xff1b;這篇博文就結合Ollama工具和CherryStudio工具構建一個本地知識庫&#xff08;RAG&#xff09;&#xff1b;在進行接下來的操作之前&#xff0c…

【實戰ES】實戰 Elasticsearch:快速上手與深度實踐-8.2.1AWS OpenSearch無服務器方案

&#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 文章大綱 8.2.1AWS OpenSearch 無服務器方案深度解析與實踐指南1. Serverless架構的核心價值與行業趨勢1.1 傳統Elasticsearch集群的運維挑戰1.2 Serverless技術演進路線技術特性對比…

清晰易懂的Java8安裝教程

小白也能看懂的 Java 8 安裝教程&#xff08;JDK 和 JRE 分目錄安裝&#xff09; 本教程將手把手教你如何在 Windows 系統上安裝 Java 8&#xff08;JDK 1.8&#xff09;&#xff0c;并將 JDK 和 JRE 安裝到不同的目錄中&#xff0c;同時提供國內 Java 8 下載源和方法。即使你…

圖搜索的兩種寫法,廣度優先和深度優先

最近AI的爆發大家都瘋了&#xff0c;也確實夠瘋&#xff0c;前幾年誰能天天和AI聊天呢&#xff0c;特別它越來越智能&#xff0c;越來越理解你&#xff0c;你越來越離不開它&#xff0c;我很好奇將來它會不會有情緒&#xff0c;太可怕了&#xff0c;一旦有了這個就有了感情&…

嵌入式八股RTOS與Linux---前言篇

前言 Linux與RTOS是校招八股的時候很喜歡考察的知識,在這里并沒有把兩個操作系統完全的獨立開去講,放在一起對比或許可能加深印象。我們講Linux的內核有五部分組成:進程調度、內存管理、文件系統、網絡接口、進程間通信,所以我也將從這五方面出發 中斷管理去對比和RTOS的不同。…

ChatBI 的技術演進與實踐挑戰:衡石科技如何通過 DeepSeek 實現商業落地

隨著人工智能技術的快速發展&#xff0c;ChatBI&#xff08;基于自然語言交互的商業智能&#xff09;逐漸成為企業數據分析領域的熱門話題。作為 BI&#xff08;商業智能&#xff09;領域的新形態&#xff0c;ChatBI 通過自然語言處理&#xff08;NLP&#xff09;技術&#xff…

基于Vue實現Echarts的平滑曲線

在Vue2.x的項目中使用echarts實現如下效果 安裝echarts npm install echarts --save組件引入echarts // 在你的Vue組件中 import * as echarts from echarts;在模板中添加一個div元素&#xff0c;用來放置圖表 <divref"chart"class"chart"style"…

關于重構分析查詢界面的思考(未完)

業務系統里&#xff0c;查詢界面很常見&#xff0c;數據分析場景需求普遍而迫切&#xff0c;而新的技術也在不斷出現&#xff0c;很有必要重構分析查詢界面。 查詢篩選 為了盡可能從數據中發現&#xff0c;需要盡可能地將查詢條件添加進來&#xff0c;可這樣&#xff0c;查詢…

在jQuery中DOM操作

&#xff08;一&#xff09;元素選取 各種選擇器的使用方法與示例 標簽選擇器&#xff1a;通過 HTML 標簽名稱來選取元素。例如&#xff0c;若想選中頁面中所有的段落元素&#xff0c;可使用$(‘p’)。假設我們有如下 HTML 結構&#xff1a; 這是第一個段落 這是嵌套在div中的…

Java 集合框架中 `List` 接口及其子類的詳細介紹,并用 UML 圖表展示層次結構關系,用表格對比各個類的差異。

下面是 Java 集合框架中 List 接口及其子類的詳細介紹&#xff0c;并用 UML 圖表展示層次結構關系。最后&#xff0c;我會用表格對比各個類的差異。 Java 集合框架中 List 接口及其子類 UML 類圖描述 以下是 List 接口及其子類的 UML 類圖描述&#xff0c;不包含方法。 詳細…

Java面試八股—Redis篇

一、Redis的使用場景 &#xff08;一&#xff09;緩存 1.Redis使用場景緩存 場景&#xff1a;緩存熱點數據&#xff08;如用戶信息、商品詳情&#xff09;&#xff0c;減少數據庫訪問壓力&#xff0c;提升響應速度。 2.緩存穿透 正常的訪問是&#xff1a;根據ID查詢文章&…

Spring Boot使用線程池創建多線程

在 Spring Boot 2 中&#xff0c;可以使用 Autowired 注入 線程池&#xff08;ThreadPoolTaskExecutor 或 ExecutorService&#xff09;&#xff0c;從而管理線程的創建和執行。以下是使用 Autowired 方式注入線程池的完整示例。 1. 通過 Autowired 注入 ThreadPoolTaskExecuto…

9、交付手段-強化肌肉記憶(隨身工具箱)

一、交付工具箱 當臨時遇到各類交付棘手問題時&#xff0c;大腦里記住交付工具的使用場景&#xff0c;有利于快速決策&#xff0c;將這些工具轉為肌肉記憶&#xff0c;能夠快速靈活處理交付中的各類問題&#xff0c;蛻變為交付之星 1、復雜項目&#xff1a;WBS分解、日站會、…

【概念】Node.js,Express.js MongoDB Mongoose Express-Validator Async Handler

1. Node.js 定義&#xff1a;Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行時環境&#xff0c;允許你在服務器端運行 JavaScript 代碼。作用&#xff1a;它使得開發者可以使用 JavaScript 編寫服務器端代碼&#xff0c;從而實現前后端使用同一種語言。比喻&#xff1a…

【GPT入門】第22課 langchain LCEL介紹

【GPT入門】第22課 langchain LCEL介紹 1. LCEL介紹與特點2. 原生API與LCEL的對比2. 簡單demo 1. LCEL介紹與特點 LCEL 即 LangChain Expression Language&#xff0c;是 LangChain 推出的一種聲明式語言&#xff0c;用于簡化和優化在 LangChain 框架內構建復雜鏈和應用的過程…

數據結構——單鏈表list

前言&#xff1a;大家好&#x1f60d;&#xff0c;本文主要介紹數據結構——單鏈表 目錄 一、單鏈表 二、使用步驟 1.結構體定義 2.初始化 3.插入 3.1 頭插 3.2 尾插 3.3 按位置插 四.刪除 4.1頭刪 4.2 尾刪 4.3 按位置刪 4.4按值刪 五 統計有效值個數 六 銷毀…

堆排序:力扣215.數組中的第K個大元素

一、問題描述 在一個整數數組 nums 中&#xff0c;需要找出第 k 個最大的元素。這里要注意&#xff0c;我們要找的是數組排序后的第 k 個最大元素&#xff0c;而不是第 k 個不同的元素。例如&#xff0c;對于數組 [3,2,1,5,6,4]&#xff0c;當 k 2 時&#xff0c;第 2 個最大…

C語言(25)

一.數據在內存中的存儲 1.整數在內存中的存儲 整數在內存中以二進制的形式儲存&#xff0c;分別為原碼&#xff0c;補碼&#xff0c;反碼 有符號的整數&#xff0c;在上述三種形式都有符號位和數值位兩個部分&#xff0c;符號位為0是正數&#xff0c;1是負數&#xff0c;最高…

鴻蒙開發-一多開發之媒體查詢功能

在HarmonyOS中&#xff0c;使用ArkTS語法實現響應式布局的媒體查詢是一個強大的功能&#xff0c;它允許開發者根據不同的設備特征&#xff08;如屏幕尺寸、屏幕方向等&#xff09;動態地調整UI布局和樣式。以下是一個使用媒體查詢實現響應式布局的實例&#xff1a; 1. 導入必要…