Gxlcms 小說系統,是目前站長應用較多的一個CMS系統,PHP語言開發,
mysql數據庫架構,性能強大,在網站優化方面做的還是比較不錯的,前端時間某
一客戶網站被駭,導致網站被跳轉到賭博網站上去,委託我們對網站進行詳細的網
站安全檢測,以及代碼安全審計。
Gxlcms 採用的是thinkphp的一個開放性架構,之前我們也對thinkphp的代碼進行
安全檢測過,所以這次的網站安全檢測相對比較容易一些,但還是要仔細的對每個
代碼,每個文件進行詳細的安全檢測。我們現在下載客戶的網站程序源碼,先大體
的審查一些整個網站的功能,看下網站的留言板功能,文件上傳、評論、會員註冊
等比較重要的一些功能頁面,然後再去針對特定功能進行網站的安全檢測,這樣整
體的安全檢測效率會更高一些。
我們直接定位吧,少走些彎路,在前端頁面SearchAction.class.php裡發現了漏洞
,如下圖所示:
可以看到以上的函數strip_tags和htmlspecialchars,一個是html標籤的安全過濾
,一個是HTML注入過濾。這裡想講的是因為我這裡測試的是注入,不是xss,因此
這些過濾條件好像無關緊要,但是tp框架自帶的單引號轉義,我們要繞過去。esafe
安全公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,
滲透測試,安全服務於一體的網絡安全服務提供商。
然後發現這個函數還調用了評論,那麼我們抓包來評論一下,通過抓包修改參數,
我們發現是一個盲注,我們可以直接獲取管理員的密碼。
在進行詳細的網站安全檢測時,我們在網站後台發現了getshell漏洞。
在網站後台的附件設置裡,直接可以更改上傳文件的類型,但是當我加上一個php
後,竟然沒了,彷彿就是preg_replace搞得鬼,然後去源碼看了下,才發現了一個
網站漏洞,eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測、
網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
$upload_class = str_replace(array("php", "asp", "apsx", "txt", "asax",
"ascx", "cdx", "cer", "cgi", "jsp", "html", "html", "htm", ",,"), "",
strtolower(C("upload_class")));1$upload_class = str_replace(array("php",
"asp", "apsx", "txt", "asax", "ascx", "cdx", "cer", "cgi", "jsp",
"html", "html", "htm", ",,"), "", strtolower(C("upload_class")));
將這些字符串進行替換處理,多少次注入繞過,漏洞代碼就是這麼寫的。
這裡我添加的是pphphp,由於會替換php為空,這裡會將中間的第一個php刪掉,最
後留下php,即可以上傳php大馬並獲取網站的權限。