案例分享 squid反向代理系統,手機APP,執行遠端代碼的漏洞。
以執行遠端代碼的漏洞,很多客戶找我們esafe安全做滲透測試服務的同時,我們會先對客戶的
網站進行資訊搜集工作,包括功能變數名稱,二級功能變數名稱收集,網站使用的反向代理系統,網站程式開發
語言,是否使用開源的代碼,以及網站後臺路徑收集,都在前期滲透中需要做的。
前段時間某一個客戶網站使用的就是squid反向代理系統,客戶APP,以及網站後臺都被攻擊者
篡改,被惡意提現,會員注單篡改,銀行卡號篡改,充值通道篡改,給客戶帶來了很大的經濟
損失,通過老客戶介紹找到我們esafe安全,我們對該情況進行詳細的瞭解,針對實際情況,定
制了詳細的滲透測試服務方案。關於squid系統漏洞的檢測,我們來詳細的介紹一下:
squid是開源的一套網站反向代理系統,可以對網站進行加速,緩存,有些網站訪問較慢,就會
在國內的伺服器節點做反向代理,加速網站的快速訪問,將圖片,以及JS檔,css檔進行緩
存,還有一個好處通過squid可以隱藏網站的真實IP。squid支援很多種TCP協定,包括80埠的
http協定,FTP的21埠協議,HTTPS433埠的協議,都可以進行反向代理,簡單易用受到很
多開發者的喜歡。
squid漏洞產生的原因在於緩衝區溢位導致可以執行遠端代碼,當反向代理收到cachemgr的請求
時候,會使用parseheaders這個函數介面,將請求來的參數進行解析操作,並賦值於後端去,正
常應該對請求的參數進行字數限制,而該請求並沒有對字數多少進行限制,導致可以寫入base64
代碼進行資料溢出,當長度超過squid的安全限制後,就會執行惡意的代碼。漏洞的利用方式是,
構造惡意的代碼,使用FTP協定的方式進行請求 request-uri,將base64代碼加密,提交到伺服器
中去,就可以達到滲透伺服器的許可權。代碼如下:
當伺服器執行惡意程式碼後,就會產生一個webshell到網站的根目錄下,從而對網站進行控制,該
webshell也叫網站木馬後門,相當於網站的管理員許可權,可以寫入檔,修改檔,修改資料庫
等操作,通過對客戶網站的滲透測試發現,導致被篡改的問題根源,是squid系統存在漏洞,隨即
我們esafe安全對客戶的squid漏洞進行了修復,對base64代碼的長度進行了限制,防止溢出,並
對所有的請求包括get,post.cookies的請求都進行了字元長度限制。