CTF-i春秋-Web-Upload-線上選拔賽-SVN 原始碼洩露漏洞
阿新 • • 發佈:2020-09-21
2020.09.21
經驗教訓
- python中,post的內容是json格式;
- SVN 原始碼洩露漏洞,就是有個
.svn
目錄,.svn/wc.db
,大量使用者資料,.svn/entries
,能遍歷網站目錄,隱藏檔案.svn/.svn-base
原始碼檔案副本- 獲取網站目錄結構,可以直接在存在.svn的目錄下加/.svn/entries來獲取;
- 獲取原始碼內容。如獲取conf.php檔案的內容可以在目錄下加上/.svn/text-base/conf.php.svn-base來進行下載。
- 原始碼漏洞掃描可以發現上邊的svn原始碼洩漏漏洞,還有其他原始碼漏洞可以參考這裡,有什麼好的漏洞掃描器??
- php的conf檔案中是有一個正則的字尾名限制的,只要符合都可以被當做php檔案執行。符合的字尾包括 php、php3、php4、php5、phtml、pht 等。
- 檔案上傳主要抓包修改三個地方,兩個content-type,一個檔案字尾名。
- python中,引入多執行緒的檔案頭是
from multiprocessing.dummy import Pool as ThreadPool
,基本操作是poolList = getPoolList() pool = ThreadPool() pool.map(checkMd5,poolList) pool.close() pool.join()
upload
https://www.ichunqiu.com/battalion
- 意思很明確,post訊息頭中的東西
ZmxhZ19pc19oZXJlOiBNVEkwTmpNeA==
flag_is_here: MTI0NjMx
,後半截還能繼續base64,124631
- 按照要求post了,但是沒啥結果,所以仔細一看,我發現每一次訊息頭中的數字會變化
- 因為他說要快一點,那麼寫個指令碼試試
#!/usr/bin/env python 3.8 # -*- encoding: utf-8 -*- #fileName : decry.py #createTime: 2020/09/21 09:52:41 #author : 喬悟空 #purpose : 此指令碼用於向特定網站快速傳送post請求 import base64 import requests url = "http://d9ee784d8d8e422295f9736111306dc1b68a202e84904630.changame.ichunqiu.com/" session = requests.session() res = session.get(url).headers['flag'] print(res) res = base64.b64decode(res).decode().split(': ')[1] print(res) res = base64.b64decode(res).decode() print(res) res = session.post(url,data={'ichunqiu':res}).text print(res)
- 得到結果
Path:3712901a08bb58557943ca31f3487b7d
,這看起來像是一個md5編碼,解碼試試?
- 解碼結果是
98123hasd
,訪問發現404;
- 然後試了試沒解碼之前的,成功進入……