Blog

Kategori

Webb

Beskrivning

Kung Harald, som vill upplevas som modern och i teknisk framkant, har börjat blogga. Nu sprider han dålig stämning även på nätet och trollar i kommentarsfälten.

Platformen han använder verkar ganska minimalistisk i den grafiska upplevelsen och Harriet misstänker att den kanske innehåller brister även i det tekniska. Kan du hjälpa henne att ta sig in i systemet?

Lösning

Förstasidan på utmaningssidan ger oss två möjligheter, “Logga in” eller “Registrera”.

Förstasidan

Registrerar man en användare och loggar in så får man tillgång till bloggen. Det finns en textruta för att skriva egna inlägg, och två länkar, en som visar alla inlägg och en som visar sina egna inlägg.

Blogg

Själva inläggsfunktionaliteten verkar inte vara sårbart för någon form av attack, så det enda vi kan skicka in data till är användarnamnet. Testar vi lite olika typer av SQL Injection-payloads som användarnamnet, t.ex. ' OR 'a'='a';--, och sedan klickar på länken för mina inlägg så får vi upp alla inlägg i systemet.

SQL Injection

Vi kan nu testa att använda UNION för att hämta ut data ur andra tabeller. Vi kan t.ex. använda ' UNION SELECT 1,2;-- för att se att identifiera att det finns två kolumner som hämtas ut i SQL-frågan. Identifiering av DBMS visar att det är en SQLite-databas. För att hämta ut tabellnamnen kan vi använda ' UNION SELECT 1, name FROM sqlite_master;--.

Tabellnamn

För att hämta ut kolumnnamn från tabellen FLAGS kan vi använda ' UNION SELECT 1, sql FROM sqlite_master WHERE tbl_name = 'FLAGS';--. Vi får då fram att det finns en kolumn som heter Flag. För att hämta ut flaggan kan vi använda ' UNION SELECT 1, Flag FROM FLAGS;--.

Flagga

Flagga: undut{grattis-till-flaggan}

n00bz

Home of the n00bz CTF team.


By n00bz, 2024-03-23