logo Homepage
+  NewbieContest
Username:
Password:
  Voir les messages
Pages: [1]
1  Challenges / Aide Programmation / Re : Prog - Racine le: 06 Janvier 2011 à 04:21:44
C'est bon là, ça a marché
2  Challenges / Aide Programmation / Re : Prog - Racine le: 03 Janvier 2011 à 23:17:55
Bonjour à tous,

Reprenant un peu le même genre de mon voisin du haut, je viens ici, car j'ai des problèmes de vitesse... J'ai bien réussi le challenge prédécesseur, donc je vais vers celui-ci. Toutefois, on m'indique que je suis trop lent, j'aimerais bien savoir si je dois insérer un élément quelconque afin qu'il soit assez rapide. Si je pouvais mp quelqu'un pour qu'il vérifie mon script (quelqu'un qui a passé... je précise ^^"), j'apprécierais

Merci
3  Général / Général / Re : Brute-Force le: 28 Décembre 2010 à 17:26:12
Merci de votre aide à tous, je regarderai tout cela

Ps J'ai une certaine base en php déjà, disons assez pour utiliser les variables superglobales, table de données, SQL et les mots de base
4  Général / Général / Re : Brute-Force le: 27 Décembre 2010 à 03:51:41
Merci de vos deux réponses, j'apprécie toujours autant 

1. C'est quoi le VB.net ?
2. Oui, j'aimerais apprendre comment interragir avec, mais qu'est-ce "les premières progs" ?
3. Non, je n'ai pas l'intention de faire des trucs illégaux et la phrase en rouge est assez visible :p
5  Général / Général / Re : Re : Brute-Force le: 26 Décembre 2010 à 02:29:26
Yop  yop,

Si j'ai bien compris tu cherches à bruteforcer un formulaire d'authentification de page web dont tu as la source.

------------------------------------------------


Du coup si tu teste le passe tu n' auras donc peut-être pas besoin de faire tous ces accès en écriture.(si test=bonpass: on stop le script, sinon on continue)
Pour tester un bruteforce sur un formulaire en javascript, php, java,...le plus simple est donc d'installer un serveur web pour tester en local.  

--------------------------------

De manière plus générale python cramera toujours javascript en terme de vitesse du fait que le navigateur web, qui fait office d'interpréteur javascript n'est pas fait pour cela.


Tout d'abord, merci de ta réponse:

1. Effectivement, j'ai le formulaire source et l'envoi submit (comme un formulaire normal ^^'), mais je n'ai pas la value comme dans mon exemple javascript, je fais des essais qui seront envoyés à une page php

2. Donc, ce point me paraît compliqué (pour moi :p). Comment je fais pour que le python test les possibilités ?!?!?
Je ne comprends pas comment me faire un serveur web pour essayer cela... J'aimerais vraiment que tu me fasses un exemple concret s.v.p.
Genre au lieu de ma ligne de code qui dit qu'on écrit dans mon fichier.txt, comment le programme python pourrait-il essayer directement sur le serveur jusqu'à temps que le code soit valide (exemple concret s.v.p. je suis totalement perdu sur ce point  )

3. Exactement, sauf que je ne savais pas que le python pouvait interragir avec un serveur, mais cela est rattaché au point 2

Bref, merci de ton aide et des réponses que tu pourras m'apporter

@yacina.ya: J'irai voir en C si je peux trouver quelque chose, mais ça ne me tente pas d'apprendre cela, est-ce que le Java peut suivre le même rythme que le C, j'y serais plus à l'aise ?

Ps Je me suis rendu compte que pour mon programme python, j'avais besoin de savoir le nombre de caractères, comment faire si je le ne sais pas ?
6  Général / Général / Brute-Force le: 25 Décembre 2010 à 20:45:03
Bonjour à tous, 
J'ai remarqué que pour certains challenges, un brute-force était nécessaire. Comme je suis plutôt connaisseur en JS et que je commence en python, j'ai décidé de voir comment en élaborer un dans chacun des deux. Toutefois, j'ai deux inconvénients, mais avant, voici les statistiques relevées par mes brute-force:

Brute-Force en python (exécuté sur Python Shell) -> A trouvé 14 776 336 possibilités en 2:05min, soit environ 118 210 possibilités par seconde
Toutes les données trouvées ont été insérées dans un fichier.txt (ayant maintenant une taille 90 188ko )
Voici le code:
Code:
import os
Alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
i = 0
with open('repertoire.txt', 'a') as mon_fichier:
    # ^^
    for a in range(0,62):
        for b in range(0,62):
            for c in range(0,62):
                for d in range(0,62):
                        Brute = Alpha[a] + Alpha[b] + Alpha[c] + Alpha[d]
                        mon_fichier.write("["+Brute+"]")
                        i += 1
                        if i % 8 == 0:
                            mon_fichier.write("\n")
                        if i % 200000 == 0:
                            print("Donnée numéro "+str(i)+" rentrée")

mon_fichier.close()
print("Operation terminee")
print(str(i)+" données entrées")

Brute-Force en JS (exécuté en local) -> A trouvé 17 576 possibilités en 3:06min, soit environ 94 possibilités par seconde...
Toutes les données ont été montrées par innerHTML sur la page
Voici le code:
Code:
<head>
    <title>Javascript Brute Force</title>
<style>
body {
    background-color: black;
    color: lime;
    font-family: sans-serif;
    font-size: 14px;
    font-weight: bold;
}
</style>

<script type="text/javascript">
var centi=0
var secon=0
var minu=0
var z = 0
function chrono(){
centi++;
if (centi>9){centi=0;secon++}
if (secon>59){secon=0;minu++}
document.forsec.secc.value="  "+centi
document.forsec.seca.value="  "+secon
document.forsec.secb.value="  "+minu
compte=setTimeout('chrono()',100)
}
function rasee(){
clearTimeout(compte)
centi=0;
secon=0;
minu=0;
document.forsec.secc.value="  "+centi
document.forsec.seca.value="  "+secon
document.forsec.secb.value="  "+minu
}
var MIN_CHAR = 97;
var MAX_CHAR = 122;
var DELAY_INTERVAL = 0;
var STOP_KEY = 27;
var START_KEY = 13;

function cnext(expr)
{
    var len = expr.length - 1;

    if (expr.charCodeAt(len) >= MAX_CHAR && len != 0)
    {
        tmp = cnext(expr.substr(0,len)) + String.fromCharCode(MIN_CHAR);

        return tmp;
    }

    if (expr.charCodeAt(len) >= MAX_CHAR && len == 0)
    {
        tmp = String.fromCharCode(MIN_CHAR) + expr.substr(0,len) + String.fromCharCode(MIN_CHAR);

        return tmp;
    }

    tmp = expr.substr(0,len) + String.fromCharCode(expr.charCodeAt(len) + 1);

    return tmp;
}

var test = String.fromCharCode(MIN_CHAR);
var password = document.getElementById("mdp").value;
var stopped = false;


function goo()
{
if( z == 0) { chrono(); z++;}
    var c = document.getElementById('c');

    test = cnext(test);
    c.innerHTML = test;

    if (test == document.getElementById("mdp").value || stopped)
{
clearTimeout(compte)
return;
}

    setTimeout("goo()", DELAY_INTERVAL);
}

function checkStop(ev)
{
    if (ev.keyCode == STOP_KEY)
        stopped = true;

    if (ev.keyCode == START_KEY)
    {
        stopped = false;
        setTimeout('goo()', 0);
    }
}
</script>
<script>
var centi=0
var secon=0
var minu=0
function chrono(){
centi++;
if (centi>9){centi=0;secon++}
if (secon>59){secon=0;minu++}
document.forsec.secc.value="  "+centi
document.forsec.seca.value="  "+secon
document.forsec.secb.value="  "+minu
compte=setTimeout('chrono()',100)
}
function rasee(){
clearTimeout(compte)
centi=0;
secon=0;
minu=0;
document.forsec.secc.value="  "+centi
document.forsec.seca.value="  "+secon
document.forsec.secb.value="  "+minu
}
</script>
</head>

<body onload="setTimeout('goo()', 0);" onkeypress='checkStop(event)' >
    <br /><br /><br />
<input type="password" name="ep1" size="20" value="zzz" id="mdp" />
    <div id="c"></div>
<br />

<form name="forsec">
<input type="text" size="3" name="secb"> minute(s)
<input type="text" size="3" name="seca"> secondes
<input type="text" size="3" name="secc"> dixièmes
</form>
</body>

Donc, voilà, je me retrouve avec 2 possibilités, dont une à éliminer si possible. En effet, le python est environ 1244 fois plus rapide. Je ne sais pas si je peux me servir du python pour brute-forcer et comment faire lorsqu'on tombe avec 5 caractères... Là, il n'y en avait que 4, toutefois lorsque j'ai essayé 5, au bout de 10 minutes, cela n'était même pas fini et mon ficher.txt faisait plus d'un million de ko... Donc, si je prends le python, comment pouvoir m'en servir (j'avais pensé à mettre 25M de clés par fichier.txt) et l'optimiser ?

Deuxième point, se rattachant un peu au premier... Comment faire les tests... Si j'ai une page et que je veux tester tous les mots de passe rentrés dans mon fichier.txt, comment faire ??? Je n'ai aucune idée comment appliquer les tests rentrés dans ma "base de donné.txt". J'ai entendu dire qu'il fallait le faire en localhost, mais comment faire pour garder une bonne cadence et faire un submit de la page non manuellement sans quitter la page... ?
En passant, je sais comment programmer, mais pas comment automatiser ^^'

Merci à tous

Ps. Joyeux Noel
Pages: [1]