首頁
社區(qū)
課程
招聘
傳入flag參數(shù)是否是正確操作?

問題描述

按照老師講解的內容,最后需要傳入aurora和flag兩個參數(shù),實際實驗過程如果同時傳入兩個參數(shù)反而錯誤。

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

我們先看一下extract.php文件的源代碼,從$content=trim(file_get_contents($flag)); 到echo $flag;之間沒再對flag變量賦值,也是說如果條件語句判斷成立,echo出來的$flag內容就是我們從url中傳入的內容,按照講解內容,此時應該echo出來一個空內容,而非真正的flag。如果只傳入aurora參數(shù),通過網(wǎng)頁顯示內容,我們可以看到真正的flag,而且可以發(fā)現(xiàn)$flag本身的賦值是正確的flag值而非文件名。Find the source in source.zip/extract.php

 

Warning: file_get_contents(flag{EZ_extr4cT!}): failed to open stream: No such file or directory in /var/www/html/extract.php on line 7
flag{EZ_extr4cT!}

相關代碼

粘貼代碼文本(請勿用截圖)
<?php
include("extract_flag.php");
extract($_GET);
if(isset($aurora))
{
$content=trim(file_get_contents($flag));

1
2
3
4
if($aurora==$content)
 {
    echo $flag;
}

else { echo'Oh.no'; } }?>

相關調試信息

附圖或描述

你期待的結果是什么?實際看到的錯誤信息又是什么?

我們是否應該按照老師講解的內容傳入一個空的flag?

收藏
7條回答
mb_ujnwzygn 2023-8-27

對!
我贊同你的說法,布應該傳入flag
$flag應該是一個在extract_flag.php中已經(jīng)創(chuàng)建好的字符串變量,變量的值是題目的flag答案,然后再包含extract_flag.php這個文件,就不用再傳flag的數(shù)值了
圖片描述
得到的結果也說明flag不是文件,是字符串變量

回復
mb_tepsdkmf 2023-9-26

flag傳入空值,會提示文件名不能為空。
Warning: file_get_contents(): Filename cannot be empty in /var/www/html/extract.php on line 7
只傳入aurora才能得到結果

回復
我無敵 2023-10-4

贊同。老師講錯了,$flag本身就是我們想要拿到的flag變量,而不是一個文件名,因此不能傳入$flag。

回復
troylee 2023-11-22

$flag的值是我們希望得到的flag,用file_get_contents讀取時,$flag的值大概率是一個不存在的文件。
file_get_contents() 函數(shù)執(zhí)行失敗時,可能返回 Boolean 類型的 FALSE,也可能返回一個非布爾值(如空字符)。(This function may return Boolean false, but may also return a non-Boolean value which evaluates to false. )引用自php官網(wǎng)。
這樣與我們傳入的$aurora的值進行比較,得到($aurora==$content)等于TRUE,最后輸出$flag的值。

回復
achzet 2023-12-2

學到了

回復
jemus 2024-4-25

確實嗷,點個贊
$aurora為空值就可得到flag了

回復
gaoweb 2024-7-4

mark

回復
《30小時教你玩轉CTF》
  參與學習     691 人
  提問次數(shù)     67 個
《30小時教你玩轉CTF》;頂尖講師團隊親授,教你深入淺出學攻防;每周一、周四更新
我的問答 領取收益
0
我的提問
0
我的回答
0
學習收益