Cyber Apocalypse 2025 - Cyber Attack

· 3min · Juicecat
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

index.md-53.pngindex.md-54.png

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. index.md-55.png que podem verificar així: index.md-58.png

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 index.md-56.png Aquest és el codi de attack-ip: index.md-57.png 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:

  1. Exploit un ssrf a attack-domain
  2. Feu que el servidor truqui a 127.0.0.1/cgi-bin/attack-ip per obviar la configuració d'Apache
  3. 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: index.md-69.png 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:.

index.md-68.png

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 index.md-60.png

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 index.md-75.png

Enviar la càrrega útil valida les nostres sospites SSRF index.md-61.png 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 index.md-64.png I canvieu la càrrega útil a Pipe a Bash, de manera que realment s’executa: index.md-73.png A continuació, rebem una devolució de trucada amb la bandera codificada de base64! index.md-67.png