【web | CTF】BUUCTF [HCTF 2018]WarmUp

天命:這題本地php代碼是無法復現的

首先打開網站,啥也沒有,查看源碼

發現文件,打開訪問一下看看,發現是代碼審計

<?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist = ["source"=>"source.php","hint"=>"hint.php"];if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}// 攔截1:判斷是否數組里面兩個文件名if (in_array($page, $whitelist)) {return true;}// 攔截2:輸入的東西在最后面添加上?,然后獲取字符串長度,通過長度來截取字符串// 如果?前面是數組里面的東西,就返回true,$_page = mb_substr( $page, 0, mb_strpos($page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}// 攔截3:url解碼是不生效,忽略$_page = urldecode($page);// 攔截4:因為url解碼不生效,所以攔截跟上面一樣,忽略$_page = mb_substr( $_page, 0, mb_strpos($_page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}echo "you can't see it";return false;}}if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  
?>

訪問一下hint.php文件就告訴我們,flag在?ffffllllaaaagggg 這個文件里

攔截大概意思就是,我們輸入:ffffllllaaaagggg

會被添加問號:ffffllllaaaagggg?

然后截取問號前數據,就是輸入什么就判斷什么

ffffllllaaaagggg == 數組里兩個文件名嗎?

相等才能放行

所以輸入的東西必須是其中之一

hint.php? 是必填的,然后重點來了,想要訪問成其他文件,只需要繼續拼接?文件名

就可以了

hint.php?ffffllllaaaagggg

這里經驗靈感是 四個字,所以是四層目錄

所以完整的flag:source.php?file=hint.php?../../../../../ffffllllaaaagggg

然后你會發現,這TM是五層目錄啊,而且本地是無法復現出來的

可能是古代版本的php才能復現出來

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

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

相關文章

【學習總結】什么是DoS和DDoS

[Q&A] 什么是DoS DoS 是 “Denial of Service”&#xff08;拒絕服務&#xff09;的縮寫&#xff0c;它是一種網絡攻擊方式&#xff0c;其目的是使目標計算機或網絡資源無法為合法用戶提供正常的服務。通過向目標系統發送大量請求、消耗其帶寬、處理器或內存等資源&#…

13 雙口 RAM IP 核

雙口 RAM IP 核簡介 雙口 RAM IP 核有兩個端口&#xff0c;它又分為偽雙端口 RAM 和真雙端口 RAM&#xff0c;偽雙端口 RAM 一個端口只能讀&#xff0c;另一個端口只能 寫&#xff0c;真雙端口 RAM 兩個端口都可以進行讀寫操作。同時對存儲器進行讀寫操作時就會用到雙端口 RAM…

unity-1

創建游戲對象&#xff08;游戲物體&#xff09; 可通過unity中的菜單欄中的Gameobject創建&#xff1b;也可在Hierarchy&#xff08;層級&#xff09;中創建&#xff0c; 雙擊即可居中看到。 在Hierarchy空白處右鍵即可看到&#xff0c;能創建游戲對象。 在Scene框中&#x…

BioTech - ADMET的性質預測 概述

歡迎關注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/136438192 ADMET&#xff0c;即 Absorption、Distribution、Metabolism、Excretion、Toxicity&#xff0c;吸收、分布、代謝、排泄、毒性…

題目 1629: 藍橋杯算法訓練VIP-接水問題

題目描述: 學校里有一個水房&#xff0c;水房里一共裝有m個龍頭可供同學們打開水&#xff0c;每個龍頭每秒鐘的供水量相等&#xff0c;均為1。現在有n名同學準備接水&#xff0c;他們的初始接水順序已經確定。將這些同學按接水順序從1到n編號&#xff0c;i號同學的接水量為wi。…

Linux shell:補充命令的使用

目錄 一.導讀 二.正文 三.結語 一.導讀 上一篇介紹了腳本的簡單概念以及使用&#xff0c;現在補充一些命令。 二.正文 目前處于全局目錄&#xff0c;通過mkdir創建名我為day01的文件。 通過cd命令day01 切換至day01文件當中。 使用vim文本編輯器文件名&#xff08;firstdir&…

設計模式學習筆記——工廠方法模式

設計模式&#xff08;創建型&#xff09;—— 工廠方法模式 傳統的獲取對象方法&#xff0c;是通過 new 關鍵字獲取一個對象&#xff0c;但是如果多個地方都需要該對象&#xff0c;就需要 new 很多次&#xff0c;這時候如果這個類發生了一些改變&#xff0c;如類名變了&#x…

靜態上下文調用了非靜態上下文

問題描述&#xff1a; static修飾的方法不能調用非static修飾方法 問題原因&#xff1a; 在Java中&#xff0c;靜態方法&#xff08;如main方法&#xff09;可以直接訪問靜態成員&#xff08;包括靜態變量和靜態方法&#xff09;&#xff0c;但不能直接訪問非靜態成員&#…

【Python】進階學習:pandas--query()用法詳解

&#x1f4da;【Python】進階學習&#xff1a;pandas–query()用法詳解 &#x1f308; 個人主頁&#xff1a;高斯小哥 &#x1f525; 高質量專欄&#xff1a;Matplotlib之旅&#xff1a;零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&#x1f448; 希…

劍指offer面試題24 二叉樹搜索樹的后續遍歷序列

考察點 二叉搜索樹&#xff0c;樹的后序遍歷知識點 題目 分析 本題目要求判斷某序列是否是二叉搜索樹的后序遍歷序列&#xff0c;后序遍歷的特點是左右根&#xff0c;因此序列的最后一個元素肯定是根結點&#xff0c;而前面的序列可以分為倆部分&#xff0c;第一部分是左子樹…

LeetCode --- 無重復字符的最長子串

題目描述 無重復字符的最長子串 找到無重復的最長連續字符串。 示例1中 abc | bca | cab 都符合題意。輸出3即可。 代碼 可以使用暴力枚舉 哈希表&#xff0c;哈希表來判斷是否重復&#xff0c;枚舉來判斷每一種情況&#xff0c;需要開兩層for循環&#xff0c;時間復雜度n…

linux高級編程:線程(二)、進程間的通信方式

線程&#xff1a; 回顧線程&#xff08;一&#xff09;&#xff1a; 1.線程間通信問題 線程間共享同一個資源&#xff08;臨界資源&#xff09; 互斥&#xff1a; 排他性訪問 linux系統 -- 提供了Posix標準的函數庫 -- 互斥量&#xff08;互斥鎖&#xff09; 原子操作&#x…

精通Matplotlib:從入門到精通的繪圖指南

在本篇文章中&#xff0c;我們將深入探索Matplotlib庫&#xff0c;這是一個強大的Python繪圖庫&#xff0c;廣泛用于數據可視化。Matplotlib讓我們能夠以簡單而直觀的方式創建各種靜態、動態和交互式的圖表。無論你是數據分析師、科研人員&#xff0c;還是任何需要數據可視化的…

用Redis如何實現延遲隊列?

在Redis中實現延遲隊列可以利用有序集合&#xff08;Sorted Set&#xff09;和定時任務的方式。下面是一個基本的實現思路&#xff1a; 添加延遲任務&#xff1a; 將任務信息作為一個字符串存儲在Redis中&#xff0c;同時將其對應的執行時間作為分數(score)存儲在有序集合中。使…

Bililive-go 實現直播自動監控錄制

前言 最近有直播錄制的需求&#xff0c;但是自己手動錄制太麻煩繁瑣&#xff0c;于是用了開源項目Bililive-go進行全自動監控錄制&#xff0c;目前這個項目已經有3K stars了 部署 為了方便我使用了docker compose 部署 version: 3.8 services:bililive:image: chigusa/bilil…

win環境nginx實戰配置詳解

項目中經常使用nginx做負載均衡&#xff0c;接口路由、文件、文檔的上傳及下載、視頻的代理播放等等&#xff0c;都離不開nginx的支持&#xff0c;今天我們分享一下其個使用場景。 1、配置文件 nd-nginx.conf 全局配置 #全局配置端&#xff0c;對全局生效&#xff0c;主要設置…

leetcode-字符串相加

415. 字符串相加 題目中已經說明不能使用庫函數直接將輸入的字符串轉換為整數。這就需要我們自己實現大數加法的邏輯&#xff0c;我們可以從兩個字符串的最后一位開始&#xff0c;逐位相加&#xff0c;同時記錄進位。如果某一位相加的結果超過10&#xff0c;那么需要向前進位。…

javascript實現的星座查詢

今天在這個網站http://xzxys.wiicha.com/看到查詢星座幸運色的效果&#xff0c;想研究一下代碼&#xff0c;結果右鍵禁用。后來參考了一下別人的代碼&#xff0c;琢磨著先實現了一下星座查詢的功能&#xff0c;輸入月份和日期四位數后&#xff0c;可以查詢屬于哪個星座&#xf…

群體風暴之錘(War3地圖編輯器)

文章目錄 0、大致原理1、創建隱形單位2、新事件開端3、環境→新條件4、動作4.1、單位組4.1.1、圓范圍內單位4.1.2、指定條件 4.2、對單位組內的所有單位釋放風暴之錘 0、大致原理 真MK向目標點釋放風暴之錘時選定&#xff08;以技能釋放點為圓心&#xff0c;設定半徑&#xff0…

Python編程語言常用的包管理工具介紹

conda是一個開源的包管理器和環境管理器&#xff0c;用于安裝、運行和更新包和它們的依賴項。conda可以用于Python編程語言&#xff0c;但它也支持其他編程語言。conda的主要特點是它能夠在不同的環境中管理不同的包集合&#xff0c;這使得它非常適合于數據科學和機器學習項目&…