前言
前段时间学习渗透测试的时候,扫描到一台开放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,看到如下界面:
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
感谢前辈们留下的学习资料!~
网友评论