Webhacking and Security

RSSIL 2012 – Recapitulatif rapide des épreuves Web

This article is in french, sorry for the non-french speakers🙂.

J’ai participé il y a quelques heures au CTF organisé par ACISSI à RSSIL avec l’équipe Big-Daddy, il y avait une bonne diversité d’épreuves (70 épreuves quand même, GG!), voilà un récapitulatif/write-up très rapide des épreuves web, le web étant mon domaine de prédilection, excusez-nous du manque d’images, cet article s’addresse principalement aux participants qui étaient là bas au final.

Web 1-1
Sûrement une dont j’ai le moins de souvenir, une injection SQL simple il me semble, il suffisait après de se logguer et récupérer le flag.

Web 1-2
On a passé énormément de temps sur celui-là pour pas grand chose, on a essayé de déobfusquer le code javascript, on a cherché des logs, en fait il suffisait de trouver un dossier /backup, tout simplement…

Web 1-3
Une injection SQL dans l’url, c’était quelque chose genre frame.php?p=f18m, il fallait modifier l’integer à l’intérieur, type f18 UNION SELECT… — -m, récupérer le mot de passe de snake.

Web 1-4
Même type d’épreuve que la 1-2, du guessing, il y avait une page de login qui redirigeait vers valider.php, il fallait trouver valider.php~ qui donnait le code source avec la key.

Web 1-5
Une instruction nous disait de trouver le menu caché, une page était pas affichée, il suffisait d’incrementer ?p déjà, ?p=8 nous donnait une page de login, une injection SQL était possible également dans la deuxième variable qui s’occupait d’afficher un menu au bas de la page, &m=m0m1m2…, il suffisait de faire &m=m0 UNION SELECT 1,2,3,4,5 — – récupérer encore une fois le login et pass et se logguer pour trouver la key.

Web 2-1
Une blind SQL injection dans la partie de login qui nous permettait de récupérer le mot de passe de codej en md5, cracké facilement qui, de mémoire donnait quelque chose genre “bleu59” qui était la clef pour valider.

Web 2-2
Un tableau avec des menus et colonnes aléatoires et des points de couleurs, il fallait donner la coordonnée exacte plusieurs fois en moins de x secondes. De notre côté on a codé un tool qui faisait un OCR sur les caractères puis choppait la bonne position de chaque points au final, code en python pour ses librairies qui s’y prêtent bien.

Web 2-3
Un captcha à valider 5x en 10 secondes, on a dû coder un tool en python pour le valider, ce tool lisait le captcha, le mettait en noir et blanc, tournait chaque caractères correctement, retirait le bruit et lisait les caractères un par un.

Web 2-4
Encore un captcha, cette fois plus complexe, beaucoup plus coloré, cependant que des chiffres… et 5x en 30 secondes, donc 6 secondes par validations? On a même pas codé de tool et on a fait ça à la main : ).

Web 2-5
C’était une page web, une injection SQL simple était présente dans la partie recherche du site, il nous permettait d’obtenir des logins et des mots de passes, les mots de passes étaient encryptés. La première étape était de deobfusquer le code javascript pour le comprendre un peu mieux et on s’est rendu compte qu’il suffisait juste de passer le pass crypté dans la fonction de cryptage pour le decrypter au final, donc on s’est loggué avec le login et le pass crypté, le javascript s’est occupé de nous donner le mot de passe d’origine qui était la key pour valider🙂

Web 3-1
Un wordpress, c’est la seule épreuve qu’on a pas validée par manque de temps mais en gros il fallait passer le site sous scan grâce à WPscan, trouver un plugin qui se nomme “dbmanager” ou quelque chose du genre, accéder à wp-content/plugins/dbmanager/ et il y avait des backups dedans.

Web 3-2
Un site type officiel acceptait les cartes d’identités et lisait les informations qui étaient dessus, il suffisait juste de faire une injection SQL dans le nom, un simple PETE’ OR ‘1’=’1 a suffit à afficher toutes les requêtes, les premières entrées contenaient des logins avec des md5, certains étaient pas crackables, il y en a un finalement qui était possible, une fois loggué la clef était facilement trouvable.

Web 3-3
Une page était donnée avec comme indice “le temps est compté”, on a vite deviné que c’était une full blind sql injection, elle était dans le formulaire de contact sur la première page, on a vite fait de récupérer le login et mot de passe admin (admin/time) pour trouver le flag.

Web 3-4
Une page avec une inscription, une fois inscrit et loggué, le cookie de session était simplement du base64_encode(serialize()), on a vite fait passer notre utilisateur en tant qu’admin.

Web 3-5
Sûrement la plus drôle qu’on a résolu le plus rapidement étrangement, un seul indice “brainfuck”, en gros il y avait des liens de pages type ?p=2222222222247222265222241… on a dû trouver leur correspondance en brainfuck, par exemple 2 = +, etc… on s’est rendu compte après décryption du brainfuck obtenu que c’était une page php, il y avait une administration qui nous posait problème du coup on a include ../admin/.htpasswd, et bruteforce le mot de passe htpasswd, même si on pense qu’un ../admin/index.php/html aurait très bien fait l’affaire.

Petit mot de fin
Merci encore aux organisateurs de RSSIL, les épreuves n’ont pas été super compliquées en web mais il y avait de tout et ça couvrait pas mal de choses au final donc pourquoi pas, disons que j’ai été un peu déçu de ne rien avoir appris comparé à l’année passée… (PUT dans un serveur REST, injection nosql/mongodb, etc etc). L’organisation a été superbe, le net a marché 90% du temps, comparé à l’année passée où il bugguait 90% du temps🙂. On s’est bien amusés sur le web en tout cas! En espérant vous revoir une prochaine année, en attendant, je m’en vais dormir.

Rioru.

PS: Je m’occuperais peut-être de réécrire tout ça de façon plus clean quand j’aurais un peu de temps, le soucis c’est que je n’ai pas d’images du tout : / complètement oublié de prendre des screenshots.

One response

  1. DEVERT Tony

    Merci pour ce rapide retour !🙂 c’est toujours instructif de voir les solutions (qui, pour certaines, parraissent évidentes) des épreuves où l’on s’est cassé les dents ^^

    June 6, 2012 at 8:28 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s