Cyber Apocalypse 2025 - Cyber Attack
Table of Contents
Cyber Attack (Web)
Per a aquest repte, se’ns proporciona una IP i, presumptament, el codi font del lloc web en aquesta IP
Mirant el codi, veiem diverses ubicacions d’injecció potencial. El lloc està utilitzant scripts CGI Python per gestionar les sol·licituds i un index bàsic.php sense explotacions del servidor. El primer que em ve al cap és la injecció de CRLF, ja que no veiem la validació ni la desinfectació de Regex sobre el nom de Param, així com que s’imprimeix verbosament com a capçalera.
que podem verificar així:
Això funciona perquè mentre s’imprimeix l’encapçalament, injectem \r\n
, que després podem injectar capçaleres arbitràries a
A més, veiem un altre guió aparentment protegit a CGI-bin, cosa que implica que primer hem d'explotar attack-domain
abans d'atacar attack-ip
Aquest és el codi de
attack-ip
:
Aquí veiem la mateixa injecció d’ordres amb
os.popen
, però aquesta vegada No està protegit per un regex, cosa que significa que aquest hauria de ser el nostre objectiu final.
Per tant, hem de:
- Exploit un ssrf a
attack-domain
- Feu que el servidor truqui a
127.0.0.1/cgi-bin/attack-ip
per obviar la configuració d'Apache - Injecta una càrrega útil al
os.popen
Quan mirem el DockerFile que va tenir el repte, veiem que diversos addons d’Apache habilitats deliberadament, cosa que em fa curiositat:
Vaig passar un temps llarg intentant explotar camins alternatius i baixar forats de conill, però finalment vaig topar amb això a documentation per a
mod_proxy_fcgi
. Notareu que té una notació peculiar proxy:
.
Abans de fer proves, vaig configurar un túnel accessible públicament, per la qual cosa no necessito confiar en NGROK o BURP Collaborator, acolliré aquí un servidor web de Python senzill per capturar respostes
Així que ara enviem una càrrega útil a cegues per fer ping al nostre túnel. Tingueu en compte que cal codificar la sol·licitud de proxy, ja que és una segona sol·licitud nidificada dins del primer
Enviar la càrrega útil valida les nostres sospites SSRF
SSRF va aconseguir. Ara ens traslladem a explotar. Recordeu -vos que ja hem vist el codi de
attack-ip
, de manera que sabem que és fàcilment vulnerable a la injecció de comandaments, ja que no hi ha cap regex que el protegeixi. Crearé index.html al meu túnel que conté un script per exfiltrar la bandera
I canvieu la càrrega útil a Pipe a Bash, de manera que realment s’executa:
A continuació, rebem una devolució de trucada amb la bandera codificada de base64!