Practice SQL injection in a fictional Instagram-style app's Explore search and login form.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
View lab details
SERVER-SIDEREADY TO LAUNCH
WhatsApp Authentication Bypass
Explore authentication bypass in a fictional WhatsApp-style OTP simulator. Use fictional test data only.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
View lab details
SERVER-SIDEREADY TO LAUNCH
Access Control: Private Profile IDOR
Log in to the fictional TikTok-style training site, then change a profile ID in the address bar to observe insecure direct object references (IDOR) and broken object-level authorization.
APPRENTICE 2PRACTITIONER 0
Sign in to track your progress.
View lab details DH LABS / LAB BRIEF
FEATURED ACCESS CONTROL LABAPPRENTICESIGN IN TO TRACK
Access Private Profile Through IDOR
Log in to the fictional TikTok-style training site, then change a profile ID in the address bar to observe insecure direct object references (IDOR) and broken object-level authorization.
TRAINING APPLICATIONLocal TikTok-Style Simulation
ENTRY ROUTEtiktok.com/login
DIFFICULTYAPPRENTICE
LEARNING OBJECTIVES5
Lab objectives
Log in with the prefilled fictional training account.
Use the single address bar to change the profile ID from 1042 to 1043 and compare the profiles.
Identify why changing an object identifier must not grant access to another user's private data.
Retrieve the training flag shown on the exposed profile and submit it through DH Labs.
Explain how server-side object ownership checks prevent IDOR and broken object-level authorization.
Show full walkthrough and solution
Log in using the prefilled fictional training credentials.
The address bar opens your profile at tiktok.com/profile/1042.
Change only the numeric ID to tiktok.com/profile/1043 and select Go. The displayed profile and its private data change even though the signed-in user did not change.
Copy the training flag shown on the exposed profile and submit it in the DH Labs proof form.
The accepted training flag is DH{you_changed_the_id_and_found_someone_elses_private_profile_data}.
This local simulation demonstrates the vulnerability. Prevent it in real applications by checking, on every server request, that the authenticated user is authorized to access the requested object. Do not rely on hidden UI controls or hard-to-guess identifiers.
This fictional TikTok-style simulation runs locally in the lab and does not contact TikTok or any external service. Student login is required to start this lab and track progress.
SERVER-SIDEREADY TO LAUNCH
Path Traversal
Browse a fictional video platform, open a thumbnail in a new tab, then use that tab's address bar to reach a sandboxed /etc/passwd training file through path traversal.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
View lab details DH LABS / LAB BRIEF
FEATURED PATH TRAVERSAL LABAPPRENTICESIGN IN TO TRACK
Path Traversal: Read the Training File
Browse a fictional video platform, open a thumbnail in a new tab, then use that tab's address bar to reach a sandboxed /etc/passwd training file through path traversal.
TRAINING APPLICATIONYoutube
ENTRY ROUTEvideo.test
DIFFICULTYAPPRENTICE
LEARNING OBJECTIVES5
Lab objectives
Open a video thumbnail in the training browser's new tab.
Change the image path to include ../../../etc/passwd and inspect the simulated file response.
Identify why joining an untrusted path to a storage directory is unsafe without a containment check.
Submit the training flag shown in the sandboxed file.
Explain how canonical-path validation and an allowlisted file identifier prevent traversal.
Show full walkthrough and solution
Open the Path Traversal lab from DH Labs.
Select any sample video thumbnail, then choose Open image in new tab.
In the new tab's address bar, enter video.test/media/../../../etc/passwd and select Go.
The sandboxed response shows a fictional Linux account list, including the lab's linus account. No host files are read.
Submit the flag shown in the DH Labs file viewer.
Prevent traversal by mapping opaque identifiers to allowed files or resolving the final canonical path and verifying it remains inside the allowed root before opening it.
The file viewer uses a fixed, fictional file map and never reads files from the server. Student login is required to start this lab and track progress.
SERVER-SIDEREADY TO LAUNCH
Command Injection
Unsafe construction of operating-system commands.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
Explore topic DH LABS / TOPIC BRIEF
READY TO LAUNCHSIGN IN TO TRACK
Command Injection
Unsafe construction of operating-system commands.
TOPICCommand Injection
AVAILABLE LABS1
APPRENTICE1
PRACTITIONER0
Open the topic practice path to see its labs and launch an exercise. Sign in is required to start labs and save progress.
SERVER-SIDEREADY TO LAUNCH
Business Logic Vulnerabilities
Use Burp Suite to inspect the supplied Amazon-style demo checkout and test whether its client-supplied price is trusted. The target is a dedicated training app, not Amazon.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
Explore topic DH LABS / LAB BRIEF
FEATURED BUSINESS LOGIC LABAPPRENTICESIGN IN TO TRACK
Bypass Client-Side Price Validation
Use Burp Suite to inspect the supplied Amazon-style demo checkout and test whether its client-supplied price is trusted. The target is a dedicated training app, not Amazon.
TRAINING APPLICATIONDH Amazon Checkout Demo
AUTHORIZED TARGETv0-dh-amazon.vercel.app
DIFFICULTYAPPRENTICE
LEARNING OBJECTIVES5
Lab objectives
Route the designated training browser through Burp Suite and limit scope to v0-dh-amazon.vercel.app.
Inspect the demo hoodie checkout request and identify any price or total controlled by the browser.
Test whether changing the client-supplied price can bypass the demo wallet's balance check.
Explain why the server must calculate totals from trusted product data and enforce payment invariants.
Submit the supplied training flag through DH Labs to save your result.
Show full walkthrough and solution
Start Burp Suite and use its built-in browser, or configure a dedicated browser to use the Burp proxy at 127.0.0.1:8080. Install Burp's CA certificate in that browser to inspect HTTPS.
Set Burp Target scope to v0-dh-amazon.vercel.app only, then open the supplied training app from this page.
In Proxy > HTTP history, inspect the designated demo's Add to Cart or Buy Now traffic and identify the checkout request that carries the product amount.
Use only this training target: send the checkout request to Repeater, change the client-supplied price to fit the demo wallet, and resend it. Compare the response with the original request.
The client-side price validation is bypassed when the checkout accepts a browser-modified price instead of recalculating the amount from trusted server-side product data.
Submit DH{client_side_price_validation_bypassed} in DH Labs. Do not test Amazon or any other site.
Use Burp only with the designated demo host. DH Labs does not intercept traffic or contact Amazon. Student login is required to start this lab and track progress.
SERVER-SIDEREADY TO LAUNCH
Information Disclosure — Debug Information
Trigger a controlled error in an isolated fictional training portal, inspect the simulated response, and identify the debug details that should remain in protected server-side logs.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
View lab details DH LABS / TOPIC BRIEF
READY TO LAUNCHSIGN IN TO TRACK
Information Disclosure — Debug Information
Trigger a controlled error in an isolated fictional training portal, inspect the simulated response, and identify the debug details that should remain in protected server-side logs.
TOPICInformation Disclosure — Debug Information
AVAILABLE LABS1
APPRENTICE1
PRACTITIONER0
Open the topic practice path to see its labs and launch an exercise. Sign in is required to start labs and save progress.
SERVER-SIDEREADY TO LAUNCH
File Upload Vulnerabilities
Upload validation, storage, and safe file delivery.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
Explore topic DH LABS / TOPIC BRIEF
READY TO LAUNCHSIGN IN TO TRACK
File Upload Vulnerabilities
Upload validation, storage, and safe file delivery.
TOPICFile Upload Vulnerabilities
AVAILABLE LABS1
APPRENTICE1
PRACTITIONER0
Open the topic practice path to see its labs and launch an exercise. Sign in is required to start labs and save progress.
SERVER-SIDEREADY TO LAUNCH
Server-Side Request Forgery
Server-side URL fetching and destination controls.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
Explore topic DH LABS / TOPIC BRIEF
READY TO LAUNCHSIGN IN TO TRACK
Server-Side Request Forgery
Server-side URL fetching and destination controls.
TOPICServer-Side Request Forgery
AVAILABLE LABS1
APPRENTICE1
PRACTITIONER0
Open the topic practice path to see its labs and launch an exercise. Sign in is required to start labs and save progress.
CLIENT-SIDE
Browser vulnerabilities
2 categories
CLIENT-SIDEREADY TO LAUNCH
Exploit Netflix Using XSS
Practice reflected XSS in a fictional Netflix-inspired catalogue.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
View lab details DH LABS / LAB BRIEF
FEATURED XSS LABAPPRENTICESIGN IN TO TRACK
Exploit Netflix Using XSS
Explore a fictional Netflix-inspired streaming archive and its catalogue search. Use the search flow to observe how untrusted input is handled in this reflected-XSS exercise.
TRAINING APPLICATIONNetflix Training
ENTRY ROUTE/ (catalogue search)
DIFFICULTYAPPRENTICE
LEARNING OBJECTIVES4
Lab objectives
Open the catalogue search and submit a harmless marker so you can observe the normal search flow.
Compare the submitted value with the results page and identify where the value is reflected.
Test a harmless XSS proof in this training app and observe the browser dialog.
Explain how context-aware output encoding prevents reflected cross-site scripting.
Show full walkthrough and solution
Open the catalogue search in the fictional training app.
Submit a harmless marker and observe how the app displays the search value.
Use the lab's approved harmless XSS proof in the search flow and observe the browser dialog.
The issue is reflected XSS: attacker-controlled input is interpreted as HTML or script rather than rendered as text.
Prevent the issue by applying context-aware output encoding and avoiding unsafe HTML insertion.
The training app runs inside DH Labs. The browser stays on your academy URL. Student login is required to start this lab and track progress.
CLIENT-SIDEREADY TO LAUNCH
Cross-Site Request Forgery
Unwanted actions triggered through a signed-in browser.
APPRENTICE 1PRACTITIONER 0
Sign in to track your progress.
Explore topic DH LABS / TOPIC BRIEF
READY TO LAUNCHSIGN IN TO TRACK
Cross-Site Request Forgery
Unwanted actions triggered through a signed-in browser.
TOPICCross-Site Request Forgery
AVAILABLE LABS1
APPRENTICE1
PRACTITIONER0
Open the topic practice path to see its labs and launch an exercise. Sign in is required to start labs and save progress.
Lab previews are public. Sign in is required to start a lab and save personal progress.