Top 20

1 0x00h 695 pts
2 boris39 695 pts
3 neoxquick 676 pts
4 maf-ia 658 pts
5 eax 657 pts
6 thefinder 639 pts
7 benito255 604 pts
8 nikokks 597 pts
9 mego 588 pts
10 madbat2 579 pts
11 plucth 561 pts
12 Mart 549 pts
13 Stupefy 529 pts
14 tehron 502 pts
15 Kithyane 497 pts
16 egosum 470 pts
17 rostale 462 pts
18 malose 427 pts
19 CoYoTe99 414 pts
20 Undr 412 pts

Classement complet

Shoutbox

21 Oct - 9:48 pm

Équation du challenge 52 corrigée, merci

16 Oct - 8:43 am

Bonjour, il y a aussi un problème d'affichage "invalid equation" dans le challenge 52. Merci

14 Oct - 8:57 pm

Barbapapou l'équation du challenge 29 a été corrigée

4 Oct - 10:30 am

Bonjour, il y a un problème avec l'affichage d'une équation dans le challenge 29

24 Aug - 7:10 pm

@rostale, en effet l'épreuve 21 ne fonctionne plus depuis un moment, pour l'instant on a pas prévu de temps pour la réparer je pense qu'on va finir par la supprimer tout simplement. @nikokks, ok je t'envoie un mail

22 Aug - 11:40 pm

Salut Metatr0n. pourrait on avoir une discussion en MP. J'imagine que tu as mon mail. Ce serait pour discuter de microcontest en general.

28 Jul - 10:38 pm

Pouvez-vous vérifier l'épreuve Email (21) ? En effet, je ne reçois pas d'email de la part du site. Merci

28 Jul - 7:29 pm

Bonjour et merci. Cependant, j'ai résolu le challenge qui me posait pb, donc plus rien à demander... pour l'instant.

28 Jul - 1:48 pm

Ça devrait être réparé maintenant

28 Jul - 12:04 pm

Bonjour, effectivement j'ai le même message d'erreur, on va investiguer merci d'avoir rapporté le soucis

Connexion
Mot de passe oublié

Supportez nousx

Vous aimez µContest ?
Supportez nous en votant (fun et difficulté) pour µContest sur WeChall :)
Si vous ne l'avez pas encore fait, profitez-en pour lier votre compte
Wechall à µContest pour pouvoir voter !

Merci

Détails de l'interface (Version 2)

Pour valider une épreuve, vous devez récupérer les variables nécessaires à sa résolution, et renvoyer la ou les réponses au site. Cette page décrit l'interface et le protocole de communication avec le site.
Dans le cas où vous ne voulez pas vous soucier de l'interface avec le site, la bibliothèque µContest est à votre disposition, disponible pour l'instant en C/C++, Python et Java.

Récupération des variables d'une épreuve

Première étape, vous devez vous connecter au site pour récupérer les variables. Pour cela, vous devez récupérer la page : http://www.microcontest.com/contests/i/contest.php, avec i l'ID de l'épreuve que vous voulez valider.
Par exemple pour l'épreuve Ave Caesar I vous devez récupérer la page http://www.microcontest.com/contests/4/contest.php.
Dans ce cas vous pouvez par exemple obtenir :

Nombre_variables=2
[txt_crypte]
Longueur=50
Valeur=QMLYRCJGCPBSAFCKGLBCDCPEGDJYLRQMLAFCDAFYQQCBCJGJJC
[key]
Valeur=24

Toutes les pages d'épreuves sont formatées de la même manière :
- Une première ligne : Nombre_variables=x avec x le nombre de variables contenues dans la page.
- Une énumération des variabes fournies, commençant par le nom de la variable entre crochets. Les lignes suivantes sont :

  • La longueur de la donnée proprement dite à la ligne suivante, précédée de Longueur=, paramètre qui est optionnel, mais indispensable lorsque la donnée contient des caractères nuls.
  • La donnée de la variable, précédée de Valeur=.

Enfin, chaque ligne se termine par un <br/> (sans espace).


Important

Il ne suffit pas de récupérer simplement cette page pour pouvoir résoudre l'épreuve. Il faut également passer en paramètres POST ces informations :

  • username : Votre nom d'utilisateur
  • password : Votre mot de passe, hashé en SHA1
  • ID : l'ID de l'épreuve
  • contestlogin=1 : Une variable à laquelle vous devez donner la valeur 1
  • version=2 : Vous permet d'activer la version 2 du protocole décrite par cette page. La version 1 n'a plus d'intérêt et n'est plus documentée.

Le site vous renverra dans l'en-tête de la page générée un cookie : un 'PHPSESSID' que vous devez utiliser par la suite pour envoyer votre réponse, sans quoi elle sera ignorée.

Erreurs possibles

Au lieu de la page des variables, vous pouvez récupérer une page contenant :

  • Erreur : Bruteforce interdit, veuillez patienter au minimum 20 secondes entre deux tentatives. : Cela veut dire que vous avez essayé de récupérer des variables deux fois en moins de 20 secondes.
  • Erreur authentification : Cet utilisateur n'existe pas : L'utilisateur n'existe pas.
  • Erreur authentification : Mot de passe incorrect : Le mot de passe est incorrect.
  • Erreur authentification : Votre compte n'est pas encore activé : Le compte n'est pas encore activé.

Envoi de votre réponse au site

Une fois que vous avez traité les données fournies par le site et résolu l'épreuve, vous devez renvoyer cette réponse au site.
Pour cela, il faut faire une requête POST à la page : http://www.microcontest.com/contests/i/validation.php, avec i l'ID de l'épreuve que vous voulez valider.
Les variables retournées au site sont passées en paramètres POST, paramètres portant le même nom que les variables. Aucune données supplémentaires ne sont requises, en dehors des paramètres de connexion (PHPSESSID) fournis par la page contest.php, il ne faut donc pas renvoyer votre pseudo et mot de passe.
Dans l'exemple précédent, on devrait donc renvoyer à la page http://www.microcontest.com/contests/4/validation.php le paramètre suivant :

  • txt_clair
Notez que si vous avez plusieurs paramètres à renvoyer, vous devez les séparer par des '&', par exemple comme ceci : "anwser1=blabla&answer2=4"
Lors de la tentative de validation, vous obtiendrez la page suivante :

success:0
timeout:0
already:0
points:0
error:...

success vaudra 1 lorsque les paramètres retournés sont corrects, 0 sinon.
timeout vaudra 1 si vous avez dépassé le temps imparti de 4 secondes, 0 sinon.
already vaudra 1 si vous avez déjà validé l'épreuve, 0 sinon.
points apparaîtra seulement lorsque vous validez l'épreuve pour la première fois, donc lorsque vous avez success:1 timeout:0 already:0.
error apparaîtra lorsqu'il survient des erreurs notamment au niveau de l'authentification.

Dès lors, il est possible de valider les épreuves plusieurs fois, bien que les points soient attribués qu'une seule fois.


Exemple

Cette page contient un exemple de communication entre un programme destiné à résoudre l'épreuve Somme de deux entiers et le site.
Il y a 4 paquets :

  • connexion à contest.php
  • renvoi des données par le site
  • envoi de la réponse à validation.php
  • réponse du site.
Tous les champs des en-têtes POST ne sont pas forcément nécessaires (le Accept: */* par exemple), mais ce qui est important est la transmission du cookie PHPSESSID.