Recommandé: l'optimisation ASP utilise la liaison des données pour obtenir des pages Web dynamiques à haute efficacité La liaison des données n'est pas un nouveau concept, et IE 4.0 en a déjà fourni un support riche. Cependant, la liaison des données n'est pas valorisée comme elle le mérite, et de nombreux développeurs semblent plus disposés à utiliser des méthodes de script côté serveur. Cependant, en fait
Objectif de craquage: Cracking un mot de passe de connexion ASP Trojan crypté. Puisqu'il n'y a pas de description de la version chez le cheval de Troie, je ne sais pas comment le Trojan est appelé.
Idées de craquage: deux types: remplacez le texte chiffré par le mot de passe crypté et résolvez réversement le mot de passe à l'aide de l'algorithme de texte chiffré et de chiffrement.
Le premier n'est pas du tout une vraie fissure. Si vous ne pouvez pas obtenir le code source ASP, vous pouvez dire que je n'ai aucune chance de casser le mot de passe. Un ami de Chine a déclaré qu'il avait obtenu des autorisations Web, mais n'a pas pu modifier la page d'accueil. Il a constaté qu'il y avait un Trojan ASP, mais le mot de passe était crypté. D'accord, il y a trop de non-sens, alors soyez prêt, cette explication sera assez longue.
Les codes clés pour la vérification du mot de passe de connexion ASP Trojan sont les suivants:
Si epass (trim (request.form (mot de passe))) = q_ux624q p alors réponse.cookies (mot de passe) = 8811748 ... |
Il est évident que la fonction Epass est utilisée pour crypter le mot de passe d'entrée, puis comparer le texte chiffré obtenu avec le texte chiffré d'origine. Si vous avez une petite programmation de base, en particulier VB, l'algorithme de chiffrement dans Epass sera clair en un coup d'œil. Sinon, cela n'a pas d'importance. Je crois que vous comprendrez rapidement après mon explication. Dans la fonction, la variable qui enregistre le mot de passe est passée. pass & zxcvbnm,. / Connectez le contenu en pass avec zxcvbnm,. / Pour obtenir une nouvelle chaîne. Gauche (Pass & Zxcvbnm,. /, 10) prend les 10 meilleurs chiffres. La fonction Strreverse inverse l'ordre de chaîne 10 bits résultant. Len (pass) obtient la longueur du mot de passe. Vous trouverez ci-dessous une boucle. La longueur de mot de passe de code ASCII de chaque bit dans la chaîne obtenue est arrondie (la position de caractères * 1.1), puis la valeur résultante est convertie en caractères et reconnectée. Enfin, tous les caractères avec 'dans la chaîne obtenus sont remplacés par B, de sorte que le texte chiffré est généré. Si nous extrassons l'algorithme de chiffrement et remplaçons le texte chiffré d'origine par notre propre texte chiffré, le mot de passe correspondant deviendra également votre mot de passe. Mais j'ai dit que ce n'était pas une vraie fissure.
Si nous tapons l'amour, le processus de chiffrement est le suivant:
| amour lovezxcvbnm,. / 'connexion lovezxcvbn 'prenez le top 10 NBVCXZEVOL 'Ordre inversé n 110 (ASCII) -4 (numéro de chiffre) int (1 (position) * 1.1) = 107 Le code ASCII de 107 est k, et ainsi de suite, et le dernier texte chiffré: K`Ucy Hzts |
Nous pouvons inverser le mot de passe via des algorithmes de texte chiffré et de chiffrement, et le pousser à partir de la dernière étape de l'algorithme. La dernière étape consiste à remplacer tout par B, est-il nécessaire de remplacer B en arrière, la réponse est non. Tant que nous pouvons obtenir le dernier texte chiffré, il est possible que le mot de passe soit différent. S'il y a 10 BS, le nombre de mots de passe d'origine est de 2 à la puissance de 10. Bien qu'il n'y ait qu'un seul mot de passe d'origine, 1024 mots de passe sont tous corrects. Si vous voulez le casser parfaitement, vous pouvez essayer d'écrire toutes les combinaisons vous-même. Ensuite, cette étape peut être ignorée, l'algorithme ci-dessus est très clair.
| Chr (ASC (Mid (Temppass, J, 1)) - Templen int (J * 1.1)) |
Nous devons simplement changer le et - pendant un certain temps.
| Chr (ASC (Mid (Temppass, J, 1)) Templen-Int (J * 1.1))) |
Mais il y a un autre problème. Nous ne connaissons pas la durée du mot de passe à l'avance, donc cela n'a pas d'importance. Heureusement, le mot de passe se situe entre 1 et 10 chiffres et n'est pas trop long. Ensuite, nous pouvons utiliser une boucle de 1 à 10 pour trouver tous les mots de passe possibles, puis inverser leur ordre à l'aide de la fonction Strreverse. Alors, comment déterminer le mot de passe que nous obtenons à la fin? Vous pouvez vérifier s'il y a les premiers chiffres de ZXVBNM et./ Une fois le mot de passe exclu de la fin. Alors c'est le vrai mot de passe. Ensuite, si le mot de passe est de 10 bits, il sera correct pour toujours car il n'y a pas de connexion derrière. Nous pouvons donc obtenir deux réponses.
Ce qui suit est la fonction de décryptage que j'ai écrit:
fonction ccode (code) pour templen1 = 1 à 10 mmcode = pour j = 1 à 10 mmcode = mmcode chr (asc (mid (code, j, 1)) templen1-int (j * 1.1)) suivant Ccode = strReverse (mmcode) Response.Write Motword & Templen1 &: & Ccode & Si mid (ccode, templen1 1,10-timplen1) = gauche (zxcvbnm,. /, 10-templen1) et templen1 <> 10 puis résultat = gauche (ccode, templen1) suivant Response.Write Dernier mot de passe: & Résultat fonction finale |
Ok, l'algorithme peut ne pas être entièrement maîtrisé en si peu de temps, ce qui est normal. Je vais donc joindre les instructions et le code source ASP crypté et décrypté au package compressé. Veuillez le reprendre et l'étudier attentivement. De même, le mot de passe 10 est éternellement correct. Prenons ensuite le texte chiffré d'origine dans ASP et voyons quels seront les résultats.
Partager: Utilisez l'attribut de réponse dans ASP - ContentType J'ai rencontré un tel problème lors de l'utilisation d'ASP pour créer des pages Web pour une certaine unité. Dans le système MIS précédent de l'unité, certains fichiers Word ont été enregistrés dans la base de données sous forme de flux d'octets. Maintenant, l'utilisateur m'a demandé d'utiliser ASP pour éliminer ces données de fichiers Word à partir de la base de données et les afficher dans la page Web.