zoukankan      html  css  js  c++  java
  • JBOSS漏洞

      JBOSS:是一个基于J2EE的开放源代码应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

      JBOSS 端口号:8080

      默认密码     :admin :admin

      1.弱口令

          (1).对方开启服务

          (2).没有修改默认路径(方便找到后台)

        案例:

           访问对方网站。点击Administration Console,弹出登陆界面,输入用户名“admin”、密码“admin”,点击“Login”登录。(注意:第一次登陆控制台,需要等待程序响应)

           如果能够登录成功,说明管理员没有修改JBoss的默认密码,黑客可以通过这个漏洞上传木马WAR包,对WEB服务器进行入侵。

             接下来进行war包的部署:

              

              接下来上传成功。访问自己的木马的页面就可以随便弄了。

    2.JBoss invoke接口未授权访问

       invoke接口 的功能:外部通过这个函数用于访问 对象提供的属性和成员方法。

      案例:

        个人感觉不需要探测对方系统版本等一些信息。如有需要:Nmap 等一些可以探测。

        直接访问目标网站:

          

          发现目标为默认网站,点击上图箭头位置进入:

            

               继续点击上图箭头进入可以上传war包的部署。

            接下来需要搭建一个远程服务器,apache,JBOSS等等一些可以访问的web页面。

            为啥要这样?

            因为JBOSS的上传war部署时,只可以使用url进行部署。

            部署成功时,在目标主机上上传 远程服务器上的war包即可,出现下面页面表名上传成功。

            

            只需要访问自己上传的大马或者菜刀连接的小马即可。

                

                

                路径在哪????

                一般在根目录下,然后看自己的war包下的路径。然后访问即可。

    3.JBoss HEAD绕过漏洞

            产生原因:在做防护的时候,只过滤了POST与GET两种方法。此时可以使用HEAD报文头部进行绕过。

             案例:

                (1)当你访问一个目标主机时,尝试了弱口令及爆破等方法,还是没有办法进去对方后台。此时,需要尝试一下HEAD绕过,看看对方是否防护完全,全部过滤。 

                 因为登录不上对方管理后台,所有要找到一个可能登录并且可以上传war包的一个JBOSS网站,或者自己创建一个即可。

                 然后在自己可以上传war那个的网站进行上传(不懂往上看),在上传war包的同时,使用burp进行数据包的抓取。把HOST换成目标IP即可

                 上传过程war时,抓取数据包。为了方便可以把它发送到 Repeater 。截图应该是一个POST方法 (忘了截图,各位可以验证),然后使用下图方法先转化成GET方法

                          

                 使用上图方式,把POST的方法转换成GET方法。

                      

              (2)为啥POST转成成GET 。内容转上去了呢????

                科普: POST 与 GET   是最常用的HTTP方法。

                什么是 HTTP?

                超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。

                HTTP 的工作方式是客户机与服务器之间的请求-应答协议。

                web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。

                举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

                两种 HTTP 请求方法:GET 和 POST

                在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

          • GET - 从指定的资源请求数据。 (就是url上传输的)
          • POST - 向指定的资源提交要被处理的数据。(大多数就是有文本框输出的参数个人理解())

               所有post转化成get时就是把上传的war包转化成url上的参数传递了(个人理解)

              (3).可以尝试发送到目标网站,接下来一定是失败的,以为对方已经把GET与POST做了过滤

              (4).因为没有过滤HEAD。

                      HEAD:获得报文首部。(也是HTTP一种方法)

                这里接着上一步把GET转换成HEAD 方法进行传输。 (别忘把HOST换成目标IP)           

                     

              可以看到出现500错误。就是内部错误产生、程序出错,配置出错。但是只要不是400就应该可以说明这个文件存在也就是上传成功了。

              然后使用菜刀连接即可。

              路径是啥???  请往上文看。    

              本文接触太多HTTP协议,推荐《HTTP图解》一书,个人感觉不错,带图了解HTTP。

              补:测试的时候可能会发现自己的网站都找不到路径去显示,怎么去上传呢?往下看,反序列化漏洞教你找路径

     4.JBOSS反序列化漏洞

              Java反序列化漏洞简介

                Java序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中,Java中的ObjectOutputStream类的writeObject()方法可以实现序列化。

                Java反序列化即逆过程,由字节流还原成对象。ObjectInputStream类的readObject()方法用于反序列化。

                因此要利用Java反序列化漏洞,需要在进行反序列化的地方传入攻击者的序列化代码。能符合以上条件的地方即存在漏洞。

                   以下实验均用针对Java反序列化测试工具去实验。   (多谢老师的提供)  环境自己搭建。

                   JBOSS 默认只能本地访问    run.bat  -b  0.0.0.0  开启任意ip访问   (cmd  进入bin目录下执行)

                    此实验因为个人原因,端口改成8000   方法如下:

                    

              (1).访问目标网站,出现下面图片说明对方是JBOSS。

                    

              (2).接下来使用 专用 反序列化工具去检测.,发现存在反序列化漏洞。

                   

              (3).可以执行命令

                

              (4).接下来要上传webshell,最重要的是找到路径

                  

              (5).这里就需要开拓自己的思维了,怎么能找到目标机器可以访问的物理路径呢?这里介绍根据图片去找到物理路径。虽然我们后台不能登录上去,但是可以进去后台页。可以看到有图片,然后查看元素找到物理路径。

                     个人方法:点击图片右键复制图像连接,然后打开另一个网页去访问这个图像,也可以看到这个物理路径:

                  

                (6).因为上传webshell时,需要绝对路径,而我们进不去对方服务器。所以需要我们自己安装一个JBOSS服务去寻找刚刚根据图片找的那个物理路径。看看那个图片在绝对路径哪里。

                    小方法:进去自己的搭建的JBOSS目录中,按住CTRL+E进行搜索(搜索上文中的那个照片名字,默认都是一样的)。

                    

                  然后查看照片属性中的路径,这里附上每一个照片属性,然后自己去访问测试,哪一个可以访问到,哪一个就是可以传webshell 的绝对路径

                    

                  这里上图第三个可以访问,可以自己写一个文件去测试。

                  

                  可以看到是可以访问的到,而且我们测试的logo.gif也在。

                  接下来使用工具上传webshell,发现也可上传成功。

                    

                (7.)然后访问页面,是否能访问。发现500错误:

                      

                        应该是木马的问题,换一个继续上传测试。

                (8).换一个木马上传,发现访问成功。

                      

                  (9).然后登陆进去,进去管理页面。

                           

                  (10).实验结束,亲测可行。

    修复:

        1.jboss invoke接口修复:修改以下文件

            (1)

              

              

              

            (2)

              

              

              

              修改之后,再次访问需要使用用户名与密码才可以。

                              关注网络安全丶避免肆意破环

                         

  • 相关阅读:
    java.lang.NoSuchMethodError
    asm相关内容想下载(包括 jar 包)
    Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
    用Navicat连接mysql报错:2003-Can't connect to MySql server on '10.100.0.109'(10039)
    The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    交通测速方式
    卡口和电子警察的区别
    Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable
    在window上安装mysql
  • 原文地址:https://www.cnblogs.com/pangya/p/8953202.html
Copyright © 2011-2022 走看看