1. 程式人生 > 實用技巧 >CTF-i春秋-Web-Upload-線上選拔賽-SVN 原始碼洩露漏洞

CTF-i春秋-Web-Upload-線上選拔賽-SVN 原始碼洩露漏洞

2020.09.21

經驗教訓

  1. python中,post的內容是json格式;
  2. SVN 原始碼洩露漏洞,就是有個.svn目錄,.svn/wc.db,大量使用者資料,.svn/entries,能遍歷網站目錄,隱藏檔案.svn/.svn-base原始碼檔案副本
    • 獲取網站目錄結構,可以直接在存在.svn的目錄下加/.svn/entries來獲取;
    • 獲取原始碼內容。如獲取conf.php檔案的內容可以在目錄下加上/.svn/text-base/conf.php.svn-base來進行下載。
  3. 原始碼漏洞掃描可以發現上邊的svn原始碼洩漏漏洞,還有其他原始碼漏洞可以參考這裡,有什麼好的漏洞掃描器??
  4. php的conf檔案中是有一個正則的字尾名限制的,只要符合都可以被當做php檔案執行。符合的字尾包括 php、php3、php4、php5、phtml、pht 等。
  5. 檔案上傳主要抓包修改三個地方,兩個content-type,一個檔案字尾名。
  6. 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

  1. 意思很明確,post訊息頭中的東西ZmxhZ19pc19oZXJlOiBNVEkwTmpNeA==
    ,base64解碼後為flag_is_here: MTI0NjMx,後半截還能繼續base64,124631
  2. 按照要求post了,但是沒啥結果,所以仔細一看,我發現每一次訊息頭中的數字會變化
  3. 因為他說要快一點,那麼寫個指令碼試試
#!/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)
  1. 得到結果Path:3712901a08bb58557943ca31f3487b7d,這看起來像是一個md5編碼,解碼試試?
  2. 解碼結果是98123hasd,訪問發現404;
  3. 然後試了試沒解碼之前的,成功進入……