PrestaShop
Reading time: 5 minutes
tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Perl backticks/qx// sinks in Apache mod_perl-handelaars (reachability and exploitation)
Werklike patroon: Perl-kode bou 'n shell-opdragstring en voer dit uit via backticks (of qx//). In 'n mod_perl AccessHandler kan aanvaller-gekontroleerde versoekkomponente soos $r->uri() in daardie string vloei. As enige tak rou insette concateneer en dit dan met 'n shell evalueer, kry jy pre-auth RCE.
Riskante Perl-uitvoeringsprimitiewe (spawn a shell when given a single string):
- Backticks / qx//: my $out =
cmd ...; - system with a single string: system("/bin/sh -c '...'") implicitly
- open with a pipe: open my $fh, "cmd |" or "| cmd"
- IPC::Open3 with a single string
Minimale kwesbare vorm waargeneem in die wild:
sub getCASURL {
...
my $exec_cmd = "...";
if ($type eq 'login') {
$exec_cmd .= $uri; # $uri from $r->uri() → attacker-controlled
my $out = `$exec_cmd`; # backticks = shell
}
}
Belangrike bereikbaarheidsoorwegings in mod_perl:
- Handler registrasie: httpd.conf moet versoeke na jou Perl-module roeteer, bv. PerlModule MOD_SEC_EMC::AccessHandler en 'n konfigurasie wat AccessHandler::handler vir 'n pad-scope aanroep.
- Aktivering van die kwesbare tak: forceer die ongeverifieerde login-flow sodat type == "login" (bv. laat die verwagte auth cookie weg).
- Oplosbare pad: verseker dat jou versoek 'n URI teiken wat binne die gekonfigureerde scope oplos. As Apache die versoek nooit deur die handler roeteer nie, word die sink nie bereik nie.
Eksploitasie-werkvloei
- Inspect httpd.conf for PerlModule/MOD_PERL handler scopes to find a resolvable path processed by the handler.
- Stuur 'n ongeverifieerde versoek sodat die login redirect path geneem word (type == "login").
- Plaas shell metacharacters in die request-URI path sodat $r->uri() jou payload in die command string dra.
Voorbeeld HTTP PoC (path injection via ';')
GET /ui/health;id HTTP/1.1
Host: target
Connection: close
Wenke
- Probeer skeidingstekens: ;, &&, |,
backticks, $(...), en gekodeerde newlines (%0A) afhangend van die aanhaling. - As vroeëre patches ander args aanhaal maar nie die URI in een tak nie, werk payloads wat aan die einde van die string aangeheg is dikwels: ;id# or &&/usr/bin/id#
Verharding (Perl)
- Moet nie shell-strings bou nie. Gebruik eerder argument-vektor uitvoering: system('/usr/bin/curl', '--silent', '--', $safe_url) — geen shell.
- As 'n shell onvermybaar is, ontsnap streng en konsekwent oor alle takke; behandel $r->uri() as vyandig. Oorweeg URI::Escape vir paths/queries en sterk allowlists.
- Vermy backticks/qx// vir opdraguitvoering; vang uitvoer via open3/list-vorm as dit werklik nodig is sonder om 'n shell aan te roep.
- In mod_perl handlers, hou auth/redirect-kodepaaie vry van opdraguitvoering of verseker identiese sanitasie oor alle takke om “fixed everywhere but one branch” regressies te vermy.
Soek na kwesbaarhede
- Doen patch-diff op modules wat shell-opdragte saamstel; soek na inkonsistente aanhaling tussen takke (bv., if ($type eq 'login') wat onontsnap gelaat word).
- Grep vir backticks, qx//, open\s*(|||, en system\s*(\s* om string-gebaseerde shells te vind.
- Bou 'n oproepgrafiek vanaf sink na request entry ($r) om pre-auth bereikbaarheid te verifieer.
Werklike geval: Dell UnityVSA pre-auth RCE (CVE-2025-36604)
- Pre-auth command injection via backticks in AccessTool.pm:getCASURL wanneer type == "login" wat die rou $uri ($r->uri()) aanmekaar sit.
- Bereikbaar via MOD_SEC_EMC::AccessHandler → make_return_address($r) → getCASLoginURL(..., type="login") → getCASURL(..., $uri, 'login').
- Praktiese nuansa: gebruik 'n oplosbare path wat deur die handler gedek word; anders sal die module nie uitvoer nie en sal die sink nie bereik word nie.
References
- 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
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks