Web Security · Offensive Security · Certification

HTB CWEE: Course And Certification Review

My experience with Hack The Box's Senior Web Penetration Tester path and CWEE exam, including the course, exam timeline, reporting, and lessons learned.

The Hack The Box Certified Web Exploitation Expert exam was the most difficult certification exam I have completed.

I submitted my final report at around 10 PM on December 17, 2025, with only a few hours left in the exam window. Then I spent the next few days refreshing my email, replaying decisions from the exam, and wondering whether the report met the standard.

I finished with 90 out of 100 points, exactly the score required to pass. A power outage had taken me offline for an entire day, and I am confident I would have found the last 10 points without it. Still, reaching the passing score was only part of the work. The report also had to show the vulnerabilities, exploitation paths, evidence, and impact clearly enough to stand on its own.

A few days later, I received the notification that I had passed.

This review covers both sides of that experience: the Senior Web Penetration Tester path that prepares you for the exam and the CWEE certification itself. I will discuss the structure, preparation, and experience, but I will not share exam targets, flags, vulnerabilities, or solutions.

On This Page

At A Glance

ProviderHack The Box Academy
CourseSenior Web Penetration Tester Job Role Path
CertificationHTB Certified Web Exploitation Expert (CWEE)
Path structure15 modules, 245 sections
Path difficultyHard
My study windowFebruary through December 2025
Exam format10-day hands-on web exploitation assessment
Passing score90 out of 100 points
My score90 out of 100 points
DeliverableTechnical report in Markdown
Reporting setupSysReptor with the CWEE template and Markdown export plugin

The Senior Web Penetration Tester path is focused on advanced and hard-to-find web vulnerabilities. It moves between black-box testing, white-box testing, source code review, debugging, secure coding, and custom exploit development. The CWEE certification tests whether you can apply those skills in a practical assessment and communicate the results in a professional report.

That distinction matters. The path teaches a large set of techniques, but the exam is not a memory test. It asks whether you can recognize a path through an unfamiliar application, understand code written in different languages, combine vulnerabilities, write the tooling you need, and preserve enough evidence to explain the result afterward.

Part 1: The Senior Web Penetration Tester Path

Overall Course Review

I started the path in February 2025 and finished in December. Someone with fewer work and family obligations could move through it faster, but I did not want to rush through the content just to mark the modules complete. There is no value in reaching the exam quickly if the techniques are no longer available to you when you need them.

The path is challenging because it expects more than familiarity with vulnerability names. You need to understand application behavior, read code, reproduce conditions locally, modify or build exploits, and move between different languages and stacks. That is much closer to real application security work than a course built around isolated payloads.

The progression also makes sense. It begins by expanding familiar web attack categories, then moves down into HTTP behavior and intermediary systems, and eventually shifts into white-box analysis, debugging, deserialization, advanced SQL injection, and logic bugs.

Course Structure

The path currently contains 15 modules and 245 sections. These are the major areas it covers:

ModuleMain Focus
Injection AttacksXPath injection, LDAP injection, and HTML injection in PDF generation
Introduction to NoSQL InjectionMongoDB-focused NoSQL injection across Python, PHP, and Node.js applications
Attacking Authentication MechanismsAttacks against authentication and access-control mechanisms including JWT, OAuth, and SAML
Advanced XSS and CSRF ExploitationModern browser controls, CORS, CSP, filter bypasses, and attacks launched from a victim’s session
HTTPS/TLS AttacksTLS behavior, configuration weaknesses, and attacks against HTTPS implementations
Abusing HTTP MisconfigurationsWeb cache poisoning, host header vulnerabilities, and session puzzling
HTTP AttacksCRLF injection, HTTP request smuggling, and HTTP/2 downgrading
Blind SQL InjectionBlind SQL injection techniques and MSSQL-specific attack paths
Intro to Whitebox PentestingCode review, local testing, proof-of-concept development, and remediation
Modern Web Exploitation TechniquesDNS rebinding, second-order vulnerabilities, and attacks over WebSockets
Introduction to Deserialization AttacksIdentifying and exploiting insecure deserialization in PHP and Python
Whitebox AttacksPrototype pollution, timing attacks, race conditions, and type juggling
Advanced SQL InjectionsWhite-box SQL injection with a focus on Java, Spring, and PostgreSQL
Advanced Deserialization AttacksCustom .NET deserialization exploit development
Parameter Logic BugsFinding logic flaws through code review and user-input analysis

The value is not only the number of techniques. It is the repeated movement from understanding a vulnerability to building a working exploitation path. Later modules make it difficult to rely only on a scanner, a memorized payload, or one tool. You have to inspect the application, understand the control that failed, and adapt.

What The Path Does Well

The strongest part of the path is the combination of black-box and white-box thinking.

Black-box testing teaches you to enumerate carefully and reason from observed behavior. White-box testing lets you trace that behavior into source code, reproduce it locally, and understand why the vulnerability exists. Moving between the two makes each side stronger.

The path also reinforces that advanced exploitation is usually not one clever request. A useful result may require a chain of smaller observations, custom scripting, and a clear understanding of application state. That becomes important during the exam, where individual issues rarely exist as clean, self-contained exercises.

Where The Path Gets Difficult

The breadth is part of the difficulty. You may be reading JavaScript in one section, PHP or Python in another, and Java or .NET later. You do not need to be an expert developer in every language, but you do need to read unfamiliar code without freezing and write enough code to validate or automate an attack.

The other challenge is retention. Completing a lab once does not guarantee that you will recognize the same underlying pattern months later in a different stack. Keep reusable notes and working code while you move through the path. Record the preconditions, the failed control, the signal that helped you identify the issue, and the smallest reliable proof of exploitation.

Part 2: The CWEE Certification

Certification Overview

CWEE is a practical advanced web exploitation certification. There are no multiple-choice questions, guided labs, or hints. You enter a realistic web application environment and are expected to enumerate, exploit, and document vulnerabilities in a way that resembles a professional web penetration test.

The target applications span multiple subdomains and codebases. Comfort switching between application components and programming languages matters. Flags are rarely obtained by finding one isolated vulnerability. The exam expects exploitation chains, and scripting is often necessary to make those chains reliable.

Exam details can change, so candidates should verify the current rules in the Hack The Box portal. For my December 2025 attempt, the format was:

AssessmentHands-on web exploitation
Duration10 days
Passing score90 out of 100 points
GuidanceNo hints or guided steps
EnvironmentMultiple web application components and technology stacks
Work requiredEnumeration, source review, exploitation chains, and custom scripting
Final submissionTechnical report in Markdown

My Exam Experience

I started the exam on December 8 at around 7 AM. I spent the first 20 to 30 minutes reading the briefing and figuring out how to start the instances. This was my first Hack The Box certification exam, so even the initial workflow was unfamiliar.

My machine and tools were already set up, which kept me from wasting exam time on basic configuration. Even with that preparation, it took four days to get my first flag.

That first result gave me a brief confidence boost, but the exam quickly returned to a pattern of small wins followed by long stretches of frustration. By the later tasks, I had developed better intuition for the environment and a more disciplined way to approach the targets.

I found the final two flags I needed to pass around day eight. Until then, I assumed I would probably need a second attempt. A power outage also took me offline for a full day, which added pressure to an already demanding schedule.

Reaching 90 points was a relief, but it did not mean the work was finished.

The Report Is Part Of The Exam

I underestimated how long the report would take. It required multiple long days and very little sleep, even though I had been collecting screenshots and notes during exploitation.

I used SysReptor with its CWEE reporting template and made a conscious effort to document the work thoroughly. Because HTB required a Markdown report for my attempt, I also used SysReptor’s Markdown export plugin. That entire workflow should be installed and tested before the exam clock starts.

If you bypass a control, escalate privileges, or complete an important step in a chain, capture the evidence before moving on. Reconstructing a complex path from memory is slower and less reliable than documenting it while the application state and reasoning are still fresh.

I submitted the report at around 10 PM on December 17 with only a few hours remaining. I considered waiting until the morning, but I did not want to risk oversleeping or missing the deadline. A few days later, I learned that I had passed.

Exam Timeline

Point In The ExamWhat Happened
December 8, around 7 AMStarted the exam, read the briefing, and initialized the environment
Days 1-3Enumerated, tested hypotheses, and made progress without obtaining a flag
Day 4Obtained the first flag
Days 5-7Alternated between incremental progress and long periods of frustration
Day 8Found the final two flags needed to reach 90 points
During the exam windowLost a full day to a power outage
December 17, around 10 PMSubmitted the final Markdown report with a few hours remaining
A few days laterReceived confirmation that I passed

Lessons Learned And Recommendations

Do Not Make CWEE Your First Stop

The Academy path contains the knowledge needed for the exam, but CWEE is not beginner-friendly. If this would be your first Hack The Box certification, I would recommend starting with CPTS and treating CWEE as the final boss. The certifications emphasize different scopes, but the broader penetration-testing methodology in the CPTS path is useful preparation before taking on advanced web exploitation.

Be Comfortable Reading And Writing Code

I am not a penetration tester by title, but I have substantial experience reviewing and writing code. That background mattered.

You need to be able to move across languages, follow data and control flow, understand application logic, and turn a theory into a working exploit. You do not need perfect recall of every framework, but you need a reliable process for orienting yourself in an unfamiliar codebase.

Practice Harder Targets Before The Exam

One mistake I made was not spending enough time on hard-level or more difficult Hack The Box machines immediately before the exam. Most of my preparation focused on Academy modules and labs. I had completed many machines in the past, but most were easy or medium difficulty.

During the exam, I wished I had more recent practice with targets that required longer chains, more uncertainty, and more persistence. Course completion and independent problem solving are related skills, but they are not identical.

Document As You Go

Do not leave the report until the end.

For every meaningful step, capture:

  • The request, code path, or condition that exposed the issue.
  • The control that was missing, weak, or bypassed.
  • The exact steps needed to reproduce the result.
  • Screenshots or other evidence showing the result.
  • The role that step played in the larger exploitation chain.
  • Enough remediation context to explain how the underlying failure could be fixed.

Good notes reduce both report time and the risk of overstating what the evidence proves.

Test The Entire Reporting Workflow

Install the reporting template, export plugin, and any supporting tools before the exam. Generate a test report in the required format and inspect the output. Confirm that screenshots, code blocks, headings, links, and finding structure survive the export.

The first time you test report generation should not be near the submission deadline.

Plan For Infrastructure Failure

Use reliable virtualization software, a dedicated testing machine, or Pwnbox. I plan to use VMware Fusion or VMware Workstation for future exams.

I also prefer an environment that does not require constant internet access. A local environment may not let you continue exploitation during an outage, but it can still let you write findings, organize evidence, review source and notes, or plan the next steps. Over a 10-day exam, that resilience matters.

Do Not Let AI Replace Your Method

AI tools slowed me down during this exam. I spent too much time validating generated ideas instead of progressing methodically through the application.

That does not mean AI has no place in security research. It means the tool should support a bounded question, not become the process. During a time-limited exam, an endless stream of plausible but weak hypotheses creates more work. Trust your enumeration, verify one assumption at a time, and keep your decisions tied to evidence.

A Practical Preparation Checklist

Before starting the CWEE exam, I would want all of the following to be true:

  • I completed the Senior Web Penetration Tester path without rushing the skills assessments.
  • I can read and modify code in several common web application languages.
  • I recently practiced hard web targets without relying on walkthroughs.
  • I have reusable notes and tested code for the techniques covered in the path.
  • My VM, VPN, proxy, editor, browser, and scripting environment are ready.
  • SysReptor, the CWEE template, and Markdown export are installed and tested.
  • I have a note structure for reconnaissance, hypotheses, evidence, flags, and report findings.
  • I have enough time reserved for reporting, not only exploitation.
  • I have a backup plan for power, connectivity, and local files.
  • I am prepared to stop unproductive paths and return to methodical enumeration.

Who Is CWEE For?

CWEE is a strong fit for experienced web penetration testers, application security engineers, product security engineers, security researchers, and developers who want to validate advanced offensive web skills.

It is especially relevant if you want to become better at:

  • Finding vulnerabilities that scanners and basic checklists miss.
  • Combining black-box behavior with white-box code analysis.
  • Debugging applications and reproducing vulnerable conditions locally.
  • Building custom exploit code instead of relying only on existing tools.
  • Reasoning about authentication, application state, and logic flaws.
  • Turning a complex exploitation chain into a report another person can verify.

It is not the certification I would recommend to someone still learning web requests, common vulnerability classes, Linux basics, or basic penetration-testing methodology. Build that foundation first. The exam is difficult enough without trying to learn the fundamentals during the 10-day window.

Final Verdict

The Senior Web Penetration Tester path and CWEE exam form one of the most demanding learning and certification experiences I have completed.

The path is broad, technical, and practical. The exam then removes the structure of the course and asks whether you can recognize the same ideas inside unfamiliar applications, combine them into working exploitation paths, and document the results under pressure.

My biggest lesson was not a specific payload or tool. It was that advanced web exploitation depends on patient reasoning. Enumerate carefully. Read the code. Understand the state. Test one assumption at a time. Write the script when the manual process stops being reliable. Preserve the evidence before moving on.

CWEE was difficult, frustrating, and meaningful. It sharpened how I reason about application behavior and validated skills that transfer directly into product security and application security work.

An earlier version of my exam experience was published as My Experience Earning the Hack The Box CWEE Certification on LinkedIn.