HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

Itt a CTF ideje

2023.04.29. 07:36 Travis.CG

Miközben nagy erőkkel kerestem, miféle játékban vehetett részt az egyik tanítványom, ráakadtam a CTF-ekre. Azokon belül is a "jeopardy" típusú CTF-ekre. Ezek amolyan kis számítógépes rejtvények, ahol nagyon sokféle tudást kell használni. Különböző kategóriák vannak, például bináris programot kell visszafejteni, fájlokat esetleg partíciókat kell átvizsgálni vagy hálózatokat kell szkennelni.

Ha sikerül megoldani a feladatot, akkor a végén kapunk egy speciálisan formázott szöveget, amivel bizonyíthatjuk, hogy a feladatot megoldottuk.

Én a picoCTF-el kezdtem, mert azt írták, hogy ez középiskolásoknak való. Ehhez képest kegyetlenül nehezek még ezek is. Vannak feladatok, amelyek napokat igényelnek (legalábbis nekem), hogy megoldjam őket, és akadnak olyanok is, hogy csak ülök és nézek, azon gondolkodva, hol is kezdjem el?

Miért írom le mindezt? Mert a közelgő QBParty alkalmából egy kis mini CTF-et is csináltak a szervezők, amit a következő módon oldottam meg. (Nem én voltam az első.) De ez a kis példa megmutatja, milyen feladatok lehetnek egy CTF-ben.

Először is, letöltöttem a QBParty teljes weboldalát a gépre, minden sallanggal együtt. Tehát az összes JavaScript, CSS, kép is lejött. Először grep-el kerestem végig, hátha gyorsan ráakadok valamire. Sok esély nem volt rá, de ezek úgyis gyors módszerek. A HTML forrás tartalmazott egy csomó kikommentelt részt, először ezeket néztem át, de nem találtam semmi érdekeset. A forrás végén volt egy ./container szöveg, ezért megnéztem, hogy ez nem-e egy titkos weboldal, amire nem mutat link, de nem az volt.

Érdekes módon az egyik gif HTML volt, de ez a PayPal-nak kellett, semmi köze nem volt a feladványhoz.

Végül eltávolítottam a kommenteket és megnéztem úgy a weboldalt. A régi Covid rendszabályok jelentek meg. Itt találtam egy PDF-re mutató linket, ami még a szerveren volt, de ez sem bizonyult nyomnak. Átnéztem a CSS-eket, itt találtam egy pókerező kutyákra mutató linket, amit sehol nem használnak a weboldalban. Azt hittem, ez a kép lesz a megoldás, úgyhogy pár napot csak erre a képre szántam, hátha ebbe rejtették el az üzenetet, de ez is zsákutcának bizonyult. A CTF-ekben ugyanis néha képekben rejtenek el üzenetet, amivel nekem nagyon meg szokott gyűlni a bajom, ugyanis rengeteg módszer létezik erre.

Jöttek a JavaScript fájlok. Itt elsőre semmi érdekeset nem találtam. Próbáltam nézni, hogy van-e valami rejtett funkcióra utaló sor, ezért az obfuszkált kódokat csak átfutottam (ez hiba volt, pár napot emiatt vesztettem)

Végül nem találtam semmit. Pihentettem is a problémát.

Utána arra gondoltam, hátha valami nem odaillő dolgot kell keresni. Például a party weboldala minden kategóriához mutatott egy prodot. Érdekes módon a fotó kompóhoz egy demó képe került, ezért itt szaglásztam jobban körül, de ez csak valami trehányság lehetett, a játékhoz semmi köze nem volt.

Közben Pohár is gőzerővel kereste a megoldást, mire Feryx megírta neki, hogy valaki már megfejtette a megoldást, csak nem kérte az ingyen jegyet. Szóval a játék még élt. Ismét aktivizáltam magam.

Ekkor előről kezdtem az egész keresést. A Web Developer Tool-al elkezdtem nézni, milyen fájlokat tölt le, hátha dinamikusan változik a weboldal egy JavaScript segítségével, és ezér nem találtam eddig semmit.  Ekkor vettem észre, hogy a JQuery fájlok a szerveren vannak, nem a googleapis site-ról tölti le őket. Ez korábban elkerülte a figyelmemet. A jquery.min.js végén pedig ott volt egy kommentelt üzenet, hogy majdnem nyertem!

Az üzenet után 9 karakter hosszú szavak voltak, 0-1 számokkal és egy nagy betűvel. A nagy betűk a szavakon belül különböző pozícióban voltak. Az egyértelmű volt, hogy a 0-1 valami bináris szám lesz. Viszont a betűk helyzete miatt arra gondoltam, hogy biztosan el kell tolni a számokat. Először úgy toltam el őket, hogy a betűk helyzete mindegyik szóban ugyan ott legyen.

Maguk a betűk nem hordoztak önmagukban információt, mert a sorrendjük az angol billentyűzet kiosztásnak felelt meg.

A számokkal viszont nem boldogultam. Nem volt ismétlődés a szavakban, márpedig ha ez egy üzenet, akkor ismétlődéseket kell találni. Ezért napokat szenvedtem azzal, hogy a betűk és a bináris számok különböző kombinációiból valami értelmeset tudjak kihozni. Mindegyik kísérlet kudarcot vallott.

Már majdnem feladtam, amikor egy hirtelen ötlettől vezérelve megnéztem, mi van, ha csak egyszerűen kiszedem a betűket a szavakból. A számok ekkor mutattak ismétlődést, sőt az ASCII kisbetűs tartományba estek. Ekkor tudtam, hogy megvan a megoldás. Karakterekké konvertáltam őket, és máris olvasható volt. Mivel kicsit perverz szöveg volt, inkább nem írom le.

A CTF-ek is hasonló mini nyomozásokat igényelnek. Cserébe az ember megismer egy csomó hasznos eszközt, amit a rendszergazdai munka során is használhat. Sokkal célravezetőbb ez a tanulási módszer, mint a száraz doksik olvasása. Ott van például a Wireshark, aminek remek doksija van, csak éppen az hiányzik, hogy hogyan kell használni. A CTF-ekben pedig pont ezt lehet megtanulni.

Szólj hozzá!

Címkék: biztonság demoscene

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr5618112484

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása