本文靶場來源於CTFshow,並不完全按照靶機的順序排列,而是以測試操作為導向,按博主個人理解排列。
1. 前端原始碼
在CTF中,先看原始碼是個好習慣,出題者經常會在原始碼中以註釋的形式提供一些提示
web 1——關注頁面原始碼
web 2——js前臺攔截原始碼檢視
本題利用js攔截以下內容
window.oncontextmenu = function(){return false};
:禁用右鍵選單,使用者右鍵點選時不會彈出選單。window.onselectstart = function(){return false};
:禁用文字選擇,使用者無法透過拖動滑鼠選擇頁面上的文字。window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};
:禁用F12鍵(通常用於開啟開發者工具),使用者按下F12時不會有任何反應。
當然,前端攔截等於沒有攔截,有很多方法都可以直接繞過
法一
ctrl u 快捷鍵開啟原始碼
法二
url前加view-source:
檢視原始碼
法三
burp抓包看返回包
法四
使用瀏覽器開發工具開啟
法五
ctrl s儲存到本地檢視
web 19——金鑰補藥放前端吶
原始碼中給出賬號密碼了,提交了一下發現不行
猜測他的邏輯應該是,前端輸入賬號密碼後,密碼被加密然後透過資料包傳給後端,此處我輸入的密碼是111,發的資料包如下,顯然是加密了。於是原始碼中的密碼應該是被加密過的,因此把上面的密碼粘到burp裡就行
web 20——JS前端程式碼
有經驗的師傅一看就知道本題是全前端實現的
找到這個判斷,有一個Unicode編碼的內容
在控制檯直接輸出內容,提示110.php
2. 資料包
當沒有思路的時候,不妨嘗試抓個包。常用抓包工具:瀏覽器的網路功能、burpsuite等
web 3——抓包是個好習慣
看了原始碼什麼都沒有,所以只能抓個包看看
web 10——cookie洩露
抓包看一下,在cookie
看到flag
3. 目錄掃描
目錄掃描是資訊收集必不可少的一步,不同的敏感檔案決定了不同的後續滲透思路。
常用的目錄掃描工具dirsearch
,基本語法為
python dirsearch.py -u http://xxxx/
3.1 robots.txt
robots.txt 是一個用於規定爬蟲可以訪問網站上的哪些網址的文字檔案。需要注意的是,它只是提示合法使用者不要爬取這些目錄,但並不禁止對目錄的訪問。透過robots.txt
,攻擊者可能得到一些敏感目錄。
web 4——robot目錄洩露
使用dirsearch掃描目錄,發現存在robots.txt
檔案,它禁止爬蟲對/flagishere
的訪問,訪問/flagishere
,得到flag
3.2 原始碼檔案洩露
原始碼檔案洩露對於滲透測試具有十分重大的意義,這意味著測試者可以進行白盒審計甚至直接利用已知的nday漏洞直接對網站發起進攻。
web 5——phps檔案洩露
本題考查的是phps檔案洩露原始碼。phps檔案就是php的原始碼檔案,通常用於提供給使用者(訪問者)檢視php程式碼,因為使用者無法直接透過Web瀏覽器看到php檔案的內容,所以需要用phps檔案代替。比較麻煩的是,博主試了幾個目錄掃描字典都不包含index.phps
,當然這也是合理的,因為真實生產環境下並極少使用index.phps
的需求,因此只能作為一個可能的思路,師傅們也可以把這些遇到的掃不出來的目錄新增到字典中去,做好積累。
本題的解題直接訪問index.phps
獲得flag即可
web 6——zip備份檔案洩露
dirsearch一掃,發現/www.zip
訪問路徑,下載了www.zip,開啟裡面有個fl000g.txt檔案,點進去發現裡面的flag是空。轉換一下思路,www.zip
應當是網站的原始碼,因此這個路徑在服務中可能也存在,訪問/fl000g.txt
,得到flag。這裡下載的原始碼實際上提示了目錄,而非直接用下載下來的檔案。
web 7——git洩露
Git洩露是指在使用Git版本控制系統時,由於配置不當或者操作失誤,導致敏感資訊(如密碼、金鑰、原始碼等)被意外地上傳到公開的程式碼倉庫或者其他公開可訪問的地方,從而被未授權的人獲取到。
dirsearch一掃,發現.git
,本題考察了git洩露,但是本題很簡單,直接訪問./git
就給了flag
但是一般不會這麼容易,補充一下之後的可能步驟
這裡需要藉助BugScanTeam的githack工具,給個地址,掃描命令如下,注意最後要加上./git
,推薦在kali linux上執行,然後就能在dist資料夾中看到抓下來的git了
python2 GitHack.py https://xxx/.git
在抓下來的網頁資料夾中執行一些git命令來得到更多原始碼資訊,如:
git log 檢視之前都進行了什麼操作
git diff xxxx xxxx 檢視版本內容的不同之處
web 8——SVN洩露
造成SVN原始碼漏洞的主要原因是管理員操作不規範,在釋出程式碼時未使用匯出
功能,而是直接複製程式碼資料夾到WEB伺服器上,導致.svn
被暴露於外網環境
dirsearch一掃,發現/.svn
,訪問該地址直接就能得到flag。
這題也是比較簡單,後續利用建議參考ctfhub的svn洩露靶機。
3.4 資料庫洩露
web 17——備份sql檔案洩露
dirsearch一掃,找到備份sql檔案,下載下來開啟找到flag
web 20——access資料庫洩露
用dirsearch
的遞迴掃描-r
,即當掃出一級目錄後會再在一級目錄後跑字典
python dirsearch.py -u http://xxxx/ -r
3.5 快取檔案洩露
在使用vim進行編輯時,會產生快取檔案,操作正常,則會刪除快取檔案,如果意外退出,快取檔案保留下來,這是時可以透過快取檔案來得到原檔案,以index.php
來說,第一次退出後,快取檔名為 index.php.swp
,第二次退出後,快取檔名為index.php.swo
,第三次退出後檔名為index.php.swn
web 9——vim快取洩露
這題直接嘗試訪問index.php.swp
即可,但是同樣有一個問題就是dirsearch掃不到這個檔案,因為dirsearch不掃描臨時檔案以加快掃描速度,且快取檔案洩露的可能性也比較低,因此本題也僅作為可參考的思路。
3.6 探針洩露
PHP探針是用來探測空間、伺服器執行狀況和PHP資訊的。探針可以實時檢視伺服器硬碟資源、記憶體佔用、網路卡流量、系統負載、伺服器時間等資訊,對開發具有重大幫助,但是如果在網站上線後未將探針刪除,就有可能導致資訊洩露。
web 16——探針洩露
dirsearch掃一下沒掃出來,不過有師傅說用御劍的字典可以
訪問/tz.php
找到phpinfo
找到flag
3.7 第三方元件預設配置
在開發過程中,引入一些第三方元件實現某些功能是一種高效可行的思路,但是一些開源的第三方元件可能存在一些已知的nday,如果不對這些部分加以限制,將導致嚴重的安全事故
web 14——editor預設配置
dirsearch一掃,發現/editor
目錄
根據提示小0day:某編輯器最新版預設配置下,如果目錄不存在,則會遍歷伺服器根目錄
,隨便點一個上傳檔案的功能,可以直接訪問檔案空間
發現flag的路徑,訪問該路徑獲得flag
4. 社會工程學
社會工程學是一種透過操控和影響人類行為的技術,用於獲取敏感資訊、訪問許可權或進行其他欺詐行為。它通常依賴於對人類心理的理解,利用信任、恐懼或好奇心等情感因素來欺騙目標,以達到攻擊者的目的。
web 12——敏感資訊公佈
在網站上發現了作者的聯絡方式,很多人都會使用姓名、電話、生日等作為自己的密碼,為弱口令登陸提供了可能
掃描一下目錄,發現了/admin
存在登入提示,使用者名稱為admin
,密碼為電話,成功登入
web 13——技術文件洩露
在現實情況中,我們可能透過某些方式獲得某些內部人員的信任,從而誘騙對方在向我們請求幫助時傳送技術文件,如果對方為刪除其中的敏感資訊,就為我們的滲透提供了可能
當然這題比較容易,文件直接放在了頁面中,直接登陸獲得flag
web 15——密碼邏輯脆弱
頁面中洩露了作者的qq郵箱
目錄掃描找到/admin
登陸介面,輸了一下qq郵箱,顯示密碼錯誤,看到下面有個忘記密碼功能,試一下
要求輸入所在地
看一眼他的QQ,是西安
5. 企業資產收集
在資訊打點的初期,我們會對企業資訊結構進行收集,比如說目標公司的主站域名、控股子公司的域名等等。為了獲得更多域名與ip段,我們會透過查詢dns的歷史記錄,可以得到詳細的域名解析與ip地址資訊,從而擴大收集的資訊。關於這部分更詳細的資訊可以參考紅隊從資產收集到打點
web 11——DNS歷史記錄查詢
本題模擬的實際上是域名的主動被動的收集,不過這題的域名已經失效了,就提供使用nslookup工具查詢的命令,也可以使用一些線上網站。
nslookup -query=any flag.ctfshow.com