1,AJP是什么?

最近有一个ajp的文件包含漏洞CVE-2020-1938很火,因此就研究了一下tomcat的ajp服务,复现了该漏洞。首先我们来看一下ajp是什么?
ajp是tomcat的一个转发协议,通过这个协议,我们可以在自己的客户端上远程访问另一头的tomcat服务器。例如,原本我们打开tomcat,在自己的浏览器输入localhost就可以访问tomcat,而配置了ajp协议的服务器,就允许你在其它电脑或者客户端,远程访问该tomcat服务器。

2,AJP漏洞的利用

网上搜了一下ajp漏洞的利用,发现原来几年前ajp协议就已经被爆出过漏洞,也是自己很少用到该协议,也不怎么关注。如今这么一个高危漏洞出来,而且poc已经全网转发,不得不重视。ajp协议的端口是8009,如果nmap发现某个机器开放了8009端口,那么就可能存在这漏洞,从而进一步验证。主要步骤如下:
1,找到一个开放8009端口的服务器,在自己的Apache安装目录下找到conf/httpd.conf,将proxy模块打开,事实证明,网上还少添加了2个模块(mod_lbmethod_byrequests.so和mod_slotmem_shm.so),这两个模块打开后,才可以启动apach。

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
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

2,在conf/httpd.conf中添加映射代码:

ProxyRequests Off
<proxy balancer://cluster>     BalancerMember ajp://59.68.xxx.xxx:8009 loadfactor=1 route=jvm1   BalancerMember ajp://59.68.xxx.xxx:8009 loadfactor=1 route=jvm2
</proxy>

3,在conf/extra/httpd-vhosts.conf文件中,添加80端口的域名:

 <VirtualHost *:80>    ServerAdmin your email  ServerName 127.0.0.1   ServerAlias localhost    ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On    ProxyPassReverse / balancer://cluster/    ErrorLog "logs/ajbtest-error.log"   CustomLog "logs/ajbtest-access.log" common   </VirtualHost>

4,在浏览器中访问localhost,即可访问远程59.68.xxx.xxx的tomcat的index页面。如果能访问到这个页面,说明该远程服务器存在安全风险。
5,访问tomcat的管理页面,如果这个时候存在弱口令的话,那么无疑肯定存在问题。
6,如果访问不了,或者不存在弱口令,利用CVE-2020-1938的poc检测一下:

python CNVD-2020-10487-Tomcat-Ajp-lfi.py target.com(or IP)

如果存在问题的话,就会显示web.xml的内容,那么无疑是存在文件包含漏洞的。

3,发现的问题

在复现这个漏洞的时候,确实将poc下载下来了,但是poc是python2.7的版本,我是python3的环境,运行的时候,会爆出一些错误。
1,no module的错误。
出现该错误的时候,不用想,pip install module,即可解决。
2,queue的错误。
出现该错误是因为python3与python2关于模块名的命名不一致导致的,python3中模块名统一采用小写形式,因此改一下代码,兼容一下就好。

if sys.version > '3':import queue as Queue
else:import Queue

3,线程的错误。
有的时候,会爆出线程小于3的错误,是因为代码里面规定了是20个线程,如果ip.txt里面的ip或com小于20的话,就会出错,把代码里面的线程改一下,即可解决。
4,python3与python2兼容的问题。
在运行该程序的时候,我的环境是python3,我就想,能不能让python3与python2兼容一下,这样以后,我想用python2来运行程序就可以使用python2,事实证明,是可以的。
在环境变量path里面添加python2的路径:

然后找到python2的安装目录,将python.exe改名为python2.exe,在命令行里面输入python2,即可看到环境是python2的环境。以后想使用python2或者python3都可以啦。
有什么记录的不准确的地方,欢迎与我交流,wechat:kathrianwly。

ajp8009端口分析相关推荐

  1. NMAP扫描个人电脑扫不到端口分析

    nmap是当前最受欢迎的网络扫描工具之一,其强大的端口探测能力给网络安全工作人员带来了极大的遍历.但是当我们扫描个人电脑时,发现是这样的情况: namp检测到了我们的个人电脑,但没有给我们任何端口以及 ...

  2. 135.137.138.139.445端口分析

    无论你的服务器中安装的是Windows 2000 Server,还是Windows Server 2003,它们无一例外会在默认安装下开通135端口.137端口.138端口.139端口和445端口.这 ...

  3. 端口排查步骤-7680端口分析-Dosvc服务

    简介: 对通过服务启动的进程查找主进程,出现大量7680端口的内网连接,百度未找到端口信息,需证明为系统服务,否则为蠕虫. 1. 确认端口对应进程PID netstat -ano 7680端口对应pi ...

  4. 和12岁小同志搞创客开发:拿到一款控制器,要怎么分析?

    ​​​​​​目录 1.分析外围电路 2.分析外设端口 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧.​​​​​​​ ​ ​​项目专栏:https://blog.csdn.n ...

  5. 技术分享:逆向分析ATM分离器

    文章内容仅供技术交流,请勿模仿操作! 背景(作者) 每一次外出时, Elizabeth和我总是格外的小心,同时把我们身上的钱藏在特殊的皮带上面,这样还不够,我们还采取了"狡兔三窟" ...

  6. linux nat span端口镜像,端口镜像span、rspan实现数据检测

    端口镜像span.rspan(华为) RSPAN(Remote Switched Port Analyzer,远程交换端口分析),即远程端口镜像,远程端口镜像(RSPAN)是本地端口镜像(SPAN)的 ...

  7. 使用NetFlow分析网络异常流量

    一.前言 近年来,随着互联网在全球的迅速发展和各种互联网应用的快速普及,互联网已成为人们日常工作生活中不可或缺的信息承载工具.然而,伴随着互联网的正常应用流量,网络上形形色色的异常流量也随之而来,影响 ...

  8. 端口镜像在网络安全中的应用

    端口镜像在网络安全中的应用 本地端口镜像(span) Span :镜像端口必须与被镜像端口在同一交换机上. 配置准备 1:确定了镜像源端口,被监控的端口 2:确定被镜像报文的方向:inbound表示仅 ...

  9. 工控系统的全球安全现状:全球漏洞实例分析

    工控系统的全球安全现状:全球漏洞实例分析 一.摘要 ​ 运营技术(OT).网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性.效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来 ...

最新文章

  1. 1051 Pop Sequence(两种双指针思路)
  2. 【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键
  3. Quartz Properties 文件
  4. 皇室战争:第27赛季调整出炉,共涉及16张卡牌,暗巫要凉?
  5. 【Blog.Core开源】快速预览Admin界面效果
  6. d类功放芯片_应用于无滤波级D类音频功放的新型死区时间控制系统
  7. Python abs函数 - Python零基础入门教程
  8. Canvas-drawImage 绘制图片模糊问题
  9. idea无法创建class
  10. 电力行业信息安全等级保护管理办法_信息安全等级保护是什么???
  11. 通过Linux的rpm方式安装mysql
  12. ps2022 - ps to dxf
  13. 二分查找总结——左闭右开区间和左闭右闭区间(C++语言)
  14. 微信小程序的详细登录(上)
  15. php苹果支付订阅付费_比较订阅,按错误付费和咨询软件业务模型
  16. QPainterPath
  17. linux内核函数出错的返回值
  18. python编写程序计算复利-使用Python函数计算复利
  19. [pytorch]torch.roll函数
  20. Topaz Video Enhance Al for mac(视频无损放大软件)

热门文章

  1. 软件测试工程师在职研究生,​运维工程师考在职研究生有什么报考条件?
  2. Emlog模板 西顾Grace主题免费开源-一款超卡哇伊的ACG主题
  3. 计算机基础四化教学,“四化”入课堂,教改出成果——新课改下计算机应用基础的改革实践与创新.doc...
  4. 无线智能插座的Android手机客户端软件界面开发
  5. 想学刘涛(刘一刀)一样在淘宝上直播带货吗?请看RTMP/RTSP推流直播方案
  6. Hive常见压缩格式和性能对比
  7. ChatGPT与教育:探索虚拟助手对学生学习的影响
  8. 1.11 Xcode右侧界面介绍 [原创iOS开发-Xcode教程]
  9. 王道操作系统思维导图
  10. ffmpeg裁剪视频长度