作者:
Yaseng
·
2013/08/19 11:26
0x00 前言
對於一個完善系統而言,無論是桌面還是web程式, 都會使用客戶端儲存資料如cookie,db檔案等。為了不讓外部獲取或者控制,系統會對資料進行私有加密 例如qq密碼,聊天記錄,web程式中使用者資訊等。而對於開源程式而言,演算法是公開的,對資料的加密只有依靠key來保護資料 ,一旦資料可控就可能造成某些安全問題,本文探討web開源程式中對私有資料的使程式碼的安全性問題。
0x01 直搗黃龍:key可知
某些加密key可推算抑或可爆破情況下,私有資料資料完全可控,根據實際環境sql注入,xss,越權等攻擊。
例如:
WooYun: Espcms v5.6 暴力注入
WooYun: dedecms sql injection
PHPCMS V9 sys_auth()設計缺陷導致多個SQL隱碼攻擊漏洞
0x02 隔山打牛:key不可知
為了資料和程式碼的統一,一套系統中資料的加密解密key一般是通用的,我們可以利用程式的某些功能來生成加密之後的資料,從而控制程式的私有資料,進行攻擊。
類似的案例如:
WooYun: PHPCMS最新版(V9)SQL隱碼攻擊一枚
WooYun: espcms 二次注入一枚
WooYun: Espcms加密函式缺陷導致getshell
0x03 總結
當變數能控時,一切資料都是危險的,程式除了對輸入輸出的資料做嚴格過濾之外,對內部私有資料也要相應的過濾。
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!