HTML

Az élet kódjai

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

Friss topikok

  • Travis.CG: @hagymi: Úgy emlékszem nem működött, mert dátum volt a cella típusa, nem string. (2026.03.31. 12:20) Excel, mint büntetés
  • Travis.CG: Frissítés: Az operáció nem teljesen sikerült. A képernyő bizonyos időnként elsötétül, csak a hátté... (2026.01.11. 11:30) Iphone képernyő és aksi csere
  • Travis.CG: @webhauser: Én nem vagyok jó programozó. Nem vennéd sok hasznomat. (2025.09.18. 10:26) T0ad 2025
  • Travis.CG: Annyiban én is hibás vagyok, hogy könnyen előjönnek belőlem negatív posztok, ezt akartam ellensúly... (2025.05.22. 19:34) Ne csak a rosszat halljátok
  • sdani: Oh... néha eszembe jut, hogy az EBI után esetleg vissza kellene menni valamennyire az akadémiai vo... (2025.03.18. 16:58) Pontos, jól behatárolt célok

Light CTF

2026.04.19. 17:26 Travis.CG

A gépen két port volt nyitva, a 22-es és a 1337. Utóbbi egy telnet port, de ezt a leírásból is tudjuk. Ha csatlakozunk hozzá, egy kérdést kapunk csak:

Please enter your username:

A leírásban azt is megkapjuk, hogy a smokey nevű felhasználóval tesztelhetünk. Ha beírjuk, visszakapjuk a jelszót. Sajnos ezzel a jelszóval nem tudunk bejelentkezni. De az első kérdés úgyis az admin felhasználó név. Először írtam egy Python scriptet, hogy gyakori felhasználó neveket próbálgasson végig, de nem működött. Ezek szerint célravezetőbb a "többet ésszel, mint brute force-al" hozzáállás.

Azért poénból megnéztem, hogy kapok-e találatot a "bandit" vagy Burt Reynolds nevére. Nem kaptam.

Akkor valami injection-t kell használni. Először pontosvesszőt raktam a felhasználói névbe, de arra nem adott semmit. Utána "-t, de erre sem reagált. Egyszeres idézőjelre viszont kaptam hibaüzenetet!

Error: unrecognized token: "'ize'' LIMIT 30"

Limit 30? Csak nem SQL lekérdezést kell írni? Az "unrecognized token" viszont szokatlan. MySQL biztos nem ad ilyen hibaüzenetet. A kereső szerint SQLite adatbázissal van dolgunk. Oké, ez már ismerős terep. Ha kommentet akartam beírni, akkor is kaptam egy hibaüzenetet:

For strange reasons I can't explain, any input containing /*, -- or, %0b is not allowed :)

Oké, közeledünk. Mi a helyzet egy select-el?

Ahh there is a word in there I don't like :(

Ez nem jó hír. Mi van, ha egy kicsit megváltoztatjuk azt a selectet. Mondjuk Select-re? Erre már nem adott hibaüzenetet. Lássuk mi van az adatbázisban!

' Union Select name from sqlite_master where type='table

A válasz: admintable! Oké, mi van az admintable-ben?

' Union Select sql from sqlite_master where name='admintable

CREATE TABLE admintable (
id INTEGER PRIMARY KEY,
username TEXT,
password INTEGER)

Ez már könnyű innen. 

' Union Select username from admintable where id = '1

Erre megkapjuk az admin felhasználó nevét. Egy ilyen CTF esetén kifizetődő a kíváncsiság. Kíváncsi voltam, mi van, ha 2-t írok be a lekérdezésbe. Erre azt írta ki, hogy flag! Tehát a válaszokat akkor kapjuk meg, ha a következő módszerrel próbálkozunk:

' Union Select password from admintable where id = '1

illetve

' Union Select password from admintable where id = '2

Nagyon jó kis SQL Injection CTF volt! Ez most így olvasva egyszerűnek tűnik, de én SqlLite-ban a .table-t szoktam használni, hogy megtudjam a táblák nevét, a lekérdezésekre úgy kerestem rá. Sokszor lefagyasztottam a lekérdezést, mert beírtam a jó öreg or 1 = 1-t, ami itt nem működött. Az idézőjel sem volt egyértelmű, próbálgattam a "-t is, amíg rá nem jöttem a pontos szintaxisra. A select sql-re meg teljesen véletlenül akadtam rá az oszlopnevek lekérdezését keresve.

Szólj hozzá!

Címkék: biztonság

A bejegyzés trackback címe:

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

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