CTF--web BugKu-ctf-web(1-10)


 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/)

新手入門,參考了很多博客,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM