織夢dedecms,在整個互聯網中許多企業網站,個人網站,優化網站都在使用dede作
為整個網站的開發架構,dedecms採用php+mysql數據庫的架構來承載整個網站的運行與用
戶的訪問,首頁以及欄目頁生成html靜態化,大大的加快的網站訪問速度,以及搜索引擎的友
好度,利於百度蜘蛛的抓取,深受廣大站長以及網站運營者的喜歡。最近我們發現dedecms
漏洞,存在高危的parse_str函數sql注入漏洞。
關於該織夢漏洞的詳情,我們一步一步來剖析:
首先來介紹下parse_str函數的機制與作用是什麼,簡單通俗來講就是解析網站傳過來的字符
串,將字符串的值轉變成一個固有的變量值,這個函數在傳入進來,進行轉變的時候並不會
驗證網站當前變量的值是否含有,最直接的就是導致當前的變量值會被代碼裡的值給覆蓋掉。
串,將字符串的值轉變成一個固有的變量值,這個函數在傳入進來,進行轉變的時候並不會
驗證網站當前變量的值是否含有,最直接的就是導致當前的變量值會被代碼裡的值給覆蓋掉。
針對於dedecms存在的sql注入漏洞,我們來分析一下該漏洞是如何產生的,我們該如何去更
好的利用這個織夢漏洞。在dedecms最新版裡的buy_action.php代碼裡,存在網站漏洞,
dedecms針對於該文件之前更新並修復過網站漏洞,代碼裡增加了許多函數的安全過濾,但
是在過濾的同時編碼函數進行解碼的時候沒有嚴格的過濾掉傳入進來的值,導致可以執行sql
語句查詢dede的數據庫內容,包括可以查詢網站的管理員賬號與密碼。
好的利用這個織夢漏洞。在dedecms最新版裡的buy_action.php代碼裡,存在網站漏洞,
dedecms針對於該文件之前更新並修復過網站漏洞,代碼裡增加了許多函數的安全過濾,但
是在過濾的同時編碼函數進行解碼的時候沒有嚴格的過濾掉傳入進來的值,導致可以執行sql
語句查詢dede的數據庫內容,包括可以查詢網站的管理員賬號與密碼。
我們對該代碼進行人工的安全檢測發現,在第4,第6行裡調用了一個mchStrCode函數機制,
這個函數我來簡單跟大家講解一下原理是什麼,該函數是將前端網站用戶提交過來的數據進
行解碼,然後通過parse_str進行賦值變量,變量的同時不會判斷當前的值是否存在,而導致
可以提交惡意的sql攻擊代碼進來,拼接進行sql注入攻擊。
這個函數我來簡單跟大家講解一下原理是什麼,該函數是將前端網站用戶提交過來的數據進
行解碼,然後通過parse_str進行賦值變量,變量的同時不會判斷當前的值是否存在,而導致
可以提交惡意的sql攻擊代碼進來,拼接進行sql注入攻擊。
整個網站漏洞的產生以及dedecms漏洞利用很簡單,但是在實際漏洞利用過程中我們發現這
個還是挺難實現的,最關鍵的還是mchStrCode的函數在整個網站編碼,控制前端用戶提交過
來的值中的參數。在dedecms的data目錄下的common.inc.php這個代碼裡已經對get、post、
cookies提交的方式進行了安全過濾,限制了非法字符的輸入,包括%20,空格,逗號,都會
被攔截,那麼我們在使用這個織夢漏洞的時候,要對攔截的字符進行編碼加密繞過攔截,通
過編碼讓request進行解析,直接解析成我們構造的sql注入語句即可。
個還是挺難實現的,最關鍵的還是mchStrCode的函數在整個網站編碼,控制前端用戶提交過
來的值中的參數。在dedecms的data目錄下的common.inc.php這個代碼裡已經對get、post、
cookies提交的方式進行了安全過濾,限制了非法字符的輸入,包括%20,空格,逗號,都會
被攔截,那麼我們在使用這個織夢漏洞的時候,要對攔截的字符進行編碼加密繞過攔截,通
過編碼讓request進行解析,直接解析成我們構造的sql注入語句即可。
dede漏洞利用如下圖所示:
每個網站,每個訪客的cookie跟user-agent都不一樣,要根據實際的值進行偽造與
加密生成。
dedecms網站漏洞修復建議:
關於這次的dedecms parse_str函數SQL注入漏洞,需要修復的就是變量的覆蓋修復,在對前
端輸入過來的值進行安全判斷,確認變量值是否存在,如果存在將不會覆蓋,杜絕變量覆蓋導
致摻入惡意構造的sql注入語句代碼。如果對網站漏洞修復,以及網站安全加固不懂的話,也可
以找專業的網站安全公司,國內eSafe白帽資安網公司,綠盟安全公司,啟明星辰安全公司,都是比較
不錯的,也可以通過dedecms後台升級最新版本,目前官方沒有修復。
端輸入過來的值進行安全判斷,確認變量值是否存在,如果存在將不會覆蓋,杜絕變量覆蓋導
致摻入惡意構造的sql注入語句代碼。如果對網站漏洞修復,以及網站安全加固不懂的話,也可
以找專業的網站安全公司,國內eSafe白帽資安網公司,綠盟安全公司,啟明星辰安全公司,都是比較
不錯的,也可以通過dedecms後台升級最新版本,目前官方沒有修復。