【web安全】实战 批量横扫springboot命令执行漏洞

本文主要是介绍【web安全】实战 批量横扫springboot命令执行漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

天命:这次目标批量横扫,但是没完全成功,也没完全失败

步骤1:磨刀准备

这次先针对漏洞来寻找目标,所以寻找这种 springboot 的目标

利用CVE漏洞,进行命令执行攻击

先找靶场训练一波,叠加反弹shell测试,准备齐全

利用工具反弹shell成功,但这里是靶场,实战场景可不是这样

大神的POC工具:GitHub - M0ge/CVE-2022-22947-Spring-Cloud-Gateway-SpelRCE: Spring Cloud Gateway远程代码执行漏洞POC,基于命令执行的基础上,增加了反弹shell操作

步骤2:筛选目标

用网络空间搜索引擎,找一下目标,只要是包含:Whitelabel Error Page  的字符串,全部纳入范围

导出下载excel,只要host列,复制到文件里

因为暂时不清楚url,不清楚是 http 还是 https ,也不清楚哪些能访问,所以要手动筛选一下

import requests,threading  def get_url(url):try:URL = "http://"+url res = requests.get(URL)if "Whitelabel Error Page" in res.text:list.append(URL)print("访问成功:"+URL)except:try: URL2 = "https://"+urlres = requests.get(URL2)if "Whitelabel Error Page" in res.text:list.append(URL2)print("访问成功:"+URL2)except:passif __name__ == '__main__':list = []url_list = []f = open('url.txt','r')for z in f:url = z.strip()url_list.append(url)# 创建线程列表  threads = []  # 创建并启动线程  for i in range(len(url_list)):  t = threading.Thread(target=get_url, args=(url_list[i],))  threads.append(t)  t.start()  # 等待所有线程完成  for t in threads:  t.join()  print("ojbk")

步骤3:编写exp

这步开始有异常了,burp抓包发送,是正常找到有漏洞的网站的

但如果自己写Python脚本发送请求,就是不行,也搞不清楚为什么,

然后用接口测试工具试了一下,也是不行

但是自己的靶场是正常的

使用大神的POC脚本,也是不行,暂时没找到原因是为什么

POC总共三个包,第一个包就跪了,返回全部是404,只有用burp发送才是201成功

神奇!

但起码也算半成功,因为可以命令执行了,但也没完全执行,限制还是很大的

空格不能有,好像反斜杠也不能用,限制超级多,所以只能算成功了一半。

这篇关于【web安全】实战 批量横扫springboot命令执行漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/781973

相关文章

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2