許多棋牌遊戲,以及博彩平台都採用JAVA 架構,包括struts、Spring、
Hibernate,以及J2EE、JSF等等的框架,依托於Weblogic、 Tomcat環境下,java
開發的代碼,高效率的安全運轉,數據千萬級的並發,得到BC平台,博彩網站,
金融,借貸平台,棋牌遊戲平台運營者的青睞。
eSafe白帽資安網根據客戶的要求,對該旗下的java代碼安全進行網站安全檢測,以及網
站漏洞檢測,等全方位的安全檢測。
我們來看下java根目錄下的web.xml文件進行查看,如下圖:
關鍵的過濾器就是這個,裡面有個excludes,代碼不分析了,這裡就是說
excludes裡面的這些文件或者目錄下的文件訪問是不用驗證權限的。剩下的大部
分都是sevlet,再仔細的安全檢測一遍,發現了一處文件上傳:
從上面的這段網站代碼中可以看出來,這裡是類加載的一個解密過程,中間加解
密通過so或者dll文件,只能扔到IDA下分析了,高興的是這段代碼並沒有做代碼
的混淆加密。如下圖
這兩個就是java JNI調用的接口,分析一下這裡面的偽代碼看看:
decryptClass0 解密的程序。GetClassDataInfo這個主要是獲取文件的相關信息
,並且存到PInfo中decryptWithPublicKey 這個就是主要的解密函數的。esafe安
全公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲
透測試,安全服務於一體的網絡安全服務提供商。
這裡的v6就是剛才HashValue算出來的值,這個base64的算法,無非就是根據
HashValue生成一個混淆種子,然後跟decoding裡面的base64子附近做異或運算
那麼剩下的就是classname,根據字面意思我們就當做jar包裡面的class名字來看
編寫C++解密,然後直接去調用這個so,jdecoder.cpp
(linux系統)把javaCrypto.so文件和jdecoder.cpp放到同一個目錄下,
編譯g++ -o jdec *.cpp -fPIC -ldl ,然後運行就解密開了,從這裡可以推算一
件事情,就是說,他自己傳進來確實是jar裡面的classname,這個程序其實只要
這個classname加鹽,然後把鹽存好,破解成本就很高.解開了,分析下JAVA網站
的漏洞點:eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測
、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。