美文网首页
Tomcat的8009端口与ajp13协议的利用

Tomcat的8009端口与ajp13协议的利用

作者: a7f994ad004f | 来源:发表于2018-11-06 22:04 被阅读119次

    前言

    前段时间学习渗透测试的时候,扫描到一台开放8009端口ajp13的协议。对这个协议了解不多,搜索一番资料后,感觉可以利用下,遂写下记录,以加深自己印象。

    PORT     STATE    SERVICE            VERSION
    8009/tcp open     ajp13              Apache Jserv (Protocol v1.3)
    |_ajp-methods: Failed to get a valid response for the OPTION request
    

    关于ajp13协议

    WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。【摘自百度百科】

    环境搭建

    0x01
    安装WATMServer,成功后访问localhost,看到如下界面:

    1.png

    0x02
    配置conf/httpd.conf文件,文件在apache安装目录中。
    1.取消以下文件的注释,让apahce在启动时自动加载相关代理功能模块。

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so    
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so    
    LoadModule proxy_http_module modules/mod_proxy_http.so
    

    2.在实践中发现还需要开下以下两个模块,否则apache无法正常启动。

    LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    

    3.在文件最下面加入以下代码。注:记得更改正确的目标IP地址

    ProxyRequests Off     
    <proxy balancer://cluster>     
            BalancerMember ajp://目标IP地址:8009 loadfactor=1 route=jvm1   
            BalancerMember ajp://目标IP地址:8009 loadfactor=1 route=jvm2   
    </proxy>
    

    0x03
    配置conf/extra/httpd-vhosts.conf文件。
    1.注释掉自带的如下代码。

    # <VirtualHost *:80>
    #     DocumentRoot "..\web\ROOT"
    #     <Directory />
    #         AllowOverride none
    #         Require all granted
    #     </Directory>
    
    #     ServerAdmin jspgen@163.com
    #     ServerName localhost
    #     ServerAlias 127.0.0.1
    #     #ServerAlias www.jspgen.com www.jspgen.net
    #     #Alias /root/ "..\web\ROOT\"
        
    #     ErrorLog "logs/root-error.log"
    #     CustomLog "logs/root-access.log" common
        
    #     JkMount /* tomcat
    #     JkUnmount /*.xml tomcat
    #     JkUnmount /*.html tomcat
    #     JkUnmount /*.shtml tomcat
    #     JkUnmount /statie/* tomcat
    #     JkUnmount /upload/* tomcat
    # </VirtualHost>
    

    2.在文件最下面加入以下代码。

      <VirtualHost *:80>    
         ServerAdmin 2324@qq.com   
          ServerName 127.0.0.1   
          ServerAlias localhost    
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On    
         ProxyPassReverse / balancer://cluster/    
         ErrorLog "logs/lbtest-error.log"   
        CustomLog "logs/lbtest-access.log" common   
      </VirtualHost>
    

    这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎 ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取,笔者取为lbtest。

    连接测试

    重新启动apache服务,刷新localhost页面。如果配置正常,则可以看到如下界面。


    2.png

    点击Manager App,这里需要认证才能正常访问,试了下弱口令都失败了,如果成功的话,应该是可以上传war获得webshell了。


    3.png

    以上为记录。
    参考链接:https://www.bugbank.cn/q/article/586f5032bdc8201263d1c312.html
    感谢前辈们留下的学习资料!~

    相关文章

      网友评论

          本文标题:Tomcat的8009端口与ajp13协议的利用

          本文链接:https://www.haomeiwen.com/subject/bdjpxqtx.html