攻防世界PHP2

1、打開靶機鏈接http://61.147.171.105:49513/,沒有發現任何線索

2、嘗試訪問http://61.147.171.105:49513/index.php,頁面沒有發生跳轉

3、嘗試將訪問?嘗試訪問http://61.147.171.105:49513/index.phps

index.phpindex.phps 文件之間的主要區別在于它們的文件擴展名。

  1. index.php: 這是一個標準的 PHP 文件,通常用于編寫 PHP 代碼。當用戶訪問 index.php 文件時,Web 服務器會解釋其中的 PHP 代碼,并將結果發送給用戶的瀏覽器。PHP 文件可以包含 HTML、CSS、JavaScript 以及服務器端的 PHP 代碼。

  2. index.phps: 這個文件名可能是由開發人員自定義的,它的擴展名 .phps 是一種特殊的命名約定,通常用于顯示 PHP 源代碼而不是執行它。如果用戶訪問 index.phps 文件,Web 服務器通常會直接將文件內容發送給瀏覽器,而不會解釋其中的 PHP 代碼。這對于演示和學習目的可能會有用,但不建議在生產環境中使用這種方式,因為它會暴露服務器端的代碼。

總之,index.php 是一個標準的 PHP 文件,用于執行 PHP 代碼,而 index.phps 可能用于顯示 PHP 源代碼。

<?php
if("admin"===$_GET[id]) {echo("<p>not allowed!</p>");exit();
}$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{echo "<p>Access granted!</p>";echo "<p>Key: xxxxxxx </p>";
}
?>

補充知識:

1、urldecode為解碼和urlencode為編碼

2、$_GET本身自帶一次urldecode解碼,即瀏覽器對url本身有一個檢測,對于輸入的中文、日文、俄文、和一些特殊字符進行解碼,對于字母、數字等合法字符不會進行解碼。?

3、urldecode()函數為php解碼? ? ? ? ? ??

4、所以我們如給直接給參數傳參admin會杯第一個if過濾掉。又考慮由于瀏覽器會對GET參數進行一次URL解碼,加上PHP源碼中的urldecode($_GET[id])有對可變參數進行一次解碼,總共會給參數進行2次解碼。考慮先將參數admin先進行編碼兩次

對于字母a進行urldecode編碼之后為%61,在對%進行urldecode編碼之后為%2561

所以參數輸入id=%2561dmin,這樣的話瀏覽器先對參數編碼一次為%61dmin,然后參數傳入PHP服務器后為%61dmin,所以代碼中的第一個if判斷結果為false如下:

"admin"===$_GET[%2561dmin]===(全等運算符):=== 運算符執行嚴格比較,它不會進行類型轉換。
只有在兩個操作數的值相等且類型也相同時,=== 運算符才返回 true,否則返回 false。
在嚴格比較中,值和類型都必須相同才會被視為相等。例如:var_dump(1 === "1"); // 輸出 bool(false)

然后$_GET[id] = urldecode($_GET[id])中urldecode再一次編碼為了admin,跳到第二個if函數執行判斷為true,獲取flag

$_GET[%61dmin] == "admin"==(相等運算符):== 運算符執行松散比較,它會在比較之前嘗試將操作數轉換為相同的類型。
如果兩個操作數的值相等,那么 == 運算符返回 true,否則返回 false。
在松散比較中,類型不同的值可能會被視為相等。
例如,字符串 "1" 和整數 1 在使用 == 運算符比較時會被視為相等。var_dump(1 == "1"); // 輸出 bool(true)

總結:

1、嘗試在url后面+inedx.php或index.phps,看頁面變化

2、瀏覽器會對用戶傳入的參數進行urldecode解碼,只會進行一次,并且直接將解碼后的參數傳給服務器php源碼中

3、”==“ 是相等運算符,比較值相等,不比較類型;"===" 是全等運算符,值與類型都比較

4、urldecode為解碼,urlencode為編碼

5、參考:URL特殊字符編碼對照表_bce6b8a5e6598e8-CSDN博客

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

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

相關文章

GNU Radio創建時間戳 C++ OOT塊

文章目錄 前言一、創建自定義的 C OOT 塊1、創建 timestamp_sender C OOT 模塊①、創建 timestamp_sender OOT 塊②、修改 C 代碼 2、創建 timestamp_receiver C OOT 模塊①、創建 timestamp_receiver OOT 塊②、修改 C 代碼 3、創建 delayMicroSec C OOT 模塊①、創建 delayMi…

Vue3實戰筆記(20)—封裝頭部導航組件

文章目錄 前言一、封裝頭部導航欄二、使用步驟總結 前言 Vue 3 封裝頭部導航欄有助于提高代碼復用性、統一風格、降低維護成本、提高可配置性和模塊化程度&#xff0c;同時還可以實現動態渲染等功能&#xff0c;有利于項目開發和維護。 一、封裝頭部導航欄 封裝頭部導航欄&am…

HFSS學習-day4-建模操作

通過昨天的學習&#xff0c;我們已經熟悉了HFSS的工作環境&#xff1b;今天我們來講解HFSS中創建物體模型的縣體步驟和相關操作。物體建模是HFSS仿真設計工作的第一步&#xff0c;HFSS中提供了諸如矩形、圓面、長方體圓柱體和球體等多種基本模型(Primitive)&#xff0c;這些基本…

新書速覽|MATLAB科技繪圖與數據分析

提升你的數據洞察力&#xff0c;用于精確繪圖和分析的高級MATLAB技術。 本書內容 《MATLAB科技繪圖與數據分析》結合作者多年的數據分析與科研繪圖經驗&#xff0c;詳細講解MATLAB在科技圖表制作與數據分析中的使用方法與技巧。全書分為3部分&#xff0c;共12章&#xff0c;第1…

tp8 設置空控制器和空方法

1、空控制器 單應用模式下&#xff0c;我們可以給項目定義一個Error控制器類 <?phpnamespace app\controller;class Error {/*** 空控制器中重寫魔術方法__call可以實現自定義錯誤提示&#xff0c;在這里可以提示找不到控制器* 注意&#xff1a;在基礎控制器BaseControll…

精英都是時間控!職場精英的完美一天~~~谷歌FB都在用的時間管理術!

如何超高效使用24小時 每個人的一天都只有24小時&#xff0c;使用時間的方法將決定整個人生。時間管理術并不提倡把自己忙死榨干&#xff0c;而是通過在合適的時間做合適的事情&#xff0c;把大腦機能發揮到極致&#xff0c;從而提高效率&#xff0c;節省下更多時間用于生活與…

(項目)-KDE巡檢報告(模板

金山云于12月26日對建行共計【30】個KDE集群,合計【198】臺服務器進行了巡檢服務。共發現系統風險【135】條,服務風險【1912】條,服務配置風險【368】條。 一、系統風險 1、風險分析(圖片+描述) (1)磁盤使用率高 問題描述多個集群的多臺服務器磁盤使用率較高,遠超過…

答辯PPT模版如何選擇?aippt快速生成

這些網站我愿稱之為制作答辯PPT的神&#xff01; 很多快要畢業的同學在做答辯PPT的時候總是感覺毫無思路&#xff0c;一竅不通。但這并不是你們的錯&#xff0c;對于平時沒接觸過相關方面&#xff0c;第一次搞答辯PPT的人來說&#xff0c;這是很正常的一件事。一個好的答辯PPT…

右鍵使用VSCode打開文件/文件夾目錄

右鍵使用VSCode打開文件/文件夾目錄 使用新電腦或清空了注冊列表之后&#xff0c;點擊右鍵“使用vscode”打開文件夾消失了&#xff0c;可以通過更改注冊列表增加回來。 實現&#xff1a; 右鍵在目錄空白處使用vscode打開目錄右鍵-用vscode(當前窗口)打開文件或目錄 右鍵-用vs…

簡述RocketMQ系統架構及其相關概念

一、概述 RocketMQ是一款高性能、高吞吐量的分布式消息隊列系統&#xff0c;它采用了分布式架構&#xff0c;支持多生產者和消費者并發讀寫&#xff0c;具有高可用性、高吞吐量、低延遲等特點。本文將對RocketMQ的系統架構進行詳細解析。 二、架構設計 RocketMQ采用了分布式架…

入門物聯網就是這么簡單——青創智通

工業物聯網解決方案-工業IOT-青創智通 MQTT&#xff0c;全稱為Message Queuing Telemetry Transport&#xff0c;是一種輕量級的發布/訂閱消息傳輸協議&#xff0c;廣泛應用于物聯網領域。 MQTT協議以其高效、可靠、靈活的特性&#xff0c;成為物聯網設備間通信的理想選擇。本…

升級版ComfyUI InstantID 換臉:FaceDetailer + InstantID + IP-Adapter

在使用ComfyUI的InstantID進行人臉替換時&#xff0c;一個常見問題是該工具傾向于保留原始參考圖的構圖&#xff0c;即使用戶的提示詞與之不符。 例如&#xff0c;即使用戶提供的是大頭照并請求生成全身照&#xff0c;結果仍是大頭照&#xff0c;沒有顯示出用戶所期望的構圖。…

MySQL_DDL語句

1.Data類臨時數據的弊端 我們之前在將ServletJSP配合處理請求的過程中 數據庫起到一個存取數據的作用 但是我們之前的案例中 數據是在Data類中臨時定義的 并不是從數據庫中獲取的 這樣做是不好的 因為每一次服務器關閉之后 那么部署在其上的類也會隨著卸載 緊接著和類相掛鉤的靜…

基于C#開發web網頁管理系統模板流程-登錄界面

前言&#xff0c;首先介紹一下本項目將要實現的功能 &#xff08;一&#xff09;登錄界面 實現一個不算特別美觀的登錄窗口&#xff0c;當然這一步跟開發者本身的設計美學相關&#xff0c;像蒟蒻博主就沒啥藝術細胞&#xff0c;勉強能用能看就行…… &#xff08;二&#xff09…

使用Tkinter開發Python棋盤游戲

使用 Tkinter 開發一個簡單的棋盤游戲是很有趣的&#xff01;下面是一個示例&#xff0c;演示如何使用 Tkinter 創建一個簡單的五子棋游戲&#xff1a;這個是我通過幾個夜晚整理出來的解決方案和實際操作教程。 1、問題背景 目標是開發一個 Python 棋盤游戲&#xff0c;玩家可…

web測試中,各類web控件測試點總結

一、界面檢查 進入一個頁面測試&#xff0c;首先是檢查title&#xff0c;頁面排版&#xff0c;字段等&#xff0c;而不是馬上進入文本框校驗 1、頁面名稱title是否正確 2、當前位置是否可見 您的位置&#xff1a;xxx>xxxx 3、文字格式統一性 4、排版是否整齊 5、列表項…

【--ckpt_save_interval 1 -- sync_bn】

在深度學習和機器學習的上下文中&#xff0c;–ckpt_save_interval 1 和 --sync_bn 是命令行參數&#xff0c;它們通常用于配置訓練過程。 不過&#xff0c;這兩個參數并不是所有框架或工具都通用的&#xff0c;但我可以根據常見的用法來解釋它們。 --ckpt_save_interval 1這…

人力資源管理:員工體驗平臺設計

員工體驗是員工的感受&#xff0c;是員工作為企業一份子觀察到、感受到和與之互動的一切&#xff0c;包含企業為員工提供的物質條件、人文環境等各方面的內容。 是在工作過程中接觸到的所有接觸點所產生的對自己與用人單位關系的整體感知&#xff0c;員工體驗從員工入職開始貫…

使用Go和JavaScript爬取股吧動態信息的完整指南

引言 在現代金融生態系統中&#xff0c;信息流動的速度和效率對于市場的健康和投資者的成功至關重要。股市信息&#xff0c;特別是來自活躍交流平臺如股吧的實時數據&#xff0c;為投資者提供了一個獨特的視角&#xff0c;幫助他們洞察市場趨勢和投資者情緒。這些信息不僅能夠…

【MySQL】分組排序取每組第一條數據

需求&#xff1a;MySQL根據某一個字段分組&#xff0c;然后組內排序&#xff0c;最后每組取排序后的第一條數據。 準備表&#xff1a; CREATE TABLE t_student_score (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,stu_name varchar(32) NOT NULL COMMENT 學生姓名,course…