黑客网站渗透入侵破解拿权限
9.82K subscribers
2.72K photos
128 links
Download Telegram
.内存马实现

根据上面的调试,我们发现最关键的就是StandardContext.findFilterMaps()和StandardContext.findFilterConfig(),我们可以来看看这2个方法的实现,可以看到都是直接从StandardContext中取到对应的属性,那么我们只要往这2个属性里面插入对应的filterMap和filterConfig即可实现

动态添加filter的目的

实际上StandardContext也有一些方法可以帮助我们添加属性。首先我们来看filtermaps,StandardContext直接提供了对应的添加方法(Before是将filter放在首位,正是我们需要的),这里再往filterMaps添加之前会有一个校验filtermap是否合法的操作,跟进validateFilterMap()

可以看到这里有一个坑点,它会根据filterName去寻找对应的filterDef,如果没找到的话会直接抛出异常,也就是说我们还需要往filterDefs里添加filterDef。

我们接下来再看filterDefs,StandardContext直接提供了对应的添加方法

最后我们再来看filterConfigs,根据命名规则搜索addFilterConfig,发现并没有这个方法,所以我们考虑要通过反射的方法手动获取属性并添加
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
❤2
在Tomcat中与Filter密切相关的几个类:1.FilterDefs:存放FilterDef的数组 ,FilterDef 中存储着我们过滤器名,过滤器实例,作用 url 等基本信息2.FilterConfigs:存放filterConfig的数组,在 FilterConfig 中主要存放 FilterDef 和 Filter对象等信息3.FilterMaps:存放FilterMap的数组,在 FilterMap 中主要存放了 FilterName 和 对应的URLPattern4.FilterChain:过滤器链,该对象上的 doFilter 方法能依次调用链上的 Filter5.WebXml:存放 web.xml 中内容的类6.ContextConfig:Web应用的上下文配置类★7.StandardContext:Context接口的标准实现类,一个 Context 代表一个 Web 应用,其下可以包含多个 Wrapper★8.StandardWrapperValve:一个 Wrapper 的标准实现类,一个 Wrapper 代表一个Servlet

最后总结下Filter型内存马(即动态创建filter)的步骤:

1. 获取StandardContext

2. 继承并编写一个恶意filter

3. 实例化一个FilterDef类,包装filter并存放到StandardContext.filterDefs中

4. 实例化一个FilterMap类,将我们的 Filter 和 urlpattern 相对应,存放到StandardContext.filterMaps中(一般会放在首位)

5. 通过反射获取filterConfigs,实例化一个FilterConfig(ApplicationFilterConfig)类,传入StandardContext与filterDefs,存放到filterConfig中

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
通过调用getApplicationEventListeners()获取applicationEventListenersList中的值,然后再设置applicationEventListenersList,可以理解为applicationEventListenersList加上刚刚实例化的eventListeners。

1.接下来调试器窗口按F9,看第二个断点,根据调用堆栈我们找到了fireRequestInitEvent()方法

1.往下翻几行看到调用了 listener.requestInitialized(event);

2.而这个 listener 就是我们的恶意 Listener 实例,可以看到是通过遍历 instances 数组,`而 instances 数组就是通过 getApplicationEventListeners 方法来进行获取的值

X.看到这儿是不是很熟悉了~ 没错就是上面那个函数将实例添加进去的地方,我们的内存马只需要添加到这个数组里面就可以了

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
Spring MVC框架

1.Spring MVC的核心组件和大致处理流程

1. DispatcherServlet是前端控制器,它负责接收Request并将Request转发给对应的处理组件;

2. HandlerMapping负责完成url到Controller映射,可以通过它来找到对应的处理Request的Controller;

3. Controller处理Request,并返回ModelAndVIew对象,ModelAndView是封装结果视图的组件;④~⑦表示视图解析器解析ModelAndView对象并返回对应的视图给客户端。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
百度某后台访问未限制,泄漏业务信息!

目前漏洞还没公开,一部分核心白帽子已经可以提前查看了,这里我就简单说下发现这个后台的思路:

首先我先ping了一下百度贴吧:得到了IP:220.181.111.85。

我再ping了一下其他几个子站的IP,最终得到了IP段大概定位在180.149.132.x,当然了,像百度这样的大型站点是不可能只有一个段的,还有很多,我没有一个一个仔细去挖,点到即止。

当然,这其中走了不少弯路,譬如不好识别哪些到底是不是CDN。(这里我暂时的方法就是多ping一些站点,更好确定ip段,当然,如果你有更好的方法也请告诉我,这里推荐一下核攻击的CDN查询工具,还是挺不错的。当然还有不少CDN查询工具,大家都可以多试试,不要以为上了CDN就很难搞。)

但是坚信一点,找大站的IP段,要从他们的小站入手,很多都可以从邮件(常用的二级域名:mail)、甚至是业务系统中ping出来,得到真实的IP地址。

而往往,大厂商对外IP开放的情况下,对权限设置的就不严谨了。

例子:WooYun: 搜狐某服务器上某数据库对外开放并且可下载(有用户信息)!

通过这个IP,直接获取到了搜狐某个站点的备份数据库。大小2G

这里再一次证明,不少厂商没绑定域名的IP上,一样是有业务在运营的,只不过你能否找到,你找到的是否真正能对外访问并且你能操作的。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
DNS劫持
先来谈下DNS劫持。在去年的”斯巴达“期间,公司的业务监控部门监测到公司的一个业务的访问量骤降,同时运维部门也监测该业务的域名在全国大面积运营商的DNS服务器返回的A记录被修改为一个不是我们的IP:61.49.43.2。时间主要集中在上网的高峰期,持续一个小时左右。下图为DNS解析的抓包。

最初以为是对运营商DNS的投毒攻击,不过随着分析的深入发现,在受影响的地区,递归到13台根DNS服务器返回的都是这个IP,看来不只是简单的对运营商DNS的投毒攻击。 并且我们对 61.49.43.2 这个IP也进行了分析,发现其为一台Nginx的反向代理服务器,用户访问我们的业务,其在返回的页面中插入一段JS代码,功能就是在用户登录之前先获取用户输入框中的用户和密码(业务本身传输密码是加密的),然后再提交到这个服务器的一个页面。最后恢复用户的正常登陆。整个过程用户几乎感受不到影响。 同时我们还发现有其他互联网公司的该业务会受到影响,如果直接把其他公司同类业务的域名解析到这个IP上,发现插入的代码会根据业务而变化,很有针对性。甚至gmail都有影响。 下面是被插入的JS代码

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
web服务器分层架构的资源文件映射安全
通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等!

例如:Nginx+ Tomcat的分层结构(在下文中,我们也使用此例说明相关问题)

Nginx是一个高性能的 HTTP 和 反向代理 服务器 。

通常,我们是通过它来解决一些静态资源(如:图片、js及css等类型文件)访问处理。

classes目录(包含该应用核心的java类编译后的class文件及部分配置文件)

lib目录(所用框架、插件或组件的架包)

web.xml(重要的配置文件,它是开启攻击的一把钥匙,后面会讲到它)
以及其他自定义目录之文件

所以,它是j2ee应用一个非常重要的目录!

如果Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录(请注意这里,是通过Nginx,而不是Tomcat访问到的,因为上面已经说到,Tomcat是禁止访问这个目录的。)。

造成这一情况的一般原因:是由于Nginx访问(这里可以说是均衡负载访问配置问题)配置不当造成的。通常,我们只会让Nginx把这些访问后缀的URL交给Tomcat,而这些后缀与j2ee及开发框架(或自定义框架)有关
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
攻击方式及危害
这种情况相信大家早已碰到过,但可能没有深入去关注过它,而且该问题还比较普遍存在一些大型站点应用中。由于j2ee应用一些自身特点,导致发生此情况时,它很容易受到攻击,如:

web.xml配置文件,它是j2ee配置部署应用的起点配置文件,如果能够先访问到它,我们可以再结合j2ee的xml路径配置特点

根据web.xml配置文件路径或通常开发时常用框架命名习惯,找到其他配置文件或类文件路径。

反编译类后,再根据关联类文件路径,找到其他类文件。

如此下来,我们就可以获得整个应用几乎的所有核心代码及应用架构的相关信息等。

然后,我们再根据j2ee应用分层结构的流程或路线,很容易查找到应用中的一些逻辑、sql注射、XSS等相关漏洞
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke