Dubbo

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。(百度百科)

当Dubbo提供了面向接口的远程方法调用,会开放Telnet端口供管理员调试,而如果这些个Telnet端口是开放在公网当中,那么也就方便了攻击者

探查接口

dubbo推荐以zookeeper作为注册中心,于是我们在扫C段时发现开放2181,就值得对该IP进行全端口扫描

可直接通过nmap -sV 来识别dubbo telnet端口,或者在某个Web端口会存在者像如下这类的服务预览页面

其中在应用Applications栏中,有分别给不同角色提供的接口(providers、consumers)

查看其中一个应用的接口

可以看到有些接口是开放在公网中的(192开头的IP应该还在C段上),而172开头的IP明显是处于内网中的,为内网IP的可能有对应的公网可以找到

通过这里我们获取到了公网IP,以及对应的端口情况,使用Telnet进行连接

接着就是靠dubbo telnet提供的命令来进行敏感操作,列出几个用到的命令

ls

1
ls [-l] [service]

ls查看服务名或者服务中方法的详细信息

可以看到这里getBannerListByStatus()中的参数我们可以直接提供,尝试利用

invoke

1
invoke [service.]method(args)

调用服务中的方法,注意的参数类型问题

Reference

http://www.cnblogs.com/xbq8080/p/6817297.html