天天看點

移動端APP漏洞滲透測試安全檢測實施方案

許多客戶在網站,以及APP上線的同時,都會提前的對網站進行全面的滲透測試以及安全檢測,提前檢測出存在的網站漏洞,以免後期網站發展過程中出現重大的經濟損失,前段時間有客戶找到我們做滲透測試服務,在此我們将把對客戶的整個滲透測試過程以及安全測試,發現的漏洞都記錄下來,分享給大家,也希望大家更深的去了解滲透測試。

移動端APP漏洞滲透測試安全檢測實施方案

在對客戶的網站進行服務的同時,我們首先要了解分析資料包以及網站的各項功能,有助于我們在滲透測試中發現漏洞,修複漏洞,綜合客戶網站的架構,規模,以及資料庫類型,使用的伺服器系統,是windows還是linux,前期都要收集資訊,做到知彼知己百戰不殆。隻有真正的了解了網站,才能一層一層的找出漏洞所在。網站使用的是php語言開發,采用是mysql資料庫,客戶伺服器用的是linux centos系統,用phpstudy一鍵環境搭建,PHP的版本是5.5,mysql資料庫版本是5.6.客戶網站是一個平台,采用會員登入,功能基本都是一些互動性的,會員資料修改,銀行卡添加,充值與提現,線上回報等等。

移動端APP漏洞滲透測試安全檢測實施方案

下面開始我們的整個滲透測試過程,首先客戶授權我們進行網站安全測試,我們才能放開手的去幹,首先檢測的是網站是否存在SQL注入漏洞,我們SINE安全在檢測網站是否有sql注入的時候都會配合檢視mysql資料庫的日志來查詢我們送出的SQL語句是否成功的執行,那麼很多人會問該如何開啟資料庫的日志,如何檢視呢?首先連接配接linux伺服器的SSH端口,利用root的賬号密碼進伺服器,打開mysql的配置檔案mysqld.cnf編輯general_log_file=(log日志的位址),general_log=1,在伺服器裡輸入tail -f (log位址),來檢視實時的資料庫語句執行日志。當我們SINE安全技術在測試SQL注入漏洞的時候,就會實時的看到是否有惡意的SQL語句執行成功,如果有那麼資料庫日志就會出現錯誤提示,在滲透測試中是很友善的,也更利于查找漏洞。

移動端APP漏洞滲透測試安全檢測實施方案

這裡不詳細的分析代碼了,我們在測試中發現平台的背景管理頁面存在SQL注入漏洞,當管理者登入背景的時候我們看到guanlilogin.php裡POST到guanlicheck.php來對管理者的賬号密碼進行驗證,在驗證的過程中guanlicheck.php并沒有對傳入過來的參數進行安全效驗,導緻SQL注入漏洞的産生,具體代碼如下

移動端APP漏洞滲透測試安全檢測實施方案

代碼裡的getenv參數是擷取前端使用者的https頭資訊,通過資料比對,如果頭資訊大那麼久傳回0值然後再将IP指派進去,通俗來講就是沒有任何的安全效驗與攔截,直接将變量的IP帶入到mysql據庫。是以造成了SQL注入漏洞的産生。那麼滲透測試中發現SQL注入漏洞就是高危漏洞,帶來的危害較大,可以篡改資料,修改資料庫,可以将管理者的密碼重置,或者是擷取所有的使用者賬号密碼等資訊。發生使用者資訊洩露,利用資料庫的權限修改管理者密碼登入背景進行下一步的提權操作,上傳webshell,控制網站代碼。

移動端APP漏洞滲透測試安全檢測實施方案

接下來還得檢測網站的各項功能以及APP功能是否存在邏輯漏洞,越權漏洞,水準垂直等等,我們SINE安全技術詳細的對每一個功能都測試很多遍,一次,兩次,多次的反複進行,在使用者重置密碼功能這裡發現有漏洞,正常功能代碼設計是這樣的流程,首先會判斷使用者的賬号是否存在,以及下一步使用者的手機号碼是否與資料庫裡的手機号一緻,這裡簡單的做了一下安全效驗,但是在擷取手機号驗證碼的時候并沒有做安全效驗,導緻可以修改post資料包,将手機号碼修改為任意手機号來擷取驗證碼,利用驗證碼來修改重置密碼。

移動端APP漏洞滲透測試安全檢測實施方案

如何修複滲透測試中的SQL注入漏洞呢?

在對前端輸入過來的值進行安全判斷,确認變量值是否存在,如果存在将不會覆寫,杜絕變量覆寫導緻摻入惡意構造的sql注入語句代碼在GET請求,以及POST請求裡,過濾非法字元的輸入。 '分号過濾 --過濾 %20特殊字元過濾,單引号過濾,%百分号, and過濾,tab鍵值等的的安全過濾。如果對代碼不是太懂的話,也可以找專業網站安全公司來處理。邏輯漏洞的修複辦法,對密碼找回功能頁面進行安全效驗,檢查所屬賬号的身份是否是目前的手機号,如果不是不能發送驗證碼,其實就是代碼功能的邏輯設計出了問題,邏輯理順清楚了,就很容易的修複漏洞,也希望我們SINE安全分享的這次滲透測試過程能讓更多的人了解滲透測試,安全防患于未然。