许多棋牌游戏,以及博彩平台都采用JAVA 架构,包括struts、Spring、
Hibernate,以及J2EE、JSF等等的框架,依托于Weblogic、 Tomcat环境下,java
开发的代码,高效率的安全运转,数据千万级的并发,得到BC平台,博彩网站,
金融,借贷平台,棋牌游戏平台运营者的青睐。
Sine安全根据客户的要求,对该旗下的java代码安全进行网站安全检测,以及网
站漏洞检测,等全方位的安全检测。
我们来看下java根目录下的web.xml文件进行查看,如下图:
关键的过滤器就是这个,里面有个excludes,代码不分析了,这里就是说
excludes里面的这些文件或者目录下的文件访问是不用验证权限的。剩下的大部
分都是sevlet,再仔细的安全检测一遍,发现了一处文件上传:
从上面的这段网站代码中可以看出来,这里是类加载的一个解密过程,中间加解
密通过so或者dll文件,只能扔到IDA下分析了,高兴的是这段代码并没有做代码
的混淆加密。如下图
这两个就是java JNI调用的接口,分析一下这里面的伪代码看看:
decryptClass0 解密的程序。GetClassDataInfo这个主要是获取文件的相关信息
,并且存到PInfo中decryptWithPublicKey 这个就是主要的解密函数的。Sine安
全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗
透测试,安全服务于一体的网络安全服务提供商。
这里的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网站
的漏洞点:Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测
、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。