web-dev-qa-db-fra.com

Comment exploiter une vulnérabilité à l'usage après la libération?

Je veux en savoir plus sur les vulnérabilités après utilisation et trouvé this tutoriel. Pourtant, je ne comprends pas très bien et j'espère une explication de la façon dont cela fonctionne.

3
user104787

Il existe des langages de programmation tels que C ou C++ lorsque le programme doit allouer manuellement et annouez la mémoire pour stocker ses données. Une fois que la mémoire a été traitée, cette mémoire peut être réutilisée pour stocker d'autres données. Cependant, même après qu'un programme C a officiellement traité un bloc de mémoire, il peut encore en lire et à y écrire. Si cela se produit, il est pratiquement toujours un bug inattendu. Dans de nombreux cas, le compilateur et le système d'exploitation peuvent détecter lorsque cela se produira et que le programme se bloque, mais il n'est pas possible d'attraper chaque éventualité.

Cela signifie que le programme croit que la lecture ou l'écriture d'une donnée (qui devrait ne pas être plus pertinente), mais cela fait-il avec une autre pièce d'autres données entièrement non liées qui l'a été stockée entre-temps. Cela peut, par exemple, entraîner des données remplacées par des données fournies par l'attaquant ou entraîner des données confidentielles en lecture et en trouvant son chemin dans la production du programme.

S'agissant de la manière d'exploiter ceci: il n'y a pas de réponse universellement applicable, car les situations dans lesquelles on se produisent sans emploi est fortement dépendante de l'application.

5
Philipp