何金棟
(國網福建省電力有限公司電力科學研究院,福建福州,350007)
PHP是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,主要適用于Web開發領域。PHPCMS是國內領先的網站信息發布管理系統,同時也是開源的PHP開發架構。PHPCMS由內容模型、廣告、郵件訂閱、短消息、自定義表單、全站搜索等二十多個功能模塊組成,內置新聞、圖片、下載、信息、產品五大內容模型。PHPCMS采用模塊化開發,支持自定義內容模型和會員模型,并且可以自定義字段。該軟件采用模塊化開發,支持多種分類方式,使用它可方便實現個性化網站的設計、開發與維護。它支持眾多的程序組合,可輕松實現網站平臺遷移,并可廣泛滿足各種規模的網站需求,可靠性高。PHPCMS采用PHP5+MYSQL做為技術基礎進行開發。采用OOP(面向對象)方式進行基礎運行框架搭建。
SQL注入攻擊指的是通過構建特殊的輸入作為參數傳入Web應用程序,而這些輸入大都是SQL語法里的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數據,致使非法數據侵入系統。根據相關技術原理,SQL注入可以分為平臺層注入和代碼層注入。前者由不安全的數據庫配置或數據庫平臺的漏洞所致;后者主要是由于程序員對輸入未進行細致地過濾,從而執行了非法的數據查詢。基于此,SQL注入的產生原因通常表現在以下幾方面:(1)不當的類型處理(2)不安全的數據庫配置(3)不合理的查詢集處理(4)不當的錯誤處理(5)轉義字符處理不合適(6)多個提交處理不當。
在某些web頁面表單中,用戶輸入的內容直接用來構造動態SQL命令,或者作為存儲過程的輸入參數,這些表單特別容易受到SQL注入的攻擊。而許多網站程序在編寫時,沒有對用戶輸入的合法性進行判斷或者程序中本身的變量處理不當,使應用程序存在安全隱患。這樣,用戶就可以提交一段數據庫查詢的代碼,根據程序返回的結果,獲得一些敏感的信息或者控制整個服務器,于是SQL注入就被惡意利用了。網站程序員在寫代碼的時候,沒有對用戶提交的數據參數進行嚴格驗證。導致惡意用戶可以提交非法Sql語句查詢數據庫內容,竊取當前數據庫用戶權限。
該工具針對基于PHP的Web應用SQL注入漏洞研發,通過深入逆向分析SQL漏洞的形成原因編寫了此漏洞檢測系統。通過建立檢測語句庫,快速檢測SQL注入點,提交特殊的數據庫查詢代碼進行驗證,并對SQL漏洞進行消除和加固防護,高效防護公司web應用安全穩定運行。
基于PHP的Web應用SQL注入漏洞檢測系統包括以下四個功能模塊。
(1)目標URL地址模塊:自主研發PHPCMSV9SQL注入漏洞利用工具可輸入網站URL地址到目標URL地址輸入框。
(2)管理員信息回顯模塊:自主研發PHPCMSV9SQL注入漏洞利用工具可通過SQL注入漏洞獲取系統管理員帳號信息,回顯到該模塊。
(3)密碼信息回顯模塊:自主研發PHPCMSV9SQL注入漏洞利用工具可通過SQL注入漏洞獲取系統管理員密碼信息,回顯到該模塊。
(4)密碼Salt信息回顯模塊:自主研發PHPCMSV9SQL注入漏洞利用工具可通過SQL注入漏洞獲取系統管理員登錄的密碼Salt信息,回顯到該模塊。
該款基于PHP的Web應用SQL注入漏洞檢測系統概要設計圖如圖1所示。

圖1 設計圖

函數詳細說明:
(1)static void Main();
自主研發PHPCMSV9SQL注入漏洞利用工具程序主函數、入口點。
(2)private void button1_Click();
自主研發PHPCMSV9SQL注入漏洞利用工具按鈕功能,進行漏洞檢測與利用。
(3)public string getexp(string poc);
自主研發PHPCMSV9SQL注入漏洞利用工具功能接口,利用POC獲取相關信息。
通過自主研發PHPCMSV9SQL注入漏洞利用工具對目標網站http://192.168.XX.XX/2/進行掃描為例。
(1)雙擊“phpcms_v9_Sqli_EXP.exe”,網址處輸入網站地址http://192.168.XX.XX/2/,如下圖2所示。
(2)點擊“獲取驗證碼”按鈕,在“填入驗證碼”模塊處輸入驗證碼,點擊開始注入,工具會提示是否存在SQL注入漏洞,在回顯的文本框中返回管理員帳號信息、密碼信息、密碼Salt信息,如圖3所示。

圖2

圖3
(3)如果填入驗證碼信息錯誤,工具會提示驗證碼信息錯誤,在回顯的文本框中不會返回管理員帳號信息、密碼信息、密碼Salt信息,如圖4所示。

圖4
該安全漏洞檢測系統主要過對基于PHP架構的WEB應用進行深度遍歷,針對典型的SQL注入漏洞進行檢測,分析驗證注入點的危害程度,模擬黑客使用的漏洞發現技術和攻擊手段,獲得敏感信息或者管理員權限,有利于國網福建省電力有限公司制定有效的Web應用安全加固措施,有效提高公司重要網站和信息系統的防御能力。通過該工具的安全檢測和滲透測試,有效提高國網福建省電力有限公司網絡與信息系統的安全檢測能力,完善公司信息安全防御體系,保障公司網絡與信息系統安全穩定運行,全面提升公司Web應用的主動防御能力。
[1]劉凱凌. 基于PHP數據加密安全性探討[J]. 電腦編程技巧與維護. 2017(04).
[2]胡華海,王新宇. 深入研究PHP程序開發中存在的漏洞[J].科技風.2016(12).
[3]聶慶鵬. 一種PHP程序源代碼加密保護機制的設計[J]. 信息系統工程. 2017(06).