針對於PHP代碼的開發的網站,最近在給客戶做網站安全檢測的同時,大大小小的都會存在網
站的後台管理頁面被繞過並直接登錄後台的漏洞,而且每個網站的後台被繞過的方式都不一樣,根
據eSafe白帽資安網滲透測試多年來經驗,來總結一下網站後台繞過的一些詳情,以及該如何去防範後台被
繞過,做好網站的安全部署。
後台驗證碼缺乏安全驗證
比如在axublog程序中,網站後台存在一個驗證管理員登錄的一個函數chkadcookie()。但是在網
站後台的ad/art.php中並沒有chkadcookie()此驗證函數,因而就造成了普通訪問條用戶可以越權
訪問。這種漏洞的原理也比較簡單,一般情況下是經驗不足的開發者漏掉了驗證函數。esafe安
全公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲透測試,安全服
務於一體的網絡安全服務提供商。
站後台的ad/art.php中並沒有chkadcookie()此驗證函數,因而就造成了普通訪問條用戶可以越權
訪問。這種漏洞的原理也比較簡單,一般情況下是經驗不足的開發者漏掉了驗證函數。esafe安
全公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲透測試,安全服
務於一體的網絡安全服務提供商。
後台驗證代碼沒有做到絕對的安全驗證
axublog後台驗證函數繞過
後台登錄的驗證方式
在axublog中的後台驗證函數是chkadcookie(),代碼如下圖所示:
通過對網站代碼的詳細安全檢測,發現了問題中只有$date我們是無法知道,而UA和
REMOTE_ADDR都是客戶端可控的驗證邏輯是如果在COOKIE中出現了在txtchkad.txt中的值,
那麼就認為是登錄的。這樣的驗證邏輯明顯存在很大的漏洞問題。
REMOTE_ADDR都是客戶端可控的驗證邏輯是如果在COOKIE中出現了在txtchkad.txt中的值,
那麼就認為是登錄的。這樣的驗證邏輯明顯存在很大的漏洞問題。
如何繞過後台驗證?
只需要將COOKIE中的chkad設置為_就可以繞過後台的登錄了。
網站安全之變量覆蓋漏洞詳情:
beescms的後台驗證函數繞過
後台驗證方式
檢查登錄的函數is_login()的代碼為如下圖所示:
上述的代碼中並沒有對$_POST使用fl_value()函數進行過濾,但又使用了extract()這樣的函數,
所以就可以通過發送POST參數覆蓋掉SEESION中的值,從而繞過驗證了。如何繞過後台驗證?
eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲透測試,
安全服務於一體的網絡安全服務提供商。
所以就可以通過發送POST參數覆蓋掉SEESION中的值,從而繞過驗證了。如何繞過後台驗證?
eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲透測試,
安全服務於一體的網絡安全服務提供商。
繞過方式很簡單,訪問隨便一個頁面,發送POST請求包如下:
index.php
POST:_SESSION[login_in]=1&_SESSION[admin]=1&_SESSION[login_time]=99999999999
此時就成功地創建了SESION變量,包括$SESSION[loginin]=1、$_SESSION[admin]=1、
SESSION[logintime]=99999999999。 之後訪問管理員頁面,就可以成功地登錄後台了。
SESSION[logintime]=99999999999。 之後訪問管理員頁面,就可以成功地登錄後台了。
針對於以上兩個繞過網站後台的漏洞,可以看出一個是驗證碼,一個是變量覆蓋漏洞,關於這
2個漏洞的修復方法,根據現有的代碼,進行安全過濾加強邏輯判斷,以及函數的賦值安全檢查。
2個漏洞的修復方法,根據現有的代碼,進行安全過濾加強邏輯判斷,以及函數的賦值安全檢查。