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

問(wèn)題描述

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

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

我們先看一下extract.php文件的源代碼,從$content=trim(file_get_contents($flag)); 到echo $flag;之間沒(méi)再對(duì)flag變量賦值,也是說(shuō)如果條件語(yǔ)句判斷成立,echo出來(lái)的$flag內(nèi)容就是我們從url中傳入的內(nèi)容,按照講解內(nèi)容,此時(shí)應(yīng)該echo出來(lái)一個(gè)空內(nèi)容,而非真正的flag。如果只傳入aurora參數(shù),通過(guò)網(wǎng)頁(yè)顯示內(nèi)容,我們可以看到真正的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!}

相關(guān)代碼

粘貼代碼文本(請(qǐng)勿用截圖)
<?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'; } }?>

相關(guān)調(diào)試信息

附圖或描述

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

我們是否應(yīng)該按照老師講解的內(nèi)容傳入一個(gè)空的flag?

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

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

回復(fù)
mb_tepsdkmf 2023-9-26

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

回復(fù)
我無(wú)敵 2023-10-4

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

回復(fù)
troylee 2023-11-22

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

回復(fù)
achzet 2023-12-2

學(xué)到了

回復(fù)
jemus 2024-4-25

確實(shí)嗷,點(diǎn)個(gè)贊
$aurora為空值就可得到flag了

回復(fù)
gaoweb 2024-7-4

mark

回復(fù)
《30小時(shí)教你玩轉(zhuǎn)CTF》
  參與學(xué)習(xí)     610 人
  提問(wèn)次數(shù)     59 個(gè)
《30小時(shí)教你玩轉(zhuǎn)CTF》;頂尖講師團(tuán)隊(duì)親授,教你深入淺出學(xué)攻防;每周一、周四更新
我的問(wèn)答 領(lǐng)取收益
0
我的提問(wèn)
0
我的回答
0
學(xué)習(xí)收益