class AbdelkarimeAlHannachi:
role = ["Pentester", "AppSec Engineer"]
focus = ["Web Application Security", "Code Review", "Secure Development"]
methodology = "Manual pentesting β Code review β Secure fix β Semgrep detection"
currently = "Completing all PortSwigger labs (zero extensions, 100% manual)"
tools = ["Burp Suite", "Semgrep", "pip-audit", "npm audit"]
languages = ["Python", "Java", "C#", ".NET", "JavaScript"]
mindset = "Think like an attacker. Build like a defender."PortSwigger Web Security Academy βββββββββββββββ All labs β manual, zero extensions
AppSec Code Review βββββββββββββββ Python + Java vulnerable patterns
HackTheBox βββββββββββββββ Active machines
Bug Bounty βββββββββββββββ Starting soon
| Repository | Description |
|---|---|
| π portswigger-access-control-appsec | Reversing PortSwigger Access Control labs β vulnerable code, secure fixes in Python & Java, Semgrep rules |
| π΄ portswigger-sqli-appsec (coming soon) | SQL Injection labs reversed β from exploitation to secure parameterized queries |
| π΄ portswigger-xss-appsec (coming soon) | XSS labs reversed β DOM, reflected, stored β vulnerable patterns and fixes |
| π΄ portswigger-auth-appsec (coming soon) | Authentication labs reversed β broken auth patterns and secure implementations |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β 1. PENTEST β exploit the vulnerability manually β
β 2. REVERSE β find the vulnerable code behind it β
β 3. ANALYZE β understand the developer's mistake β
β 4. FIX β write the secure version β
β 5. DETECT β write a Semgrep rule to find it again β
β β
β "Think like an attacker. Build like a defender." β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Every vulnerability I find comes down to this:
# β Wrong: authorization based on CLIENT-CONTROLLED data
# β
Right: authorization based on SERVER-SIDE data
# The attacker controls headers, parameters, and cookies.
# The server controls the session store and the database.
# Never confuse the two.