暑期練習web1 MISC web1(i春秋)

2021-08-21 21:49:07 字數 1273 閱讀 6355

題目的hint:flag就在某六位變數中。

我們開啟題目:

<?php 

include

"flag.php"; //包含flag.php這個檔案

$a = @$_request['hello'];//$a這個變數請求變數hello的值

if(!preg_match('/^\w*$/',$a ))

eval("var_dump($$a);");//如果匹配輸出\$\$a的值

show_source(__file__);

?>

先來一波知識點普及:

include」flag.php」 :則表示已經固定flag.php,這時候我們要去尋找其他我們能控制的東西,比如a

而$_request則具有post 和get的功能,但是request比較慢。通過post和get方法提交的所有資料都可以通過request陣列獲得

if語句中是乙個正則匹配,^是這個表示式的起始符號;\w表示任意乙個字元(a-z、0-9); * 表示匹配前面的子表示式零次或多次。例如,zo* 能匹配 「z」 以及 「zoo」。 * 等價於;最後的$表示末尾。所以這個判斷語句就是輸入到a中,的如果全是字元,則為真

var_dump:顯示關於乙個或多個表示式的結構資訊,包括表示式的型別與值。陣列將遞迴展開值,通過縮排的陣列形式顯示其結構,例如:

<?php 

$a = array(1, 2, array("a", "b", "c"));

var_dump($a);

?>

以上例程會輸出:

array(3)

}

5.這個

估計就有很多同學搞不懂,$$為可變變數,簡單說下他的用法就是這樣:

$a = "b";

$b = "c";

echo $$a;`

結果輸出為c

由於這題涉及到了可變變數,所以我們很容易就想到了用超全域性變數$globals一次性查詢所有的東西

給hello賦值後得到flag

總結:這題本身難度不大,主要是涉及到了許多陌生的東西,而且,不能看到flag.php就一股腦的想檔案包含那些的去了,總之還是學到了許多東西

暑期訓練 day1

暑期訓練 day1 趙景樂今天主要通過 演算法競賽 一書學習了位運算,遞推遞迴,收穫還不小,一是通過位運算了解了一些之前不了解的知識與演算法,二是通過書上的一道hamilton演算法題目又複習了一遍dp。在今天的兩個小時比賽中我因為讀題不准得了4個罰時,又因為陣列定義在主函式裡面浪費了不少的時間和3...

演算法練習1

自己不怎麼關注演算法,但是面試的時候常有一些公司就會給演算法題目,目的也很直接,自己每日一練就好。思路 使用純 c來實現。條件1,陣列b內所有數字加起來為10 動態調整陣列b內的數值。因為時間先後的原因,會導致先前統計個數出現的次數不正確。include include static int a 1...

程式設計練習1

1.編寫乙個程式列印乙個表,表的每一行都給出乙個整數,它的平方以及它的立方。要求使用者輸入表的上限與下限。使用for迴圈。include includeusing namespace std void funtiongetin int a,int b int main 2.編寫乙個程式,實現9 9乘...