Bonjour tout le monde,Je suis hottie..
C'est le 30ème chapitre de ma série de reptiles,Le chemin des reptiles est sans fin..
Site Web:
aHR0cHM6Ly93d3cud2VpZGlhbi5jb20vP3NvdXJjZT1ndWFud2FuZw==
Outils de développement:pycharm Environnement de développement:python3.7, Windows10 Utilisation du kit:requests, node.js,buff
Vous devez d'abord trouver l'interface de connexion de la page de connexion de la page web Page de connexion:aHR0cHM6Ly9kLndlaWRpYW4uY29tL3dlaWRpYW4tcGMvbG9naW4vP3NwaWRlcl90b2tlbj04MDRjIy8=
Après avoir obtenu l'interface de connexion,L'interface nécessite l'utilisation de l'outil de capture de paquets pour obtenir l'interface de demande de connexion,Saisissez d'abord le mauvais mot de passe de compte pour déclencher l'interface de connexion
postLa plupart des demandes signifient que nous devons passer les paramètres,Voir les informations sur les paramètres à passer,La page actuelle est un peu bizarre,Le mot de passe du compte n'est pas chiffré,Le cryptage estuaChamp,Alors, on va s'en occuper aujourd'hui.uaChamp
Aujourd'hui, nous utilisons toujours la méthode de recherche pour trouver des champs,MaisuaMots - clés pensez - y et sachez que la fréquence d'apparition sera élevée,Un petit conseil pour une recherche aujourd'hui,En généraluaSera un mot clé,On pourrait faire des recherches plus précises, comme‘ua:’、‘ua=’,Cette recherche sera plus précise que la recherche directe de mots clés,
Les fichiers restants devront être filtrés lentement pour être exclus,Vous pouvez déboguer les points d'arrêt lorsque vous trouvez des champs similaires à nous,Voyez si l'interface de requête dont nous avons besoin a été déclenchée, Finalement, nous avons mis le code dansindex.jsDocumentation
uaLes champs sont créés parencodeURIComponentChargé,encodeURIComponentC'est une chaîneurlCodé,Cette méthode ne fonctionnera pas ASCII Les lettres et les chiffres sont codés,Et pas à ces ASCII La ponctuation est codée: - _ . ! ~ * ' ( ) Les données codées sonti,TrouveriEmplacement de la génération pour, iC'est parwindow.getUaChargé,Un frisson de joie,Je pense aussi que le cryptage de cette page Web n'est pas très strict,Quand je l'ai ouvert, j'ai découvert que c'était plus petit,Frappez le point d'arrêt et nous entronswindow.getUaCette fonction,Regarde - moi, Chrysanthème serré.
Le monde direct s'effondre
Le Code est crypté par confusion,Ici aussi, hottie veut aussiAppel à un outil de lutte contre la confusion(Et j'espère que vous n'êtes pas avares).
Allons - y doucement et essayons _0x7dfc34Peut être vu très directement est d'obtenir l'horodatage,ifIl n'y a pas d'entrée pour le moment,L'appel de fonction ci - dessous peut être ignoré
Début de l'analyse0x261229,0x261229Oui, c'est vrai.3La première partie de l'épissage doit être résolue en premier0x1722c3(0x2e98dd), 0x2e98ddVous pouvez voir que les données sont un tableau,Je changejsonViens voir.,D'abord, il y a une certaine conception des données, Regarde.0x1722c3Fonction de
var _0x1722c3 = function(_0x1da193) {
var _0x3dca2f = new _0x4d6308();
if (_0x1da193[_0x4651('0x43a')]) {
var _0x180af0 = _0x3dca2f[_0x4651('0x43b')](_0x2e98dd);
var _0x286380 = _0x3b911e(_0x180af0);
return _0x286380;
} else {
var _0x180af0 = _0x3dca2f[_0x4651('0x43c')](_0x1da193);
var _0x286380 = _0x3b911e(_0x180af0);
return _0x286380;
}
};
La fonction appelée juge un peu trop de données,Hot bar ou choisissez de compléter directement l'environnement Mettez d'abord la logique du Code principal
var _0x1722c3 = function(_0x1da193) {
var _0x3dca2f = new _0x4d6308();
if (_0x1da193[_0x4651('0x43a')]) {
var _0x180af0 = _0x3dca2f[_0x4651('0x43b')](_0x2e98dd);
var _0x286380 = _0x3b911e(_0x180af0);
return _0x286380;
} else {
var _0x180af0 = _0x3dca2f[_0x4651('0x43c')](_0x1da193);
var _0x286380 = _0x3b911e(_0x180af0);
return _0x286380;
}
};
window[_0x4651('0x710')] = function() {
var _0x7dfc34 = new Date().getTime();
// if (_0x4a9622) {
// _0x2644f4();
// }
// _0x55b608();
var _0x261229 = _0x1722c3(_0x2e98dd) + '|' + _0x1722c3(_0x420004) + '|' + _0x7dfc34[_0x4651('0x8c')](0x10);
_0x261229 = btoa(_0x570bef[_0x4651('0x90')](_0x261229, {
'to': _0x4651('0x97')
}));
return _0x261229;
};
Essayez de courir pour voir ce qui manque,Ce qui manque, c'est ce qui manque,Apportez les données de la console.
La vitesse de remplissage lente est un peu lente,Prenez tout le dossier directement,Code confus, c'est un peu un mal de tête,Exécuter toutjsDonnez - nous une erreur dans le dossier.
Ceci utilise unjsCode terminé.,D'autres scripts s'adaptent également,En plus, il n'y a pas de problème.
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
Je n'ajouterai pas ça,Aller directement au code source pour trouver
Deux noms de domaine et protocoles de réseautage pour les sites Web locaux sont directement modifiés
Pas d'erreur.,Essayez d'appeler notre code logique principal
Lorsque nous appelons la fonction principale, nous signalons un message d'erreurbtoaLa question de,C'est...base64Méthode de chiffrement pour,Il y a des problèmes avec les appels directs,Nous pouvons choisir d'utiliserbuffMode de chiffrement,Remplacer le code original par,En essayant d'exécuter
var _0x261229 = new Buffer.from(_0x570bef[_0x4651('0x90')](_0x261229, {
'to': _0x4651('0x97')
}));
Un grand succès,jsDonne à un grand homme le droit d'essayer par lui - même après
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
#Le Code est trop long,A gravement affecté la lecture,J'ai tout effacé,Si nécessaire, suivez mes instructions ci - dessus pour obtenir ou ne pas obtenir en privé
Le travail de suivi sera simple,Il suffit de convertir les données,Envoyer la demande à l'adresse Web avec l'en - tête de la demande,Paramètres à passer sur la bande.C'est facile derrière .
DépannageRechercher ci - dessous