11
votes

Existe-t-il des outils croisés pour écrire des attaques XSS directement à la base de données?

J'ai récemment trouvé Cette entrée de blog sur un outil qui Écrit des attaques XSS directement dans la base de données. Cela ressemble à un moyen terriblement bon de numériser une demande de faiblesses dans mes applications.

Je l'ai essayé de l'exécuter sur Mono , depuis ma plate-forme de développement est Linux. Malheureusement, il se bloque avec un system.argumentnulxception profond intérieur Microsoft.practices.enterpriselibrary et je ne semble pas être incapable de trouver suffisamment d'informations sur le logiciel (il semble être un seul- projet de tir, sans page d'accueil et aucun autre développement).

Quelqu'un est-il au courant d'un outil similaire? De préférence, il devrait être:

  • Plate-forme croisée (Java, Python, .NET / Mono, Même la plateforme C est OK)
  • Open Source (j'aime vraiment pouvoir auditer mes outils de sécurité)
  • Capable de parler à une large gamme de produits DB (les gros sont les plus importants: MySQL, Oracle, SQL Server, ...)

    EDIT: J'aimerais clarifier mon objectif: je voudrais un outil directement écrit le résultat d'un XSS réussi / Attaque d'injection SQL dans la base de données. L'idée est que je souhaite vérifier que chaque endroit de mon application est correct codage de sortie . Détecter et éviter les données qui y arriveront en premier lieu est une chose totalement différente (et pourrait ne pas être possible lorsque j'affiche des données écrites dans la DB par une application tierce).

    edit 2: Corneliu Tusnea, l'auteur de l'outil que j'ai lié ci-dessus, a depuis publié l'outil comme logiciel libre sur CodePlex: http://xssattack.codeplex.com/


2 commentaires

Juste pour l'enregistrement, l'entrée de blog est maintenant 404. Il avait l'air intéressant cependant ...


Une recherche rapide de Google ne montre pas un nouvel emplacement pour Tusneas Blog, malheureusement.


5 Réponses :



1
votes

Un de mes amis ne cesse de dire que PHP-IDS est plutôt bon. Je ne l'ai pas essayé moi-même, mais cela sonne comme si elle pouvait correspondre approximativement à votre description:

  • Open Source (LGPL),
  • Cross Platform - PHP n'est pas dans votre liste, mais peut-être que ça va?
  • détecte "toutes sortes de XSS, injection SQL, injection d'en-tête, trershasseries de répertoire, attaques RFE / LFI, DOS et LDAP" (Ceci est de la FAQ)
  • enregistre des bases de données.

2 commentaires

Je suis désolé, mais ce n'est pas ce que je cherche. J'essaie de tester mon codage de sortie en injectant des chaînes d'attaque XSS dans ma base de données. Cela semble être un filtre pour détecter les attaques actuelles et ne fonctionne que pour les applications PHP.


@ Joachim Sauer: J'ai complètement mal compris votre phrase "qui écrit des attaques XSS directement à la base de données" - Je pensais que vous vouliez dire que cela devrait écrire les faits sur une attaque survenue directement à la base de données.



1
votes

Je ne pense pas qu'il y ait un tel outil, autre que celui que vous nous avez pointé. Je pense qu'il y a une bonne raison pour cela: ce n'est probablement pas le meilleur moyen de tester que chaque sortie est correctement codée pour le contexte applicable.

de la lecture de cet outil, il semble que la prémisse consiste à insérer des vecteurs XSS aléatoires dans la base de données, puis de naviguer votre application pour voir si l'un de ces vecteurs réussissent. C'est plutôt une méthodologie de frappe et de manque, de dire le moins.

Une bien meilleure idée, je pense, serait d'effectuer des critiques de code.

Vous trouverez peut-être utile d'examiner certaines des ressources disponibles chez http://owasp.org - à savoir la norme de vérification de la sécurité des applications (ASVS), le Guide de test et le Guide de révision du code.


2 commentaires

@JAH: Je conviens qu'il peut y avoir de meilleures façons, mais que les critiques de codes peuvent être tout aussi frappantes. Je ne dis pas qu'un tel outil serait le tout d'outils de sécurité (aucun outil ne peut être), mais il peut s'agir d'un outil très utile pour une première approximation.


@ Joachim: Je suis en désaccord que "les critiques de code peuvent être tout comme HIT-and-Miss" (ils peuvent être mal exécutés - sûr). Les problèmes de cet outil spécifique sont Twofold: premièrement, il ne semble pas y avoir de contrôle sur ce que les vecteurs sont testés une approche méthodique, garantissant qu'un large éventail de techniques est jugé pour chaque domaine est hors de la question et de seconde, Il n'y a aucun moyen de mapper des entrées spécifiques à leurs sorties respectives - vous parcourez simplement l'application en espérant que les hits. Si vous définissez correctement un ensemble de contrôles de sécurité, il doit être très facile de vérifier qu'ils sont utilisés avec un examen de code.



2
votes

Je ne sais pas si c'est ce que vous êtes après, c'est un flux de flux de paramètres pour http / https.

Je ne l'ai pas utilisé depuis un moment, mais IIRC il agit un proxy entre vous et l'application Web en question - et insérerez des chaînes d'attaque d'injection XSS / SQL dans tous les champs de saisie avant de penser si la réponse était «intéressante». ou non, donc si l'application est vulnérable ou non.

http://www.owasp.org/index.php/category:owasp_webscarab_project

De votre question Je suppose que c'est un type de floueux que vous recherchez et une spécifiquement pour les applications XSS et Web; Si j'ai raison - alors cela pourrait vous aider!

sa partie du projet de sécurité de l'application Web ouvert (OWASP) que "JAH" vous a lié ci-dessus.


3 commentaires

Cela aussi a l'air très intéressant, mais ce n'est pas ce que je cherchais spécifiquement. Je veux tester le bon codage de sortie de mes applications de mes applications! Pour cela, j'ai besoin de données dans ma base de données comme si une attaque a succédé , peu importe si mon application est vulnérable ou non.


@ Joachim: Si votre base de données propose une interface Web, vous pourriez peut-être exécuter le flux de paramètres sur cette interface, il peut donc insérer quelque chose directement dans la base de données (peut-être définir d'abord des vues mises à jour des tables, de sorte que cela ne puisse donc pas changer primaire. Touches, etc.) Ensuite, vous devez vérifier si votre application expose le contenu non évalué. Cela pourrait être une solution de contournement, si vous ne trouvez pas un outil mieux adapté ...


@chris_l: idée soignée! Je vais regarder dans ça, si je ne trouve pas l'outil "parfait".



2
votes

Je pense que Metasploit a la plupart des attributs que vous recherchez. Il peut même être le seul à savoir ce que vous précisez, car tous les autres que je peux penser sont fermés Source. Il existe quelques modules existants qui traitent de XSS et en particulier que vous devez jeter un coup d'œil à: HTTP Microsoft SQL Injection Table d'injection XSS Infection. Des sons de ce module, il est capable de faire exactement ce que vous voulez faire. Le cadre est écrit dans Ruby, je crois et est censé être facile à prolonger avec vos propres modules que vous aurez peut-être besoin / que vous souhaitez faire. J'espère que cela aide.

http://www.metasploit.com/


3 commentaires

Cela va définitivement dans la bonne direction! Il écrit toujours les données via un exploit, ce qui ne serait pas nécessaire à mon étui d'utilisation, mais cela fait ce que je veux.


Ok, merci pour la clarification. Dans ce cas, je prendrais le fichier XSSATTACKS.XML à partir du zip Tool XSSATTACT qui est lié sur le blog que vous avez mentionné. J'écrirais un script qui regarde ma base de données Test / Dev et insère une de ces attaques dans n'importe quelle colonne de type Varcharchar / String / Test / etc. Cela pourrait être votre meilleur pari.


Oui, c'est essentiellement ce que je ferai si aucun outil de ce type n'existe: portez l'outil sur Java (car c'est ce que je sais mieux). J'espérais juste que quelque chose d'autre existait.