一步一步教你漏洞挖掘之如何在半黑盒模式下挖掘RCE漏洞

VSole2021-10-16 13:51:05

引言

很久很久以前,在闲暇之余研究了一下某系统,通过下载客户端,在半黑盒模式下挖掘出一个JNDI注入漏洞。漏洞本身并不复杂,但是分析漏洞的过程可能对初学者有一定帮助,所以这里分享给大家,大佬请绕道。

客户端安装

通过访问服务端,可以下载到该系统的客户端软件UClient.exe,下载后直接进行安装。


在安装过程中,会自动下载安装JRE7u51的支撑环境,并在磁盘上创建一些文件夹。

漏洞分析

在分析客户端程序时,定位到启动配置文件`client.esc`,可以修改配置,加入jdwp远程调试。

客户端启动入口:

分析过程中,定位文件`\NCCACHE\CODE\resources\server.properties`:

通过尝试发现`JavaURLCommunicator`类主要用于向服务器发送HTTP请求。

关注下发送的封装对象`InvocationInfo`:

从类的参数中可以看出,该类可能用于封装与HTTP发包相关的过程。回到request函数:


重点看下这个地方:

客户端对封装的`InvocationInfo`对象进行序列化操作,然后发送给服务端。虽然没有拿到服务端代码,但是可以猜测在服务端应该存在一个反序列化操作。

研究了一会后,观察日志文件:

客户端通过lookup发送了大量JNDI请求。此时可以猜想服务端可能也存在同样操作,联想到前面分析的`JavaURLCommunicator`类`request`函数可以向服务端发送HTTP请求,其中两个参数分别是服务端URL以及`InvocationInfo`对象,尝试构造如下请求:

在处理来自服务端返回数据包的`result`处打下断点:

猜测服务端确实应该存在`lookup`操作,修改发包测试程序:

import nc.bs.framework.common.InvocationInfo;import nc.bs.framework.comn.cli.JavaURLCommunicator;
public class Test {    public static void main(String[]args)throws Exception{        InvocationInfo info=new InvocationInfo();        info.setServiceName("test");        JavaURLCommunicator com=new JavaURLCommunicator();        String url="http://***/ServiceDispatcherServlet";        com.request(info,url);    }}

结果如下:

更加证明了上面的猜想,继续构造JNDI服务:

漏洞验证成功。由于默认的JDK版本为JDK7u51,可利用LDAP方式实现RCE。

后记

通过后续深入分析,发现系统还存在多个反序列化漏洞,上面主要基于客户端程序,结合黑盒测试方式,成功挖掘出了一处JNDI注入漏洞,整个过程并不复杂,希望给初学的小伙伴们带来一些帮助。

漏洞漏洞挖掘
本作品采用《CC 协议》,转载必须注明作者和本文链接
src漏洞挖掘浅谈
2023-02-20 11:22:13
信息收集就说到这里,信息收集的主要目的就是扩大可利用面,10000万个资产你可能碰到弱口令,但1个资产你肯定没有弱口令挖掘前篇前边已经讲了信息收集,在测试前为了能高效的挖掘src,就需要有数据进行测试,这个数据就是我们常说的字典,字典怎么来,整理,收集,经验,积累。金额,数量都是可以篡改的地方小结挖掘src漏洞最主要还是挖掘逻辑漏洞,无非就是耐心,细节,多留意数据包的可疑数据,数据包所实现的功能。
首先要上分那么一定是批量刷漏洞,不然不可能上得了分的,然后呢,既然要批量刷漏洞。两种思路:1.审计通用性漏洞2.用大佬已公布的漏洞思路1难度较大,耗时也较长。思路2难度适中,就是需要写脚本或者使用别人已经写好的脚本。这是泛微继与微信企业号合作后,又一个社交化管理平台的落地成果。简单的说,一般比较大的企业都会用这个平台来做一些钉钉或者微信接口对接泛微OA的功能。
关于漏洞的基础知识
2022-07-20 09:44:23
黑客可以通过修改事件完成的顺序来改变应用的行为。所以,进行有效的验证是安全处理文件的重要保证。这种类型的漏洞有可能是编程人员在编写程序时,因为程序的逻辑设计不合理或者错误而造成的程序逻辑漏洞。这种类型的漏洞最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种类型的漏洞
网络安全漏洞(以下简称“漏洞”)作为信息通信网络中在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,随着经济社会信息化、网络化、数字化和智能化程度的加深,对国家网络安全的影响也日益加剧。世界各主要国家和组织为了切实提升国家网络安全防护能力,围绕漏洞的研究、收集和利用,纷纷建立国家级漏洞通报平台或漏洞数据库。日本于2003年开始建设“日本漏洞通报”(JVN)平台;美国于 2005 年开始建设“
细说从0开始挖掘cms-
2022-08-17 16:26:57
确立目标挖洞的第一步首先是确立一个目标,也就是找个cms来挖,这里可以通过github,gitee或者谷歌百度直接去搜cms。或者cnvd查看相应的信息,通过查看相应的信息可以提高我们挖洞的效率,我们从中可以知道该项目已经存在漏洞,我们到时候挖就可以看看相应的地方会不会还存在漏洞或者避免挖到别人挖过的漏洞。本次挖掘漏洞是ofcms,首先先下载一下源码,然后解压丢一边,回到网页来看一下项目文档。
最后对响应的匹配,使用正则识别id命令之后的结果。成功扫描出CVE-2022-1388F5 BIG-IP API Unauthenticated RCE漏洞漏洞的请求也变异无误,最后的响应中也是执行了id命令。案例二:利用Scalpel工具挖掘多个0day漏洞Scalpel工具使用较为灵活,通过对检测目标变异响应的check,可以发现检测目标中未知的安全问题。同时发现某Apache开源项目的CVE漏洞,报告被该团队接受并正在修复,尚未披露。
攻击者可在无需认证的情况下,通过构造特殊的请求,触发反序列化,从而执行任意代码,接管运行ForgeRock AM的服务器。本文从漏洞挖掘的角度分析其中的技术细节,也将公开一些其他的反序列化点。
对于公益SRC来说,想要冲榜就不能在一个站上浪费大量时间,公益SRC对洞的质量要求不高,所以只要 花时间,还是可以上榜的。在对某站点进行测试SQL注入的时候,先通过一些方式测试是否可能存在漏洞,然后可以直接sqlmap一把梭,也可以手工测试,然后提交漏洞。任意注册算是低危漏洞,不过也有两分。不管是进行SRC漏洞挖掘,还是做项目进行渗透测试,又或者是打红蓝对抗,一定要做好信息收集。
VSole
网络安全专家