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)

              

              

              

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

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

                         

  • 相关阅读:
    [C++知识点]2015.4.18
    [COCOS2DX]第一个开源项目的部署和运行<win32版本>
    [COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)
    [COCOS2DX]COCOS命令新建项目+编译安卓项目并成功运行
    [COCOS2DX]官网helloworld在VS2012中的部署
    【转】int const A::func()和int A::func() const
    【转】Singleton单例模式
    【转】java静态代码块和构造方法执行顺序
    小程序加入阿拉丁统计
    关于固定footer的用法
  • 原文地址:https://www.cnblogs.com/pangya/p/8953202.html
Copyright © 2011-2022 走看看