Get/Post

my_beloved發表於2020-06-21

知識簡要

URL符號

?:(1) 使用?來連線引數,連線域名和引數。例如www.xxxxx.com/?a=1   //在PHP中GET傳參需要使用?進行連線

   (2) 還可以作為清理快取使用。例如:www.xxxxx.com/index.html和www.xxxxx.com/index.html?test1這兩個URL開啟的頁面是相同的,但是後面的這個URL不呼叫快取的test1的內容,所以被認為是一個新地址被重新讀取。

&:作為不同引數的間隔符。

PHP簡易知識

PHP 是弱型別語言(弱型別語言的東西沒有明顯的型別,會隨著環境的不同自動變換型別)。

echo:是一個顯示引數內容的命令。

鬆散比較:使用兩個等號 == 比較,只比較值,不比較型別。

嚴格比較:用三個等號 === 比較,除了比較值,也比較型別。

$what:變數what的表示方法,通常情況下采用what作為一個變數。

$_GET:用於收集方法”get"的表單中的值。在HTTP中的GET方法不適合很大的變數值,一般情況下值不能超過2000個字元。

$_POST:用於收集方法="post"的表單中的值。從帶有 POST 方法的表單傳送的資訊,對所有人都不可見,也不會在位址列中顯示,並且對傳送資訊的量也沒有限制。但在預設情況下,POST 方法傳送的資訊量最大值為 8 MB(可通過設定 php.ini 檔案中的 post_max_size 進行更改)。

GET/POST

GET方法

訪問URL地址

$what=$_GET['what']; //將提交的what值傳給引數what
echo $what;          //顯示引數what的內容
if($what=='flag')    //如果引數what的內容為flag
echo 'flag{****}';   //那麼顯示flag內容

得到上圖的URL程式碼,使用GET方法進行傳參,根據上圖的解釋說明,將flag傳參給what。直接在URL欄提交引數http://123.206.87.240:8002/get/?what=flag,就可以彈出flag的內容了。

POST方法

$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';

話不多說,直接看題。原始碼意思和上道題目差不多。POST方法就可以直接在火狐瀏覽器的外掛管理的地方搜尋New Hackbar(連結地址:https://addons.mozilla.org/zh-CN/firefox/search/?q=New%20Hackbar&platform=WINNT&appver=77.0.1)安裝之後使用F9可以彈出Hackbar的介面。勾選Enable Post Data,然後在下面的欄中輸入what=flag。就是通過Post的方法獲得flag的內容了。

兩種傳參方法

用XCTF攻防世界中的一道題作為引例,直接上圖。

之前使用的是直接在URL欄中新增get方法從而達到效果。同樣,使用Hackbar的時候也可以直接在位址列中直接傳參。

在使用GET方法達到目的之後,我們再用Post提交b=2,從而得到我們想要的flag。

根據這些,就可以通過利用GET和POST傳參得到自己想要的了。