數(shù)商云價(jià)格長(zhǎng)治seo顧問
一、源碼(備份文件)泄露
1、git泄露
Git是一個(gè)開源的分布式版本控制系統(tǒng),在執(zhí)行git init
初始化目錄的時(shí)候,會(huì)在當(dāng)前目錄下自動(dòng)創(chuàng)建一個(gè).git
目錄,用來(lái)記錄代碼的變更記錄等。發(fā)布代碼的時(shí)候,如果沒有把.git
這個(gè)目錄刪除,就直接發(fā)布到了服務(wù)器上,攻擊者就可以通過(guò)它來(lái)恢復(fù)源代碼
hook:存放一些sheel的地方。
info:存放倉(cāng)庫(kù)的信息
objects:存放所有g(shù)it對(duì)象的地方
refs:存放提交hash的地方
config:github的配置信息
description:倉(cāng)庫(kù)的描述信息,主要給gitweb等git托管系統(tǒng)使用
HEAD:映射到ref引用,能夠找到下一次commit的前一次哈希值
git泄露可以使用GitHack利用工具進(jìn)行利用,工具地址https://github.com/zwshi/GitHack.git
使用方法:python GitHack.py http://www.example.com/.git/
還原后的文件在 dist/ 目錄下
例題1:CTFHub-----log
1)掃描發(fā)現(xiàn) .git 泄露
2)python GitHack.py 題目url/.git/
將源碼clone到本地,然后進(jìn)入該目錄
3)執(zhí)行 git log 查看歷史記錄
4)git diff提交的記錄碼
注:
查看歷史記錄:git log
對(duì)比兩次提交:git diff
切換版本:git reset
例題2:CTFHub----stash
同樣先使用GitHack將git clone到本地,然后查看
去查了一下資料:
git stash
能夠?qū)⑺形刺峤坏男薷?#xff08;工作區(qū)和暫存區(qū))保存至堆棧中,用于后續(xù)恢復(fù)當(dāng)前工作目錄。
查看當(dāng)前堆棧中保存的未提交的修改 使用git stash list
可看到add flag這個(gè)工作也被保存在了堆棧中,所以只需要知道如何恢復(fù)就可以了
使用git stash apply
恢復(fù)了一個(gè)txt文件,查看得到flag
例題3:CTFHub----index
這道題直接用githack工具clone到源碼就得到flag了
但參考了一下大佬的wp,發(fā)現(xiàn)考點(diǎn)其實(shí)是git的index暫存區(qū)文件
1)使用git ls-files
查看暫存區(qū)里面有哪些文件
2)需要查看27741192706094.txt文件對(duì)應(yīng)的Blob對(duì)象,如下:
git ls-files -s -- 27741192706094.txt`或者直接 `git ls-files -s
3)然后通過(guò)Blob對(duì)象,查詢27741192706094.txt.txt
里面的內(nèi)容:git cat-file -p 441a2
修復(fù)建議
刪除.git目錄或者修改中間件配置進(jìn)行對(duì).git隱藏文件夾的訪問。
2、SVN泄露
使用svn版本控制系統(tǒng)時(shí),由于錯(cuò)誤操作將.svn文件暴露在外網(wǎng)環(huán)境中,即可利用該文件還原出服務(wù)器源碼、SVN服務(wù)器賬號(hào)密碼等信息。
當(dāng)svn使用了checkout命令后就會(huì)生成.svn文件,里面存儲(chǔ)著備份信息。
svn信息泄露漏洞主要利用了里面的entris文件,通過(guò).svn/entris
可以下載里面的所有代碼,但是只能作用在svn1.6之前的版本;在svn1.7后的版本引入一個(gè)名為wc.db的數(shù)據(jù)庫(kù)數(shù)據(jù)存放文件來(lái)管理文件,通過(guò)訪問.svn/wc.db
可以下載到本地。
利用工具:dvcs-ripper 地址:https://github.com/kost/dvcs-ripper (需要有svn和perl環(huán)境)
例題:ctfhub-svn
這里是svn1.7之后的版本,我們下載wc.db文件,/.svn/wc.db
使用SQLiteStudio打開,發(fā)現(xiàn)flag_1831822206.txt
文件,訪問之
我們使用dvcs-ripper工具:https://github.com/kost/dvcs-ripper
perl rip-svn.pl -u http://challenge-8cad6507cc3f2aca.sandbox.ctfhub.com:10080/.svn/
我們需要使用ls -al
才可以看到隱藏的文件夾.svn
因?yàn)橹拔覀円呀?jīng)嘗試了訪問wc.db
數(shù)據(jù)庫(kù)里面的文件了,但是發(fā)現(xiàn)flag.txt
已經(jīng)被刪除了,所以我們到緩存文件夾pristine文件夾里面去尋找flag,在8f文件夾里面獲取到flag
3、hg源碼泄露
Mercurial 是一種輕量級(jí)分布式版本控制系統(tǒng),hg在初始化代碼庫(kù)的時(shí)候,會(huì)在當(dāng)前目錄下面產(chǎn)生一個(gè).hg的隱藏文件
eg: http://www.example.com/.hg/
利用工具:dvcs-ripper:https://github.com/kost/dvcs-ripper
使用:
rip-hg.pl -v -u http://www.example.com/.hg/
如果沒有設(shè)置系統(tǒng)變量,需要
perl rip-hg.pl -u http://www.example.com/.hg/
查看隱藏文件:ls -al
例題—ctfhub-hg
直接用工具即可
4、DS_Store 文件泄露
.DS_Store 是 Mac OS 保存文件夾的自定義屬性的隱藏文件。通過(guò).DS_Store可以知道這個(gè)目錄里面所有文件的清單。
eg: http://www.example.com/.ds_store/
利用工具:
ds_store_exp: https://github.com/lijiejie/ds_store_exp
使用:
查看隱藏文件:`ls -al`例題---ctfhub-hg直接用工具即可##### 4、DS_Store 文件泄露.DS_Store 是 Mac OS 保存文件夾的自定義屬性的隱藏文件。通過(guò).DS_Store可以知道這個(gè)目錄里面所有文件的清單。eg: `http://www.example.com/.ds_store/`利用工具:ds_store_exp: `https://github.com/lijiejie/ds_store_exp`使用:
5、CVS泄露
CVS是一個(gè)C/S系統(tǒng),多個(gè)開發(fā)人員通過(guò)一個(gè)中心版本控制系統(tǒng)來(lái)記錄文件版本,從而達(dá)到保證文件同步的目的。主要是針對(duì) CVS/Root以及CVS/Entries目錄,直接就可以看到泄露的信息。
eg:
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的結(jié)構(gòu)
利用工具:dvcs-ripper: https://github.com/kost/dvcs-ripper.git
使用:
rip-cvs.pl -v -u http://www.example.com/CVS/
6、GitHub源碼泄漏
很多人喜歡把自己的代碼上傳到平臺(tái)托管。通過(guò)關(guān)鍵詞進(jìn)行搜索,可以找到關(guān)于目標(biāo)站點(diǎn)的敏感信息,甚至可以下載網(wǎng)站源碼。
7、網(wǎng)站備份文件
常見的網(wǎng)站源碼備份文件后綴
- tar
- tar.gz
- zip
- rar
常見的網(wǎng)站源碼備份文件名
- web
- website
- backup
- back
- www
- wwwroot
- temp
也可以直接用御劍掃描后臺(tái)
8、vim緩存
vim會(huì)自動(dòng)生成的備份文件以及臨時(shí)文件
臨時(shí)文件是在編輯文本時(shí)就會(huì)創(chuàng)建的文件,如果程序正常退出,臨時(shí)文件自動(dòng)刪除,如果意外退出就會(huì)保留,文件名為.filename.swp
,(第一次產(chǎn)生的交換文件名為“.filename.txt.swp
”;再次意外退出后,將會(huì)產(chǎn)生名為.filename.txt.swo
的交換文件;而第三次產(chǎn)生的交換文件則為.filename.txt.swn
)
例題:CTFHub—vim緩存
二、中間件等其他信息泄露
1、phpinfo
有些網(wǎng)站可能未關(guān)閉調(diào)試功能,存在調(diào)試頁(yè)面,比如訪問phpinfo頁(yè)面
phpinfo去過(guò)能被外部用戶訪問,可能會(huì)造成的危害有:
泄露網(wǎng)站真實(shí)ip
網(wǎng)站絕對(duì)路徑泄漏或日志文件路徑泄露,可以寫入shell
泄露一些特殊的應(yīng)用信息和服務(wù)
一些敏感配置,比如禁用的函數(shù)
php版本信息
2、Apache-tomcat樣例文件泄露
apache 的一些樣例文件沒有刪除,可能存在cookie、session偽造,進(jìn)行后臺(tái)登錄操作。常見的路徑有:
http://xxx.com/examples/servlets/servlet/CookieExample
http://xxx.com/examples/servlets/servlet/RequestHeaderExample
http://xxx.com/examples/jsp/snp/snoop.jsp
http://xxx.com/examples/async/async1
例:https://blog.csdn.net/alex_bean/article/details/87854752
3、WEB-INF/web.xml 泄露
WEB-INF
是Java的WEB應(yīng)用的安全目錄,如果想在頁(yè)面中直接訪問其中的文件,必須通過(guò)web.xml文件對(duì)要訪問的文件進(jìn)行相應(yīng)映射才能訪問。
WEB-INF
主要包含一下文件或目錄:
WEB-INF/web.xml : Web應(yīng)用程序配置文件, 描述了servlet和其他的應(yīng)用組件配置及命名規(guī)則.
WEB-INF/database.properties : 數(shù)據(jù)庫(kù)配置文件
WEB-INF/classes/ : 一般用來(lái)存放Java類文件(.class)
WEB-INF/lib/ : 用來(lái)存放打包好的庫(kù)(.jar)
WEB-INF/src/ : 用來(lái)放源代碼(.asp和.php等)
通過(guò)找到 web.xml 文件,推斷 class 文件的路徑,最后直接 class 文件,再通過(guò)反編譯 class 文件,得到網(wǎng)站源碼。
4、tomcat
tomcat 后綴改成大寫,會(huì)顯示源碼
只要把jsp文件后綴名改為大寫就可以(老版本)
個(gè)人筆記,可能有遺漏,后續(xù)補(bǔ)充…