1. 程式人生 > 實用技巧 >CTF-BugKu-WEB-1-20

CTF-BugKu-WEB-1-20

2020.09.17

全面複習web,給自己定個目標,後天之前結束BugKu-Web,開始逆向。

經驗教訓

  1. php弱等於用於繞過==,弱等於之前會把等號兩邊轉化為同一型別變數;
  2. 全域性變數全域性變數全域性變數!!$GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE、$_SESSION
  3. 瀏覽器的檢查元素的網路中內容不一定可信,因為瀏覽器在接受資料的時候會過濾不符合規則的內容,但是flag可能就藏著裡邊
  4. 偽裝成本地登陸新增請求頭X-Forwarded-For: 127.0.0.1
  5. 火狐瀏覽器有時候會出bug,在一個比較確定的答案沒有結果的時候,可以換個瀏覽器試試。。。。
  6. 檔案包含漏洞的利用,php://input配合<?php echo system('ls');?>php://filter/read=convert.base64-encode/resource=index.php
  7. 陣列求md5會返回false;
  8. 如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。
  9. 資料庫中大資料庫是information_schema,其中有TABLES、COLUMNS表,儲存所有的表和列資訊。

第一題 web2

https://ctf.bugku.com/challenges#web2

  1. 一堆這個,在頁碼原始檔找到flag

第二題 計算器

https://ctf.bugku.com/challenges#計算器

  1. 開啟如下
  2. 輸入框只能輸入一位數,檢查原始碼,發現生成驗證碼多js檔案
  3. 直接訪問,在檔案中發現flagflag{CTF-bugku-0032}

第三題 web基礎$_GET

https://ctf.bugku.com/challenges#web基礎$_GET

  1. 比較簡單的get,構造payload?what=flag,輸出flagflag{bugku_get_su8kej2en}

第四題 web基礎$_POST

https://ctf.bugku.com/challenges#web基礎$_POST

  1. 簡單的post,Firefox開啟,hackbar外掛,新增postwhat=flag
    ,請求得到flagflag{bugku_get_ssseint67se}

第五題 矛盾

https://ctf.bugku.com/challenges#矛盾

  1. 不能是數字,還得弱等於1,這就用到字元'1qwk'弱等於數字1這個知識點了,在弱等於的時候,等號兩邊會轉化為同一型別的變數,這裡1qwk轉化為數字後為數字1,payloadnum=1qwk,得到flagflag{bugku-789-ps-ssdf}

第六題 web3

https://ctf.bugku.com/challenges#web3

  1. 開啟是很多彈窗,看原始碼,在底部發現資訊,html轉碼,得KEY{J2sa42ahJK-HS11III}

第七題 域名解析

https://ctf.bugku.com/challenges#域名解析

  1. 訪問http://123.206.87.240/後,用hackbar修改host為flag.baidu.com即可得KEY{DSAHDSJ82HDS2211}

第八題 你必須讓他停下

https://ctf.bugku.com/challenges#你必須讓他停下

  1. 看原始碼知道是一個script指令碼一直在執行,用瀏覽器停用指令碼之後,得到如下介面,沒啥用,
  2. 看頁面文字,stop at panda,我重新整理介面原始碼,發現請求檔案一直在變,是不是請求的是panda就可以了呢,burp攔截試試,一直重發就會發現,有概率出現flagflag{dummy_game_1s_s0_popular}

第九題 本地包含

https://ctf.bugku.com/challenges#本地包含

  1. 訪問500,估計是壞掉了

第十題 變數1

https://ctf.bugku.com/challenges#變數1

  1. 得到程式碼
<?php  

error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
        die("args error!");
    }
    eval("var_dump($$args);");
}
?>
  1. 主要意思就是滿足正則表示式,來用var_dump()來輸出變數值,這裡想到全域性變數,構造payload?args=GLOBALS得到flagflag{92853051ab894a64f7865cf3c2128b34}

第十一題 web5

https://ctf.bugku.com/challenges#web5

  1. 開啟檢視原始碼,發現brainfuck密碼,不對,經過查閱是JSFUCK密碼,這是一種神奇的fuck密碼