1.web2
題目地址:http://123.206.87.240:8002/web2/
查看網頁源代碼得到flag KEY{Web-2-bugKssNNikls9100}
2.計算器
題目地址:http://123.206.87.240:8002/yanzhengma/
打開題目鏈接發現是簡單的數學計算,但是只能輸入一位數字
查看網頁源碼發現輸入的maxlength=1
火狐瀏覽器f12,查看器,修改maxlength=5
重新輸入計算結果,驗證,得到flag
3.web基礎$_GET
題目地址:http://123.206.87.240:8002/get/
在url后加上index.php?what=flag或?what=flag
得到flag{bugku_get_su8kej2en}
4.web基礎$_POST
post傳參
點擊run
得到flag{bugku_get_ssseint67se}
5.矛盾
http://123.206.87.240:8002/get/index1.php
需要構造$num,使得$num不是數字或數字字符串,且($num==1)為true
php是一種弱類型語言
https://www.cnblogs.com/qing123tian/p/10778615.html
構造$num=1+字母,如num=1x
得到flag{bugku-789-ps-ssdf}
6.web3
題目地址:http://123.206.87.240:8002/web3/
題解:https://www.cnblogs.com/0yst3r-2046/p/10738710.html (引用https://www.cnblogs.com/0yst3r-2046/)
右鍵查看網頁源碼
HTML解碼
得到<!--KEY{J2sa42ahJK-HS11III}-->
7.域名解析
域名解析
50
聽說把 flag.baidu.com 解析到123.206.87.240 就能拿到flag
修改本機hosts文件
hosts文件地址C:\Windows\System32\drivers\etc\hosts
在末尾加上123.206.87.240 flag.baidu.com
瀏覽器打開flag.baidu.com得到flag
KEY{DSAHDSJ82HDS2211}
8.
你必須讓他停下
60
地址:http://123.206.87.240:8002/web12/
作者:@berTrAM
右鍵檢查,仔細觀察,閃動過程中會出現flag,眼疾手快把它復制下來(這不是正確解法,正確解法引用(https://www.cnblogs.com/Gzu_zb/p/10035968.html))
(正確解法我沒搞出來~~~~~)hhhhh
復制得到flag <a style="display:none">flag{dummy_game_1s_s0_popular}</a>
9.
本地包含
60
地址:http://123.206.87.240:8003/
參考:https://segmentfault.com/a/1190000016750234?utm_source=tag-newest
<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);
?>
$_REQUEST:默認情況下包含了 $_GET,$_POST 和 $_COOKIE 的數組。(https://www.php.net/manual/zh/reserved.variables.request.php)
eval:eval — 把字符串作為PHP代碼執行(https://www.php.net/manual/zh/function.eval.php)
var_dump — 打印變量的相關信息(https://www.php.net/manual/zh/function.var-dump.php)
此函數是該函數的別名: highlight_file().
highlight_file — 語法高亮一個文件(https://www.php.net/manual/zh/function.highlight-file.php)
PHP魔術常量__FILE__:文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__
總是包含一個絕對路徑(如果是符號連接,則是解析后的絕對路徑),而在此之前的版本有時會包含一個相對路徑。
幾個 PHP 的“魔術常量”(https://www.php.net/manual/zh/language.constants.predefined.php)
成功輸出 flag.php 文件內容 flag{bug-ctf-gg-99}
10.
變量1
60
http://123.206.87.240:8004/index1.php
參考:https://blog.csdn.net/Auuuuuuuu/article/details/79616285(這個write up 寫的很詳細,受益匪淺)
error_reporting — 設置應該報告何種 PHP 錯誤
isset — 檢測變量是否已設置並且非 NULL
$_GET---get方式傳參
preg_match — 執行匹配正則表達式
die — 等同於 exit()
解題思路:eval()函數存在命令執行漏洞 我們的目標是查看flag1.php中的flag 首先想到的是本地包含漏洞查看源碼 或者上傳一句話木馬等思路
而本題條件判斷加了正則表達式判斷,過濾了括號和引號等字符。無法構造! 但輸出時是 $$args
我們想到構造 php中超全局變量 $GLOBALS
PHP 在名為 $GLOBALS[index] 的數組中存儲了所有全局變量。變量的名字就是數組的鍵。
構造url:http://123.206.87.240:8004/index1.php?args=GLOBALS
flag{92853051ab894a64f7865cf3c2128b34}
php官方文檔(https://www.php.net/manual/)
新手入門,參考了很多博客,謝謝。