PrestaShop
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Perl backticks/qx// sinks u Apache mod_perl handlerima (dostupnost i eksploatacija)
Stvarni obrazac: Perl kod formira shell komandni string i izvršava ga preko backticks (ili qx//). U mod_perl AccessHandler-u, delovi zahteva pod kontrolom napadača, npr. $r->uri(), mogu dospeti u taj string. Ako bilo koja grana konkatenira neobrađen unos i zatim ga prosledi shell-u na izvršenje, dobijate pre-auth RCE.
Rizične Perl primitivne operacije za izvršavanje (pokreću shell ako dobiju jedan string):
- Backticks / qx//: my $out =
cmd ...; - system kada se pozove sa jednim stringom: system("/bin/sh -c '...'") implicitno
- open sa pipe-om: open my $fh, "cmd |" or "| cmd"
- IPC::Open3 kada se pozove sa jednim stringom
Minimalni ranjiv obrazac primećen u stvarnom svetu:
sub getCASURL {
...
my $exec_cmd = "...";
if ($type eq 'login') {
$exec_cmd .= $uri; # $uri from $r->uri() → attacker-controlled
my $out = `$exec_cmd`; # backticks = shell
}
}
Key reachability considerations in mod_perl:
- Handler registration: httpd.conf mora usmeriti zahteve u vaš Perl modul, npr. PerlModule MOD_SEC_EMC::AccessHandler i konfiguracija koja poziva AccessHandler::handler za opseg puta.
- Triggering the vulnerable branch: primorajte neautentifikovani login tok tako da type == "login" (npr. izostavite očekivani auth cookie).
- Resolvable path: osigurajte da vaš zahtev cilja URI koji se rešava unutar konfigurisane oblasti. Ako Apache nikada ne usmeri zahtev kroz handler, sink isn’t reached.
Exploitation workflow
- Inspect httpd.conf for PerlModule/MOD_PERL handler scopes to find a resolvable path processed by the handler.
- Send an unauthenticated request so the login redirect path is taken (type == "login").
- Place shell metacharacters in the request-URI path so $r->uri() carries your payload into the command string.
Example HTTP PoC (path injection via ';')
GET /ui/health;id HTTP/1.1
Host: target
Connection: close
Saveti
- Probajte separatore: ;, &&, |,
backticks, $(...), i enkodovane novolinije (%0A) zavisno od citiranja. - Ako ranije zakrpe citiraju druge args ali ne i URI u jednoj grani, payloads dodat na kraju stringa često rade: ;id# or &&/usr/bin/id#
Ojačavanje (Perl)
- Ne pravite shell stringove. Preferirajte izvršavanje pomoću vektora argumenata: system('/usr/bin/curl', '--silent', '--', $safe_url) — bez shell-a.
- Ako je shell neizbežan, striktno i konzistentno escape-ujte kroz sve grane; tretirajte $r->uri() kao hostile. Razmotrite URI::Escape za paths/queries i jake liste dozvoljenih.
- Izbegavajte backticks/qx// za izvršavanje komandi; uhvatite output preko open3/list forme ako je zaista potrebno bez pozivanja shell-a.
- U mod_perl handler-ima, držite auth/redirect kodne putanje bez izvršavanja komandi ili osigurajte identičnu sanitizaciju kroz sve grane da biste izbegli regresije tipa “fixed everywhere but one branch”.
Lov na ranjivosti
- Pregledajte diff-ove zakrpa modula koji sastavljaju shell komande; tražite nekonzistentno citiranje između grana (npr. if ($type eq 'login') ostavljen neescape-ovan).
- Grep-ujte za backticks, qx//, open\s*(|||, i system\s*(\s* da biste pronašli string-bazirane shelove. Izgradite call graph od sink do request entry ($r) da verifikujete pre-auth dostupnost.
Stvarni slučaj: Dell UnityVSA pre-auth RCE (CVE-2025-36604)
- Pre-auth command injection putem backticks u AccessTool.pm:getCASURL kada je type == "login" i konkateniran je raw $uri ($r->uri()).
- Dostupno preko MOD_SEC_EMC::AccessHandler → make_return_address($r) → getCASLoginURL(..., type="login") → getCASURL(..., $uri, 'login').
- Praktična napomena: koristite resolvable path koji pokriva handler; inače modul neće biti izvršen i sink neće biti pogođen.
Reference
- It’s Never Simple Until It Is: Dell UnityVSA Pre‑Auth Command Injection (CVE‑2025‑36604)
- Dell PSIRT DSA‑2025‑281 – Security update for Dell Unity/UnityVSA/Unity XT
- watchTowr Detection Artefact Generator – Dell UnityVSA Pre‑Auth CVE‑2025‑36604
tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks