Skip to main content
  1. Blogposts/

Mitre att&ck-mappning ✨

·328 words·2 mins· loading · · ·
Rasmus
Author
Rasmus
Att dela en ide eller två kan vara bra för hjärnan
Table of Contents
  • tactic: TA0001 (Initial Access) technique: T1190 (Exploit Public-Facing Application) procedure: “IDOR via förutsägbar ID-sekvens”

**Riskbedömning:**
`CVSS 8.6` – Som att ha hänglås på grinden men glömma låsa ytterdörren. 😱

---

### 🕵️♂️ Så hittar du IDOR-sårbarheter
1. **Steg 1:** Fånga trafik med Burp Proxy
2. **Steg 2:** Testa med curl:
   ```bash
   curl -H "Authorization: Bearer [TOKEN]" https://target.com/api/v1/user/1338/profile
  1. Steg 3: Automatisera med Burp Intruder (testa ID:n 1000-9999)

“Men vi har referer-kontroll!” 😏 Bypassa med:

GET /api/v1/user/1339/profile
X-Original-URL: /legit-sida  # 🎩 Trollkonst!

💥 Del 2: Path Traversal – Din ZIP-fil är en trojansk häst
#

🧩 MITRE ATT&CK-mappning
#

  • Taktik: TA0001 (Initial Access)
  • Teknik: T1190 (Exploit Public-Facing App) → T1059 (RCE)

“En ZIP-fil med filnamnet ‘../../etc/passwd’ är som en brevduva med sprängmedel.” 💣


🔥 Sårbarhetsanalys: Från filskrivning till RCE
#

Kodkatastrof:

// Osäker kod utan sanering
var fileName = TarReaderEntry.getFileName(); // "malicious/../../etc/passwd"
File.Create(fileName); // 💥

Upptäcktsprocess med CodeQL:

codeql database analyze --format=sarif-latest -q ./custom-zipslip.ql

Anpassad Data Flow-regel:

override predicate isAdditionalStep(DataFlow::Node src, DataFlow::Node sink) {
  exists(MethodAccess ma | ma.getMethod().getName() = "name" | ...)
}

🛠️ Verktygskonfiguration – Din säkerhetsverktygslåda
#

burp_suite:
  match_replace_rules:
    - type: "Request Header"
      replace: "Cookie: session=INJECTED_SESSION"  # 🤖 Automatisk sessionsrotation

codeql:
  custom_rules: "Anpassade regler för ZIP-bibliotek"

💡 Rekommendationer – Gör koden hackarresistent
#

  1. Sanera som om det vore kirurgiska instrument:
    var safePath = Path.GetFullPath(fileName).StartsWith(rootDir);  // ✅
    
  2. Mästra CodeQL-dataflöden – det är som röntgenblick för kod
  3. Testa med “riktiga” payloads: %2e%2e%2f istället för ../

🎯 Slutord: Säkerhet är ett evigt kapplopp
#

“Att strunta i IDOR och Path Traversal är som att lämna bilnycklarna i tändningen – någon kommer köra iväg med dem.” 🚗💨

Utmaning till dig:

  • Granska dina API:er – använder ni gissningsbara ID:n?
  • Testa ZIP-uppladdning med ../exploit.php – vad händer?

👨💻 Vill du lära dig mer? Boka min workshop om CodeQL och säker dataflödesanalys!

“Det perfekta brottet existerar inte – men det gör den perfekta säkerheten heller inte. Det handlar om att göra det tillräckligt jobbigt.” 🔐💪

Vad gör DU idag för att skydda din kod? 💬⬇️