===== regexdb ===== ==== Overview ==== Ever played Googlewhack? Well, this is a bit easier and gives you more power, enjoy. ==== Solution ==== [[http://www.googlewhack.com/|Googlewhack]] est un jeu qui consiste a rechercher 2 mots en utilisant Google (sans les guillemets) pour n'obtenir qu'un seul resultat. L'epreuve consiste en une page web avec un champ de saisie texte et un bouton "submit query". L'epreuve s'appelant regexdb on va essayer avec des regex. Apres submission, le resultat de la requete est affichee sous la forme: **Results: x** avec x le nombre de donnees qui ont le bon format. S'il n'y a qu'un resultat, celui-ci est affiche On commence par **/.*/** pour trouver le nombre total de donnees et on obtient 18. Ensuite on va bruteforcer pour trouver la longueur des cles en utilisant un script tant qu'on n'a pas les 18 resultats en utilisant une regex de la forme **/^.{i}$/**. On obtient les resultats suivants /^.{0}$/-> /^.{5}$/ -> 29C3_ /^.{9}$/ -> Key: None /^.{10}$/ -> 2 res /^.{12}$/ -> Hello World! /^.{13}$/ -> 29C3_NoBadOne /^.{16}$/ -> 29C3_____NO_____ /^.{17}$/ -> 2 res /^.{18}$/ -> 29C3_ImSimplyWrong /^.{23}$/ -> 23 23 23 23 23 23 23 23 /^.{24}$/ -> This one is unrelated... /^.{32}$/ -> 29C3_AnotherOneWhichIsWrong /^.{37}$/ -> 29C3_NotAKey <- this one is not a key /^.{40}$/ -> 2 res /^.{42}$/ -> 42 42 42 42 42 42 42 42 42 42 42 42 42 42 Il faut donc continuer en regardant de plus pres les requetes qui retournent plus de un resultat (ici 2). Pour cela, connaissant la longeur de la key, on va bruteforcer chaque charactere pour n'obtenir qu'un resulat. Pour obtenir le deuxieme, il suffit "d'inverser" la requete. Par example si la key commence par a, on va faire une requete avec ^a (ie ne commence pas par a). On obtient ensuite pour 10: 29C3_Wrong Key: 29C3_ 17: K3y: 29C3_AlsoBad Wrong: 29C3_Wrong Et pour 40 (pour le bruteforce des characteres, il faut faire attention a bien escaper les characteres speciaux avec le backslash (\. etc) On obtient la key (qui apparait aussi 2 fois) **29C3_Well.This/Is#Not+The|Wrong?Key**