Skip to main content
  1. Blogposts/

đŸ•”ïžâ™‚ïž sĂ„ hittar du dolda datalĂ€ckor i ditt api 🛍

·607 words·3 mins· loading · · ·
Rasmus
Author
Rasmus
Att dela en ide eller tvÄ kan vara bra för hjÀrnan
Table of Contents

Klockan Ă€r 02:47. Du sitter med en kall kopp kaffe och tror att ditt API Ă€r sĂ€kert. Men nĂ„gonstans i mörkret, bakom en oanvĂ€nd parameter eller en misskonfigurerad header, lĂ€cker din applikation data som en sil. Det kanske Ă€r anvĂ€ndar-ID:n, interna jobbtitlar eller till och med lösenordshashar som sipprar ut. Hur hittar man dessa osynliga springor? LĂ„t oss prata om hur du blir en digital lĂ€ckdetektiv – med rĂ€tt verktyg och lite fiffiga knep.


NÀr API:et blir en pratglad skvallerkÀring
#

TĂ€nk dig att ditt API Ă€r som ett hus med hundratals dörrar (parametrar). Vissa dörrar Ă€r lĂ„sta (sĂ€kra), andra stĂ€ngda men olĂ„sta (kĂ€nsliga), och nĂ„gra stĂ„r pĂ„ glĂ€nt (lĂ€ckande). Fuzzing Ă€r som att gĂ„ runt och försiktigt trycka pĂ„ varje dörrhandtag – inte för att bryta sig in, utan för att höra vilka som gnisslar “psst, hĂ€r finns nĂ„got intressant!”.

Verktyg som ffuf Ă€r din ultraljudsapparat för att kartlĂ€gga dessa dörrar. Med en ordlista (t.ex. burp-parameter-names.txt) skickar du ut smĂ„ vibrationer och lyssnar efter ekon. Men precis som i en överfull korridor mĂ„ste du filtrera bort bruset – dĂ€rför Ă€r -fs 19 din virtuella hörselkĂ„pa som dĂ€mpar generiska “ja ja”-svar.


🧭 Jakten pĂ„ de parametrar som viskar för mycket
#

Kör du kommandot: ffuf -w ordlista.txt -u 'http://MÅLET/?FUZZ=testvĂ€rde' -fs 19 …blir det som att skicka ut en svĂ€rm nyfikna myror. Varje myra (parameter) rapporterar tillbaka: “Hittade inget”, “HĂ€r var det tomt” eller – ibland – “OJ, HÄR FINNS EN HEL HYLLA MED DATA!”.

Guldregeln: Lita inte bara pĂ„ HTTP-statuskoder. En 200:a kan vara en lögnare i förklĂ€dnad. Kolla alltid exakt vad som ligger i svaret – en JSON-nyckel som position eller user_role Ă€r ofta en röd flagga.

![[bild.png]]


🔐 NĂ€r “id=123” blir en nyckel till hela organisationen
#

Anta att du hittat en parameter som id. Testar du manuellt med id=1, id=2… blir det som att leta efter en nĂ„l i en höstack med tĂ„ng. DĂ€rför blir ett Python-skript din magnet:

import requests, sys


```python
def brute():
    for val in range(10000):
        r = requests.get(f"{sys.argv[1]}/?id={val}")
        if "position" in r.text:
            print(f"⭐ TRÄFF! ID {val} lĂ€cker: {r.text}")

**Varför detta fungerar:** MÄnga utvecklare antar att hög entropi (t.ex. UUID) = sÀkerhet. Men om systemet anvÀnder sekventiella ID:n, blir det som att ha ett dörrlÄs dÀr varje nyckel Àr föregÄende nummer +1.

---

## 🎹 Konsten att lura rate limits – en headerhaxares guide

Rate limits Àr som nattvakter som rÀknar antal intrÀden. Men vad hÀnder om du byter kostym varje gÄng du gÄr in? Genom att manipulera headers som `X-Forwarded-For` eller `X-Forwarded-IP`, blir du en mÀsterexpert i digital kamouflage:

```php
// SÄrbar logik
if(!in_array($_SERVER['HTTP_X_FORWARDED_FOR'], $whitelist)) {
    header("HTTP/1.1 401 Unauthorized");
}

HÀr Àr tricket: Backends som blint litar pÄ dessa headers Àr som vakter som kollar legitimationer ritade med krita. Byter du IP för varje request (X-Forwarded-For: 1.3.3.1, 1.3.3.2, osv.), blir det som att komma inklÀttrande genom ett fönster medan vakten tittar Ät andra hÄllet.


Nu Àr det din tur att bli en sÀkerhetsfÀltskogare
#

Du behöver inte vara en hackermÀstare för att börja. Börja med att:

  1. Skapa en sandlĂ„da – en lokal testmiljö dĂ€r du kan experimentera fritt
  2. LĂ€r dig lĂ€sa svarens kroppssprĂ„k – en liten storleksĂ€ndring kan vara en skrikande varning
  3. Var nyfiken, men respektfull – testa aldrig pĂ„ system du inte har tillstĂ„nd att granska

Kom ihĂ„g: Varje lĂ€cka du hĂ„ller stĂ€ngt Ă€r som att sĂ€tta ett plĂ„ster pĂ„ internetets sĂ„rbara hud. Det handlar inte om perfektion – det handlar om att göra det lite svĂ„rare för de som har ont uppsĂ„t.

SĂ„, vad vĂ€ntar du pĂ„? 🚀 Starta terminalen, vĂ€lj en ordlista – och lĂ„t jakten börja. Vem vet vilka dolda dörrar du hittar bakom nĂ€sta parameter…