CG-CTF——WriteUp(三)
工具:
①Winhex:圖片隱寫工具,這個很好用。
②在線工具HtmlEncode/BASE64轉換:注意源代碼裏奇怪的字符串,可以嘗試解碼(分清類型)。
③BurpSuite:抓包工具,這個很好用。
④Wireshark:抓包工具。使用說明
⑤HackBar:瀏覽器插件,構造POST傳參。
WEB
- 23、上傳繞過
題目地址
打開題目有點一臉懵逼。
鼠標右鍵查看頁面源代碼。
發現還有個嵌套網頁,點進去看看。
那就上傳一張圖片,卻再次提醒應該上傳PHP
後綴的文件。
既然題目叫“上傳繞過”,肯定是要通過工具繞過文件類型的判定再上傳。
。。。
- 24、SQL注入1
聽說你也會注入?
題目地址
打開題目出現了一個登陸界面,已經給了密碼,直接提交查詢看看,被提示’You are not admin!’,看來必須是admin
用戶才能登陸。
點擊 Source,可以看到這個頁面的php源代碼。
分析代碼:當用戶名(username)是 admin
的時候纔會登陸成功,並回寫flag。
if($query[user]=="admin") {
echo "<p>Logged in! flag:******************** </p>";
- 25、pass check
題目地址
分析代碼:本題通過 POST 方式傳入變量pass
的值,判斷 pass
和 pass1
是否相等,在 pass = pass1
時輸出flag。
相關知識:
strcmp(string1,string2)
函數比較兩個字符串:
1、若返回0則string1=string2,
2、返回<0則string1<string2,
3、返回>0則string1>string2。
在插件HackBar中構造傳參:pass[]=1
,點擊 Execute
提交數據即可得到flag。
- 26、起名字真難
題目地址
相關知識:
ord(string)
:求string的ASCII
值。
分析代碼:要求利用 GET 傳參傳入一個變量 key
,其中不能含有數字,又要與 ‘54975581388’ 相同。聯想 ord函數 的作用。key應該是這串數字的ascii碼。
經過進制轉換,得到 54975581388 的16進制ascii碼:ccccccccc
。
在地址欄構造GET傳參key=0xccccccccc
,得到flag。
*注意:16進制最前需要加上 ‘0x’。0x的目的是爲了表示後面的數是十六進制,在編程裏面一般都要加入,用來區別十進制數。
- 27、密碼重置
重置管理員賬號:admin 的密碼
你在點擊忘記密碼之後 你的郵箱收到了一封重置密碼的郵件
題目地址
打開題目後,沒有任何提示。先隨便輸入一串密碼和驗證碼1234,點擊重置會被提示error。
嘗試抓包也得不到有用的信息。
再分析分析,看看url,總覺得 Y3RmdXNlcg
很奇怪,去解碼一下。
發現,‘Y3RmdXNlcg’ 經過BASE64解碼後就是 ‘ctfuser’ 。
聯想題目的提示——重置管理員賬號:admin 的密碼。
賬號爲ctfuser無法修改,題目的url是 ‘ctfuser’ 的BASE64編碼。
不妨大膽猜測:可以通過burpsuite抓包修改賬號爲 admin
,記得同時也要修改 user1
爲 ‘admin’ 相對應的BASE64碼 YWRtaW4
。點擊go
即可到flag。