Question Le pire trou de sécurité que vous avez vu? [fermé]


Quel est le pire trou de sécurité que vous ayez jamais vu? C'est probablement une bonne idée de garder les détails limités pour protéger les coupables.

Pour ce que ça vaut, voici un question sur ce qu'il faut faire si vous trouvez un trou de sécurité, et un autre avec quelques réponses utiles si une entreprise ne répond pas (semble-t-il).


413


origine


Réponses:


Dès les premiers jours des magasins en ligne:

Obtenir une réduction de 90% en entrant .1 dans le champ de quantité du panier. Le logiciel a correctement calculé le coût total en tant que coût .1 *, et l’homme qui emballait la commande se contentait de passer inaperçu. devant la quantité à emballer :)


646



Le trou de sécurité le moins pardonnable, et malheureusement un très commun et facile à trouver à ce sujet, est Google piratage. Affaire au point:

http://www.google.com/search?q=inurl%3Aselect+inurl%3A%2520+inurl%3Afrom+inurl%3Awhere

C'est incroyable combien de pages sur Internet, en particulier les sites gouvernementaux, transmettent une requête SQL via la chaîne de requête. C'est la pire forme d'injection SQL, et il ne faut aucun effort pour trouver des sites vulnérables.

Avec des modifications mineures, j'ai pu trouver des installations non protégées de phpMyAdmin, des installations non protégées de MySQL, des chaînes de requête contenant des noms d'utilisateur et des mots de passe, etc.


575



Ingénierie sociale:

<Cthon98> hey, if you type in your pw, it will show as stars
<Cthon98> ********* see!
<AzureDiamond> hunter2
<AzureDiamond> doesnt look like stars to me
<Cthon98> <AzureDiamond> *******
<Cthon98> thats what I see
<AzureDiamond> oh, really?
<Cthon98> Absolutely
<AzureDiamond> you can go hunter2 my hunter2-ing hunter2
<AzureDiamond> haha, does that look funny to you?
<Cthon98> lol, yes. See, when YOU type hunter2, it shows to us as *******
<AzureDiamond> thats neat, I didnt know IRC did that
<Cthon98> yep, no matter how many times you type hunter2, it will show to us as *******
<AzureDiamond> awesome!
<AzureDiamond> wait, how do you know my pw?
<Cthon98> er, I just copy pasted YOUR ******'s and it appears to YOU as hunter2 cause its your pw
<AzureDiamond> oh, ok.

De bash.org


400



Véritable histoire de mes débuts chez Microsoft.

Vous n'avez pas connu la peur jusqu'au jour où vous vous réveillez et voyez le titre sur ZDNet.com ce matin est "Le pire trou de sécurité Internet Explorer jamais découvert dans «Blah»"Où 'Blah' est un code que vous avez écrit six mois auparavant.

Immédiatement après avoir commencé à travailler, j'ai vérifié les journaux de modifications et découvert que quelqu'un d'une autre équipe - quelqu'un à qui nous faisions confiance pour apporter des modifications au produit - avait vérifié mon code, modifié un tas de paramètres de la clé de registre de sécurité sans raison valable. vérifié dans, et n'a jamais eu une revue de code ou a parlé à personne à ce sujet. Jusqu'à ce jour, je n'ai aucune idée de ce qu'il pensait faire sur terre. il a quitté la société peu de temps après. (De son propre accord.)

(MISE À JOUR: Quelques réponses aux questions soulevées dans les commentaires:

Tout d'abord, notez que j'ai choisi de prendre la position charitable que les changements de clé de sécurité étaient involontaires et basés sur la négligence ou l'ignorance, plutôt que la malveillance. Je n'ai aucune preuve dans un sens ou dans l'autre, et je crois qu'il est sage d'attribuer les erreurs à la faillibilité humaine.

Deuxièmement, nos systèmes d'enregistrement sont beaucoup, beaucoup plus forts qu'ils ne l'étaient il y a douze ans. Par exemple, il est désormais impossible d’enregistrer du code sans que le système d’enregistrement envoie la liste de modifications aux parties intéressées. En particulier, les changements apportés tard dans le cycle du navire sont entourés de nombreux «processus» qui assurent que les bons changements sont apportés pour assurer la stabilité et la sécurité du produit.

Quoi qu’il en soit, le bogue était qu’un objet qui n’était pas sûr d’être utilisé à partir d’Internet Explorer avait été accidentellement publié comme étant marqué «sûr pour les scripts». L'objet était capable d'écrire des fichiers binaires - des bibliothèques de type OLE Automation, en fait - sur des emplacements de disque arbitraires. Cela signifiait qu'un attaquant pouvait créer une bibliothèque de types contenant certaines chaînes de code hostile, l'enregistrer dans un chemin qui était un emplacement exécutable connu, lui donner l'extension de quelque chose qui provoquerait l'exécution d'un script, et espérer que l'utilisateur exécuterait accidentellement le code. Je ne connais pas d’attaques réussies dans le "monde réel" qui ont utilisé cette vulnérabilité, mais il était possible de créer un exploit avec lui.

Nous avons expédié un patch assez rapidement pour celui-là, laissez-moi vous dire.

J'ai provoqué et corrigé par la suite beaucoup plus de failles de sécurité dans JScript, mais aucune n’a jamais été à la hauteur de la publicité.


339



J'espère que vous pourrez voir ce qui ne va pas ici. (Terriblement faux, en fait):

String emailBody = "";

for (int i = 0; i < subscribers.Count; i++)
{
    emailBody += "Hello " + subscribers[i].FirstName + ",";
    emailBody += "this is a reminder with your account information: \n\n:";
    emailBody += "Your username: " + subscribers[i].Username + "\n";
    emailBody += "Your password: " + subscribers[i].Password + "\n";
    emailBody += "Have a great day!";

    emailDispatcher.Send(subscribers[i].EmailAddress, emailBody);
}

Le dernier destinataire était le plus heureux;)


274



Les anciens terminaux muets IBM System 36 avaient une combinaison de touches qui commençait l'enregistrement d'une macro. Ainsi, lorsqu'un terminal n'est pas connecté, vous pouvez démarrer l'enregistrement d'une macro et le laisser dans cette position. La prochaine fois que quelqu'un se connecte, les séquences de touches sont enregistrées dans la macro et l'enregistrement se termine automatiquement lorsque les clés maximum autorisées ont été enregistrées. Revenez juste plus tard et rejouez la macro à autolog-in.

alt text


206



Le pire trou de sécurité que j'ai jamais vu a été codé par le vôtre et Google Bot a supprimé toute ma base de données.

À l'époque où j'apprenais Classic ASP, j'ai codé ma propre application de base. Le répertoire contenant tous les scripts d'administration était protégé par NTLM sur IIS. Un jour, je suis passé à un nouveau serveur et j'ai oublié de re-protéger le répertoire dans IIS (oups).

La page d'accueil du blog avait un lien vers l'écran d'administration principal, et l'écran d'administration principal avait un lien DELETE pour chaque enregistrement (sans confirmation).

Un jour, j'ai trouvé tous les enregistrements de la base de données supprimés (des centaines d'entrées personnelles). Je pensais que certains lecteurs avaient fait irruption dans le site et malicieusement supprimé tous les enregistrements.

Je suis venu à trouver dans les journaux: Le Google Bot avait rampé le site, suivi le lien d'administration, et le suivi de tous les liens supprimer, supprimant ainsi tous les enregistrements dans la base de données. J'ai senti que je méritais le prix Dumbass of the Year par inadvertance compromis par le Google Bot.

Heureusement, j'avais des sauvegardes.


204



Le pire trou que j'ai jamais vu était un bug dans une application web où donner un nom d'utilisateur et un mot de passe vides vous connecterait en tant qu'administrateur :)


187



Une fois remarqué cela sur l'URL d'un site web.

http://www.somewebsite.com/mypage.asp?param1=x&param2=y&admin=0

Changer le dernier paramètre à admin = 1 m'a donné des privilèges d'administrateur. Si vous allez aveuglément faire confiance à l'entrée de l'utilisateur au moins ne télégraphiez pas que vous le faites!


174



J'ai vu celui-ci dans Le Daily WTF.

<script language="javascript">
<!--//
/*This Script allows people to enter by using a form that asks for a
UserID and Password*/
function pasuser(form) {
    if (form.id.value=="buyers") { 
        if (form.pass.value=="gov1996") {              
            location="http://officers.federalsuppliers.com/agents.html" 
        } else {
            alert("Invalid Password")
        }
    } else {  
        alert("Invalid UserID")
    }
}
//-->
</script>

Rien ne peut battre ce IMHO.


165