ctfshow—web題解
- web1
- web2
- web3
- web4
- web5
- web6
- web7
- web8
- web9
- web10
- web11
- web12
- web13
- web14
- web15
- web16
- web17
- web18
- web19
- web20
web1
題目提示
開發注釋未及時刪除
那就找開發注釋咯,可以用F12
來查看,也可以Ctrl+U
直接查看源代碼呢
就拿到flag了
web2
題目提示
js前臺攔截 === 無效操作
沿用web1的思路,發現右鍵點不了了,F12也沒反映了,這樣可不行,我要拿到我最愛的flag!qwq
但是Ctrl+U還是可以正常用的
在 JavaScript 中,=== 是嚴格相等運算符,用于比較兩個值的類型和數值。如果前臺攔截中提示 “===
無效操作”,可能是因為在攔截的代碼中,使用了不正確的語法或者操作方式導致了這個錯誤。
在進源碼拿到flag的同時,發現
> window.oncontextmenu = function(){return false};
> window.onselectstart = function(){return false};
> window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};
分析易得這段代碼是用來禁止在網頁上右鍵點擊(禁用上下文菜單)、禁止選擇文本和禁止按下 F12 鍵打開開發者工具的操作。具體功能解釋如下:
window.oncontextmenu
:這行代碼將右鍵點擊事件的默認行為禁止,即禁用了瀏覽器的上下文菜單。
window.onselectstart
:這行代碼阻止了文本被選中,使得用戶無法通過鼠標選擇頁面上的文本內容。
window.onkeydown
:這行代碼捕獲鍵盤按下事件,當按下的鍵為 F12 時,將其事件碼設置為 0 并且取消默認行為,從而阻止了按下F12 鍵打開瀏覽器的開發者工具。
web3
題目提示
沒思路的時候抓個包看看,可能會有意外收獲
他讓我們抓包那就抓吧,打開抓包工具burpsuite,再熟練的打開代理
肯定有人說這也沒啥啊,
確實沒啥,那就點點看唄,點到hex里面的時候,發現藏在這里的flag,拿下
當然在前端的網絡里面也可以看到這個flag
web4
題目提示
總有人把后臺地址寫入
robots
,幫黑闊大佬們引路。
那就得知道在網絡上的robots
是什么
robots.txt是一種文本文件,用于向網絡爬蟲(如搜索引擎的爬蟲)提供網站訪問的指導。它位于網站的根目錄下,通過規定哪些頁面可以被爬蟲訪問,以及哪些頁面應該被忽略,來控制搜索引擎對網站內容的抓取和索引。
通過編輯robots.txt文件,網站管理員可以告訴搜索引擎爬蟲哪些頁面應該被排除在外,以保護隱私或防止搜索引擎浪費資源爬取不必要的頁面。同時,也可以使用robots.txt來指示搜索引擎爬蟲對特定頁面的抓取頻率限制,以避免對服務器造成過大負擔。
然而,需要注意的是,robots.txt只是一種約定和建議,而并非強制規定。善意的搜索引擎會尊重robots.txt文件的指示,但惡意的爬蟲可能會無視這些規則。
就拿百度的看看https://www.baidu.com/robots.txt
這里面的內容是這樣的,大多數就是一些目錄,如下圖
知道這個就好做了,直接在后面加上robots.txt
發現個關于flag的文件,繼續拼接,成功拿下flag。
web5
題目提示
phps源碼泄露有時候能幫上忙
疑惑?什么是phps
phps即為 PHP Source。PHP Source 由 The PHP Group 發布,是最通用的關聯應用程序。
phps文件就是php的源代碼文件,通常用于提供給用戶(訪問者)查看php代碼,因為用戶無法直接通過Web瀏覽器看到php文件的內容,所以需要用phps文件代替。其實,只要不用php等已經在服務器中注冊過的MIME類型為文件即可,但為了國際通用,所以才用了phps文件類型
已知站點是php
搭建的
而且默認建站規則都有index.php
聯想到可能是index.phps
那就實踐試試,在原網頁的請求上加上/index.phps,這道題之后會給下載這個文件
文件下載好后用正在使用的瀏覽器打開,打開后看到是空白網頁
這時候查看這個網頁源碼即可從注釋中得到flag
直接用burpsuite抓包也可以直接回顯出來,成功拿下flag
web6
題目提示
解壓源碼到當前目錄,測試正常,收工
條件反射www.zip
,別問為什么,問就是經驗,常見的網站源碼備份文件
常見的網站源碼備份文件后綴
? tar
? tar.gz
? zip
? rar
常見的網站源碼備份文件名
? web
? website
? backup
? backup
? www
? wwwroot
? tempWeb.tar
Web.
Web.
Web.website.
website.
website.
website.backup
backup
backup
backupbackup
backup
backup
backupwww
www
www
wwwwwwroot
wwwroot
wwwroot
wwwroottemp
temp
temp
temp
拿下flag
提示在fl000g.txt
下,那么在URL后加上這個txt,成功拿下flag!
web7
題目提示
版本控制很重要,但不要部署到生產環境更重要。
根據提示說的什么不要部署在生產環境什么的不太懂,反正就肯定是信息泄露嘛,繼續保持開發者工具、抓包、dirsearch三連,dirsearch發現可以訪問/.git/
嘗試訪問一下,成功得到flag
web8
題目提示同web7一樣 這道題和上面一道題類似,都是版本控制器問題 常用的就是Git和SVN上面那題用的是/.git/
這一題只需要將
git
改為svn
即可
web9
題目提示
發現網頁有個錯別字?趕緊在生產環境vim改下,不好,死機了
根據提示,在Linux生產環境上使用vim或者vi做修改時,會生成一個swp為后綴的文件
第一次意外退出生成的是.swp
第二次意外退出生成的是.swo
第三次為.swn
因此可以嘗試打開第一次退出時產生的這個文件,輸入/index.php.swp
會下載出文件
打開即可得到flag
web10
題目提示
cookie 只是一塊餅干,不能存放任何隱私數據
餅干?嘿嘿嘿好吃😋喜歡吃餅干,不對,cookie在這里好像不是餅干的意思,那是什么呢?
Cookie
是一種存儲在用戶計算機上的小型文本文件。它由網站通過用戶的瀏覽器創建并存儲在用戶的硬盤上。當用戶訪問同一個網站時,瀏覽器會將該網站的Cookie發送回服務器,以便識別用戶、跟蹤其活動和提供個性化的服務。
Cookie通常用于以下目的:
會話管理
:通過保存用戶的會話信息,使用戶在同一網站上進行多個請求時保持登錄狀態。 用戶偏好:記錄用戶的偏好設置,如語言選擇、字體大小等。
購物車功能
:在電子商務網站上,Cookie可以幫助存儲用戶的購物車內的商品信息。
廣告定向
:廣告公司可以使用Cookie來跟蹤用戶的瀏覽行為,并根據其興趣向其展示相關廣告。
網站分析
:網站管理員可以使用Cookie來收集用戶訪問網站的統計數據,從而改進網站的性能和用戶體驗。
需要注意的是,Cookie只能存儲少量的數據,并且是明文存儲在用戶設備上的,因此應謹慎處理敏感信息,同時用戶可以通過瀏覽器設置來控制Cookie的接受與拒絕。
好好好,cookie是這樣的是吧,那我們怎么得到cookie呢,很簡單,抓包or直接在F12里的 network找
很明顯的看到cookie里的flag就得到了,不過還得url編碼下,%7B和&7B是左右花括號
成功拿下flag!或者按下面的網絡里得到flag
web11
題目提示
域名其實也可以隱藏信息,比如
flag.ctfshow.com
就隱藏了一條信息 由于動態更新,txt記錄會變 最終flag
flag{just_seesee}Unlock Hint for 0 points 通過dns檢查查詢flag https://zijian.aliyun.com/ TXT
記錄,一般指為某個主機名或域名設置的說明。查找flag.ctfshow.com域名下的txt記錄
剛拿到題目有點懵,還給了提示,仍然一頭霧水,看了半天大概明白是了跟蹤路由然后返回域名設置的,
那么跟蹤路由命令nslookup,要查詢域名的指定解析類型的解析記錄
格式:nslookup -type=type domain [dns-server]
其中 type 為解釋類型
那么接下來就好辦了,直接命令一把梭
nslookup -qt=txt flag.ctfshow.com
但是本地不知道哪里出問題了運行不出來
只能依托gpt師傅幫幫忙了
good!!!成功拿下!!!
web12
題目提示
有時候網站上的公開信息,就是管理員常用密碼
根據題目提示,我們訪問robots.txt,獲取到后臺地址
在robots.txt
下發現/admin
/目錄
然后我們訪問一下后臺
賬號名直接盲猜admin,密碼是網站底部的這串數字,372619038
登錄后成功拿下flag。
web13
題目提示
技術文檔里面不要出現敏感信息,部署到生產環境后及時修改默認密碼
既然跟默認密碼有關,可能是密碼泄露,在開發文檔中極有可能泄露
在網站找到一個超鏈接
訪問后,發現開發者在文檔中寫了自己的后臺地址和賬號密碼
這里your-domain
換成自己的做題環境,訪問后臺地址
https://your-domain/system1103/login.php
拿下flag。
web14
題目提示
小0day:某編輯器最新版默認配置下,如果目錄不存在,則會遍歷服務器根目錄
有時候源碼里面就能不經意間泄露重要(editor)的信息,默認配置害死人
查看網頁源代碼、抓包、dirsearch,dirsearch發現存在可以訪問的/editor/,和題目提示很像,進去看看
打開網站,根據提示訪問http://your-domain/editor/
發現了個編輯器
點擊圖片空間或者文件空間時,發現居然能直接訪問服務器根目錄
一路從根目錄到網站目錄找,在var/www/html/editor/旁邊發現了一個叫nothinghere
的文件夾,那肯定里面有東西了,發現fl000g.txt
直接抓包訪問獲得flag
/editor/attached/image/var/www/html/nothinghere/fl000g.txt
web15
題目提示
公開的信息比如郵箱,可能造成信息泄露,產生嚴重后果
根據題目提示郵箱,在網頁底部發現一個郵箱
再url后面加上admin訪問一下后臺
有一個忘記密碼選項,點擊一下
有密保問題,聯想到qq郵箱,搜索一下qq
得到地址為西安,于是提交西安得到重置后的密碼
得到密碼為admin7789,賬號還是admin,登錄后獲得flag
web16
題目提示
對于測試用的探針,使用完畢后要及時刪除,可能會造成信息泄露
php探針是用來探測空間、服務器運行狀況和PHP信息用的,
探針可以實時查看服務器硬盤資源、內存占用、網卡流量、系統負載、服務器時間等信息。是一個查看服務器信息的工具。
比如查看服務器支持什么,不支持什么,空間速度等等狀況!
根據提示用到php探針知識點
輸入默認探針tz.php
打開后點擊phpinfo就可以查看到flag
再點擊phpinfo查看信息,搜索ctfshow得到flag
web17
題目提示
備份的sql文件會泄露敏感信息
用dirsearch掃出url/backup.sql
打開靶機,直接用dirsearch掃描目錄,掃出了/backup.sql
訪問url/backup.sql,自動下載了backup.sql
打開backup.sql,即可獲取flag
web18
題目提示
不要著急,休息,休息一會兒,玩101分給你flag
謝邀,玩了好幾把,速度快的飛起,根本玩不了,作為一名ctfer怎么能玩游戲通關呢,必須得hack他
一般來說,這種游戲都是js里控制的,我們翻看js代碼
解碼147行的代碼
\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b
根據提示,訪問110.php,構造url/110.php
得到flag
web19
題目提示
密鑰什么的,就不要放在前端了
打開一個登錄框,既然提示前端,那就看看源代碼有沒有什么線索
發現了一些奇怪的東西,分析復習分析
一共兩段js代碼
function checkForm(){var key = "0000000372619038";var iv = "ilove36dverymuch";var pazzword = $("#pazzword").val();pazzword = encrypt(pazzword,key,iv);$("#pazzword").val(pazzword);$("#loginForm").submit();}
function encrypt(data,key,iv) { //key,iv:16位的字符串var key1 = CryptoJS.enc.Latin1.parse(key);var iv1 = CryptoJS.enc.Latin1.parse(iv);return CryptoJS.AES.encrypt(data, key1,{iv : iv1,mode : CryptoJS.mode.CBC,padding : CryptoJS.pad.ZeroPadding}).toString();
}
這段代碼是一個用于在客戶端對密碼進行加密后再提交表單的函數。
它使用了 CryptoJS 庫中的 AES 加密算法來對密碼進行加密。具體來說,它做了以下幾件事情:
獲取輸入框中 id 為 “pazzword” 的密碼值。
通過指定的 key 和 iv 對密碼進行 AES 加密。
將加密后的密碼設置回輸入框 “pazzword” 中。
提交表單。
需要注意的是,這段代碼中使用的是
ECB
模式和ZeroPadding
填充方式。在實際應用中,建議考慮使用更安全的加密模式(如 CBC 模式)和填充方式(如 PKCS7 填充)來加強安全性。
<!--error_reporting(0);$flag="fakeflag"$u = $_POST['username'];$p = $_POST['pazzword'];if(isset($u) && isset($p)){if($u==='admin' && $p ==='a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04'){echo $flag;}
}-->
這段代碼是一個簡單的 PHP 代碼片段,用于處理用戶提交的用戶名和密碼,并根據條件進行簡單的驗證,如果驗證通過則返回一個標志。
具體來說,它做了以下幾件事情:
關閉了錯誤報告輸出,使得 PHP 不會輸出錯誤信息到頁面上。
定義了一個變量 $flag 并賦了一個值 “fakeflag”,這個變量可能在其他地方被使用。
從 POST 請求中獲取了用戶名和密碼。
如果用戶名和密碼都被設置了,且用戶名為 “admin”,且密碼為特定的哈希值,則返回變量 $flag 的值。
結合以上幾點來看:
密文輸出編碼: 十六進制hex
偏移量iv: ilove36dverymuch
密鑰:0000000372619038
密文為: a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
模式為CBC
填充為ZeroPadding
編碼為Hex
利用在線解密工具直接得到密碼為:i_want_a_36d_girl
輸入admin
和i_want_a_36d_girl
登陸成功得到flag
利用hackbar或者burpsuite抓包發送post請求,post傳參也可以得到username=admin&pazzword=a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
web20
題目提示
mdb文件是早期asp+access構架的數據庫文件,文件泄露相當于數據庫被脫褲了。
早期 asp+access 架構的數據庫文件為db.mdb ,所以訪問 /db/db.mdb 下載一個文件。
打開得到flag:flag{ctfshow_old_database}