![]() Geek, nouvelles technologies, société et jeux vidéos! | |||||
Vous avez toujours rêvé de pirater le site de la Nasa? De récuperer des documents secrets depuis les renseignements généraux? Mais hélas vous avez peur de vous faire attraper par la HADOPI (non, non, arrêtez de rigoler) et surtout vous n'avez pas les moyens techniques pour faire ces prouesses. Heureusement Internet a pensé à vous invite donc à vous échauffer sur un site prévu pour : NewbieContest. Au programmeNewbieContest est un site regroupant des épreuves de programmation, de logique, de décryptage, de stéganographie et bien sûr de hacking et vous en aurez à toutes les sauces : injection SQL ou XSS, gestion des cookies, dialogue avec un bot sur IRC,... le tout dans un environnement isolé prévu pour avec le petit forum d'entraide quand on sèche ou qu'on veut trouver la réponse rapidement. Voici ce qui est proposé :
Un peu d'aide pour résoudre les énigmesLes expressions régulières c'est très bon! Mangez-en!J'en ai complètement abusé lors de ma migration en PHP5, les expressions régulières vont vous sauver la vie pour la récupération des paramètres des énigmes dans les pages ou par le bot IRC. Je vous donne quelques exemples : Rechercher un nombre dans une phrase : preg_match("#([0-9]+)#",$txt,$result);
$nombre = $result[1];
Trouver une phrase commençant par un texte sans vérifier la casse : $texte = "L'énigme est";
preg_match("#^($texte.*)#i",$txt,$result);
Faites juste attention au point . qui veut dire "n'importe quel caractère", il faudra l'échapper avec un backslash. Injection SQL et XSSOn en entend beaucoup parler en ce moment où les grands sites se font pirater avec ces techniques. En gros on injecte du code SQL ou Javascript dans des requêtes pour faire se comporter le site d'une certaine façon ou pour récupérer des informations dans la base de données, et ce en passant par les données de formulaire ou les requêtes dans l'URL. Pour le XSS, il suffit de mettre du Javascript dans un champ de formulaire, comme par exemple le très célèbre : <script type="text/javascript">
alert("Vous avez été piraté!");
</script>
Si cette phrase est rentrée telle quelle dans la base de données, chaque internaute verra une popup s'afficher lors de l'affichage de l'information, de quoi le rebuter et le faire fuir de ce site! Pour le SQL, il suffit de regarder le morceau de code suivant : $query = "SELECT * FROM matable
WHERE mon_texte LIKE '%".$texte."%'";
Et si $texte contenait du SQL? Genre $texte = "' AND 0 UNION SELECT * FROM admin --'";
La requête devient : $query = "SELECT * FROM matable WHERE mon_texte LIKE '%'
AND 0 UNION SELECT * FROM admin --'";
Et hop! On récupère tout plein de données! Pour se protéger de tout ça il y a quelques gestes simples et rapides à faire :
La suite de FibonacciCette suite, vous allez la manger à toutes les sauces, et pourtant c'est une suite de nombres que vous pourrez trouver en tournant un peu la tête dans tous les sens. La suite de Fibonacci se définit ainsi : u1 = 1
u2 = 1
un+1 = un + un-1
En gros le nombre courant est la somme des deux précédents, ce qui donne : 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,...
Et maintenant si on prend la division de deux nombres accolés en allant vers l'infini, le résultat va tendre vers un nombre : (√5+1) / 2, le nombre d'or! Ce nombre représente la proportion parfaite, le rapport entre tous les éléments d'une spirale, d'un écran 16/10, du "canon" grec,... et bien sûr on le retrouve dans la plupart des énigmes de NewbieContest. N'hésitez pas à coder une librairie dans le langage de votre choix pour trouver tous ces nombres, en PHP par exemple : function fibonacci($n)
{
$n0 = 1;
$n1 = 1;
$c = 0;
if ($i<=2)
{
return 1;
}
for($k=3;$k<=$i;$k++)
{
$c = $n1;
$n1 += $n0;
$n0 = $c;
}
return $n1;
}
Ou en Python : def fibo(n):
n0 = 0
n1 = 1
for i in range(n):
n1,n0 = n1+n0,n1
return n1
Et pensez aussi à faire la fonction inverse, ça peut servir... Les épreuves de programmationQuand vous allez envoyer la réponse à l'épreuve de programmation, il faudra faire passer votre session à la page de réponse pour qu'elle puisse identifier à quelle question correspond la réponse. Pour cela il faudra faire un peu de CURL ou de Pyhton pour récupérer la page avec tous ces éléments $curl_instance=curl_init();
curl_setopt($curl_instance, CURLOPT_URL, $url) ;
curl_setopt($curl_instance, CURLOPT_COOKIE, "SMFCookie89=$session") ;
curl_setopt($curl_instance, CURLOPT_RETURNTRANSFER, 1);
$str = curl_exec ($curl_instance);
Une fois la réponse trouvée, il faut renvoyer la session en plus de la réponse avec la même fonction. Attention au type de transfert, GET ou POST... Quelques astuces
Sur ce, éclatez-vous bien et tirez-vous bien les cheveux sur les énigmes proposées et pourquoi pas ne pas en proposer vous-même? + Sources des images Vous pouvez aussi lire :
![]() Rédacteur et programmeur principal du Goufablog. Ingénieur de profession et avide de connaissances technologiques et scientifiques il partage son savoir à travers ces différents articles. Plus de renseignements sur la page de contact. ![]()
|
![]() |
||||
|
Votre avis?