Party Cat0%

12/09/24

ExplotaciódeversionsdebucketS3

BucketWars | CSAW CTF 2024

Thanks for sharing!

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ

Explotació de versions de bucket S3
I know your browser history

BucketWars - CSAW CTF 2024 Quals

Benvinguts al meu primer escrit en aquest nou bloc! En aquesta publicació, ens endinsarem en el repte BucketWars dels CSAW CTF 2024 Quals. Aquest repte consisteix a explorar les versions del cub S3 i la recuperació d'objectes.
Per als interessats, podeu trobar el repositori de reptes a GitHub aquí.
Espero que gaudiu d'aquesta immersió profunda a BucketWars. Comencem!

Primers passos

El repte es titulava BucketWars, de manera que es va suposar immediatament que implicava S3 Buckets.
Main page
Naturalment, el meu primer moviment va ser comprovar la imatge src amb l'esperança d'obtenir l'URL del cub S3 immediatament. Malauradament, no hi ha sort: la imatge es va allotjar externament aquí.
Tanmateix, la descripció del repte a la pàgina principal va proporcionar una pista important:
"Mirar més a fons la galleda robada només revela versions passades de nosaltres mateixos que es podrien reflexionar".
Evidentment, la clau estava en la versió. Vaig dirigir-me a la pestanya Versions.

Explorant versions

En comprovar la pestanya Versions, vaig trobar diverses versions amb l'etiqueta V1, V2, V3, V4, and V5.
Versions page
Explorant V1, no he trobat res útil, ni a la pàgina ni al codi font.
V1 page
Vaig continuar investigant les altres versions, però totes contenien només imatges sense cap pista aparent.
V3 page

Aprofundint

Mentre navegava per les versions, vaig notar un patró d'URL consistent: index_v1.html, index_v2.html, etc. Vaig decidir superar els límits i provar index_v6.html.
Not found page
Bingo! Tot i que va retornar un 404 Not Found, la resposta va revelar alguna cosa més valuosa: l'URL del cub S3: https://s3.us-east-2.amazonaws.com/bucketwars.ctf.csaw.io/.
Intrigat, també vaig veure un fitxer anomenat 404.jpg. Pensant que podria amagar alguna cosa, vaig provar d'utilitzar steghide per extreure els fitxers amagats:
Malauradament, no s'han trobat dades. Però encara no havia acabat.

Tocant un mur: Accés denegat

A continuació, vaig visitar l'URL S3 per veure si era accessible públicament.
S3 access denied
Negat! La galleda era privada.
Amb l'enfocament del repte en el control de versions encara en ment, vaig començar a investigar el control de versions S3 i vaig trobar aquesta documentació d'AWS.
Resulta que els cubs versioning-enabled emmagatzemen diverses versions d'objectes. També vaig descobrir un mètode per llistar objectes en un cub versionat mitjançant l'S3 REST API.

Avenç: llista de versions

En afegir /?versions a l'URL del cub S3, podria enumerar els objectes juntament amb els seus VersionIds.
Listing bucket versions
Èxit! Ara tenia els noms dels fitxers (AWS els anomena "objectes") i les seves versions associades. Això va obrir la porta a la recuperació de versions anteriors dels fitxers al lloc web principal.

Recuperació d'objectes d'un cub versionat

Seguint les instruccions dels AWS docs, vaig construir URL per recuperar els objectes mitjançant els paràmetres VersionId.
En lloc de construir manualment aquests URL, vaig utilitzar ChatGPT per generar-los.
ChatGPT-generated links
En visitar els URL generats, finalment vaig descobrir contingut interessant a les versions anteriors de index_v1.html.
Past version of index_v1.html
S'ha revelat la inspecció del codi font...
Source code from past version
Una imatge allotjada a la galleda S3! Vaig baixar la imatge i vaig tornar a intentar extreure dades ocultes amb steghide, però tot i així, sense sort.
Continuant la meva investigació a través de les diferents versions, em vaig trobar amb una altra versió de index_v1.html.
Another past version
El codi font d'aquesta pàgina va revelar alguna cosa encara millor: una contrasenya:
Password found
versions_leaks_buckets_oh_my

Extraient la bandera

Amb aquesta contrasenya, vaig tornar a visitar la imatge que havia baixat anteriorment i vaig provar d'extreure les dades ocultes una vegada més:
Aquesta vegada, ha funcionat! He extret la bandera correctament:
Extracting the flag
csawctf{lEaKY_Bu4K3tz_oH_m3_04_mY!}

Conclusió

Això tanca el repte BucketWars! Va ser una immersió agradable en el control de versions del cub S3 i la recuperació d'objectes. Espero que us hagi estat útil aquest escrit.
No us oblideu de consultar la meva X (anteriorment Twitter) per obtenir més actualitzacions. Ens veiem la propera vegada!
Pau.
Etiquetes:

També et pot interessar