BugkuCTF - 練習平臺 WEB

#14 web4 (80)

打開題目地址,如圖:



提示讓看看源碼
那麼,按F12,



這好像是10進制還是啥的,
那麼看這一句eval(unescap(p1)+unescap('%35%34%61%61%32' + p2));

這句話就是把p1和'%35%34%61%61%32'和p2連接起來
放到Converter中解碼(注意拼接順序)



點擊那個Hex to Text,我試出來的,( ̄▽ ̄)"
格式化一下代碼,如下:
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;

好了有了源代碼,那麼就簡單了
這段代碼就是說如果password==67d709b2b54aa2aa648cf6e87a7114f1
就好了,填入框框中submit



KEY就拿到了


#13 管理員系統 (60 point)

打開題目地址,如圖



嗯, 沒啥想法,先按F12,



果然,這裏有東西,不過好像是base64編碼的東西,可以在線解密,也可以用py工具解碼(需要先安裝python3,然後加入到環境變量中)

這個test123 應該是密碼了



額,IP不對,必須本地登陸,本地就是127.0.0.1,那麼用burp把訪問地址改成127.0.0.1把
打開firefox和burp,輸入網址並訪問,然後填入賬號和密碼
把burp設置爲監聽,然後submit
這樣burp就捕捉到了請求,
右鍵發送到Repteaer
在HTTP頭的下面填入 X-Forwarded-For : 127.0.0.1
記得和圖中的一樣,與下面的post數據中間留一行的距離

點擊Go,flag就出來了



#12 網站被黑 (60 point)

進入題目地址,如圖:



是一個黑頁,嗯,一個網址被黑了,那麼應該會被上傳shell,那麼直接御劍掃描後臺



掃描出shell.php,打開鏈接是一個webshell

額,嘗試一下弱密碼,不行



那就只能爆破了
打開firefox和burp
打開題目地址,輸入123(隨便)
然後把burp調到監聽,再在firefox中點擊登陸
然後burp就捕捉到這一次請求了

右鍵發送到爆破模式


在Payloads中設置
Payload type爲Simple list
點擊下三角,選擇Passwords



然後再Options中設置多一點線程,能快一點,(視情況而定)

然後在Intruder菜單中點擊Start attack開始爆破

然後等待一會,因爲大多數的密碼都是不對的,那麼大多數的返回值都是一樣的,那麼這些返回值的Length也是一樣的,那麼正確的那個密碼的返回值就會和其他的不一樣,那我們按Length排序,就可以把正確的返回拍到最上面,或最下面,(也有可能在其他地方,這不重要)
這裏可以看到第1944次Request中Payload爲hack的那一次,Length與其他的不同,那麼點擊查看一下,果然,flag出來了

#11 頭等艙 (60 point)

進入題目地址後,如圖:



不過題目是頭等艙,猜想flag可能在http頭中
用burp抓包就行了
設置firefox代理,然後打開burp,設置監聽
在firefox中輸入題目地址
burp就接受到請求了



注意一下網址對不對
然後右鍵發送到Repeater中點擊GO

flag就在HTTP頭中


#10 變量1 (60 point)

進入題目地址:



是一道代碼審計,大意如下:
如果GET中有參數args
那麼獲取args
如果匹配args中有字母
輸出$$args

flag在變量中,我們看到 我們知道容易引發變量覆蓋
還有一段正則表達式 /^\w+$/
進行過濾 不會的可以百度或者Google
[a-z0-9A-Z] 以外的都不行 我們 get傳入args
我們讓args=GLOBALS 全局數組變量 關於這個變量可以百度Google
$args=GLOBALS 又和var_dump($$args) 前面那個$ 組成$GLOBALS
flag變量又在$GLOBALS中,var_dump eval 成功得到flag


#9 本地包含


#8 你必須讓他停下 (60 point)

進入題目地址:



是一個無限刷新的頁面
那麼使用一個工具burp抓包讓他停下來
打開firefox的設置,拉到最下面點擊網絡設置中的設置



如圖設置
打開burp(使用run.bat打開)

把proxy中的第三個設置爲 intercept is on



在firefox地址欄輸入題目地址,回車
burp就捕捉到了請求,上圖就是捕捉到的圖片
然後右鍵,Send to Repeater

在Repeater中點擊Go,等右邊出現10.jpg的時候flag就一起出來了(如果不是10.jpg就多點幾次Go)

#7 域名解析 (50 point)

這題要改域名解析
那麼windows下應該去改hosts文件
C:\Windows\System32\drivers\etc\hosts



在文件末尾加上123.206.87.240 flag.baidu.com
然後訪問flag.baidu.com就好了



#6 web3 (30 point)

進入題目地址,如圖



彈出很多的彈窗(不是無限個), 可以點擊不允許此頁面創建更多消息然後關閉彈窗
然後發現頁面上啥的沒有,點開F12看看



看來這個就是Flag了,看上去像是URL編碼

需要一個工具,輸入原始值點擊Decode HTML就解碼了


#5 矛盾 (30 point)

進入題目地址,如圖


又是代碼審計的題目
意思大概就是:
從URL上GET一個'num'
判斷如果num不是一個數字那麼繼續(is_numeric用法見https://www.runoob.com/php/php-is_numeric-function.html)
輸出 num
如果num等於1
那麼輸出答案

即num既不能是數字字符,但是要等於1
我們可以想到用科學計數法表示數字1,既不是純數字,其值又等於1
因此,構造payload
num=1*e*0.1



或者構造


可以得到flag



#4 web基礎$_POST (30 point)

進入題目地址,如圖



和上一題差不多,但是這次是POST
這個時候需要一個firefox瀏覽器(其他的應該也行(google不行,QQ瀏覽器不行,搜狗瀏覽器不行))(安裝的時候記得點開選項,然後把流氓軟件取消),然後在firefox上下載一個工具





瀏覽器的側邊就會出現hackbar了
打開題目鏈接



#3 web基礎$_GET (30 point)

進入題目地址後如圖



這是PHP語言,意思大概就是從URL上GET一個參數"what" ,然後輸出what的內容,如果what=='flag',那麼輸出'flag{*****}'
那麼在URL上填對應內容就好,然後回車



#2 計算器 (30 point)

點擊鏈接進入題目地址,如圖



57+58=115
那麼填進去唄



有點不對勁,好像只能輸入一個數字,按F12調出開發者工具


填入正確答案,點擊驗證就好了



#1 web2 (20 point)

點擊鏈接進入題目地址後顯示一個不斷變快的滑稽頁面



這個時候只需要按F12(開發者工具),然後註釋裏就有KEY


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章