步骤1:磨刀准备

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

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

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

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

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

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

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

步骤2:筛选目标

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

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

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

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

因为暂时不清楚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://"+url
            res = requests.get(URL2)
            if "Whitelabel Error Page" in res.text:
                list.append(URL2)
                print("访问成功:"+URL2)

        except:
            pass

if __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")

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

步骤3:编写exp

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

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

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

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

但是自己的靶场是正常的

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

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

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

神奇!

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

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

03-10 18:33