Ethical › Module 14 › Lesson 4
Lab — Map Routes on an App You Own
List URLs and auth requirements for YOUR project or a local demo.
Visual · map_routes_own_app_lab
Map method, path, authn, and authz for YOUR project or a 127.0.0.1 demo. File app-route-map.txt chmod 600. Never crawl a stranger.
Opening
The lab is a locked route map of an app you own — or a loopback demo you start. It is not a directory brute of the internet.
Lessons 1–3 named lanes, gated scope, and wrote fix patterns without payloads. This lab is the artifact later quizzes will assume you have: $HOME/cyberlium-lab/app-route-map.txt. Each row is a route you are allowed to know: HTTP method, path, authentication requirement, authorization requirement, one-line note. Source is either (A) a project YOU maintain — read YOUR router files, do not scan a production tenant you do not own — or (B) a tiny localhost demo this lesson writes, HOST hardcoded 127.0.0.1, GET /__routes prints the table. You fill the same file either way. chmod 600. You will not dirbuster school.edu. You will not spider a classmate’s app. You will not hit a public DVWA. You will not add sqlmap. You will not paste XSS. Topic 10 still holds injection/XSS depth. Bug bounty still requires a policy you read (Lesson 2); this lab does not assign one. Default is YOUR app or the loopback demo. This is original Cyberlium teaching mapped to the CEH v13 web-applications domain — not official EC-Council training, not a cert, not exam dumps. Next is Quiz — Web Applications, then Module 15: Why String-Built SQL Breaks — mechanism plus parameterized queries, still no live SQLi against others.
1. Lab surface: YOUR router files or HOST frozen to 127.0.0.1
If you map an existing project, you read code you already have: routes.py, urls.py, a Flutter or Express router, an OpenAPI file YOU generated. You do not discover routes by firing a fuzzer at a live hostname you do not operate. Production secrets do not go in the map. Use path patterns (/invoices/:id) not live invoice numbers from customers. If you do not have a project, use the demo: HOST must be the characters 127.0.0.1 inside the server file — not argv, not a LAN IP, not “I will bind 0.0.0.0 so a friend can map too.” If HOST != "127.0.0.1", raise SystemExit. Bind loopback only. High port 8766 in the template. Do not run as root. Ctrl+C when the map is filled.
Print HOST on the first output line so the artifact is self-explaining. Windows: py route_demo.py in PowerShell. WSL and Git Bash can use the bash block. Record which OS you used. Do not leave the demo on café Wi-Fi bound to all interfaces. Loopback binding is the control.
Command guide
YOUR router files or loopback — WHAT/WHY
═══ COMMANDS ═══
Command — copy this
cat > "$NOTES" << 'EOF' === ROUTE MAP (Cyberlium M14 L04) === METHOD PATH AUTHN AUTHZ GET / (fill) (fill) ETHICS: MY app or 127.0.0.1 only EOF
2. Required columns: method, path, authn, authz — a map, not a hunt
Required keys in app-route-map.txt: DISCLAIMER, HOST_OR_APP, ROUTE rows (at least four), AUTHN, AUTHZ, FIX_POINTER, ETHICS. Each ROUTE line names GET/POST/PUT/DELETE, a path, whether authentication is none or session (or your app’s real scheme), and whether authorization is public, owner, or role. The demo exposes /health (none/public), /login (none/public form — no stuffing homework), /me (session / self), /admin (session + role admin), POST otes (session / owner). You copy those facts into the notes. You do not try to bypass /admin. You do not send crafted bodies. Mapping is reading the table.
FIX_POINTER must say validation/encoding/server authZ from Lesson 3, and that SQLi/XSS depth lives in Topic 10 / Module 15. DISCLAIMER must include the Cyberlium legal sentence. ETHICS must refuse random sites, public DVWA, and unread bounty. The checker fails if placeholders remain, if sqlmap or payload-shopping phrases appear, or if the disclaimer omits that this is not official EC-Council training.
3. The artifact: app-route-map.txt mode 600 — routes you are allowed to list
Required rows also include: legal line (original Cyberlium teaching mapped to the CEH v13 web-applications domain — not official EC-Council training, not a cert, not exam dumps); HOST 127.0.0.1 or “MY project <name>”; bind 127.0.0.1 if demo; lockdown Ctrl+C; chmod reminder. Notes that list school.edu, a café portal, or a public DVWA fail ethics even if Python ran. World-writable 777 fails. If the demo refused because you edited HOST, that refusal is a passing ethics check — put HOST back to 127.0.0.1 and rerun, or map YOUR repo instead.
Failure modes that still pass if you tell the truth: forgot to start the demo, connection refused, you start it and read /__routes on loopback. Port in use — choose 8767 still on 127.0.0.1. Failure modes that fail the course: gobuster against campus, HOST rewritten, map of a classmate API, notes chmod 644 on a shared PC, payload section “for later.”
4. Wrong vs right: crawling strangers vs a locked map of YOUR routes
Worked failure — same word “recon,” opposite target. Right never needs a second host when YOUR repo or loopback can list handlers.
Wrong
HOST = café, campus, classmate, public DVWA, or sys.argv. Directory brute a stranger. sqlmap the map. Paste XSS in a note field. Leave the server on 0.0.0.0. Skip chmod. Call the lab incomplete without a random site. This course is not official CEH training and does not grade that hunt.
Right
Map YOUR project from source, or HOST hardcoded "127.0.0.1" with a refuse otherwise. Fill app-route-map.txt with method/path/authn/authz, chmod 600 under $HOME/cyberlium-lab. Ctrl+C the demo. No payloads. Next: Quiz — Web Applications.
5. Hands-on: optional loopback demo, map file, checker, chmod 600, stop
Follow the block. If you already have a project, you may skip starting the demo and still fill the same keys from YOUR router. If you use the demo: Terminal A server, then GET http://127.0.0.1:8766/__routes in a browser YOU opened on this machine, or curl to loopback only. When notes pass the checker, Ctrl+C the server. Windows notes sit at the bottom of the script comments.
Command guide
Lock the route map — WHAT/WHY
═══ COMMANDS ═══
Command — copy this
grep -E "METHOD|AUTHN|AUTHZ|ETHICS" "$NOTES"; chmod 600 "$NOTES"
Mission: app-route-map.txt — YOUR app or 127.0.0.1, chmod 600
1) Map method/path/authn/authz for a project YOU maintain, or run route_demo.py with HOST = "127.0.0.1" hardcoded and a refuse if HOST is anything else. 2) Fill $HOME/cyberlium-lab/app-route-map.txt (at least four ROUTE lines), run the checker, chmod 600, Ctrl+C the demo if you started it. 3) Ethics: never crawl another host. No public DVWA, no sqlmap, no payloads. Original Cyberlium teaching, not official CEH training, not a cert.
Stuck? Ask Cyberlium AI Mentor
If “the lab is incomplete without spidering a real site” still feels true, ask for a hint — not a target. Try: "Hint only: why HOST must stay 127.0.0.1 or MY repo, which columns authn vs authz need, why app-route-map.txt is chmod 600, and why public DVWA/sqlmap fail ethics?" You still fill the map. No argv HOST. No other IP.
You built a real methodology artifact without leaving ownership: YOUR routes or hardcoded 127.0.0.1, four lanes visible as columns, locked notes, demo stopped. That is authorized application practice as Cyberlium teaches it — original, not an exam dump, not EC-Council lab text, not a cert. Next — Quiz — Web Applications — ten APPLY items on lanes, scope, bounty policy, local DVWA, fix patterns, the HOST lock, and legal mapping. Then Module 15: Why String-Built SQL Breaks — still no live SQLi against others; Topic 10 remains the deep lab path.
Knowledge Check
APPLY: You started the demo and the browser shows connection refused. What is the ethical completion, and what is not?
Multiple choice
Knowledge Check
APPLY: True or False: If loopback is boring, the ethical lab is gobuster against campus plus a public online DVWA.
True or False
Knowledge Check
APPLY: Which note file pairing matches this lab’s ethics and hygiene?
Multiple choice
Knowledge Check
APPLY: curl of http://192.168.0.1/ shows a home router login (TP-Link / Netgear / Huawei / "Router Admin"). Is that DEMO in scope as a hacking target?
Multiple choice