Où puis-je trouver une démonstration d'un débordement de tampon?

Existe-t-il un site, ou existe-t-il un moyen simple de configurer un, ce qui démontre ce qui peut arriver avec un dépassement de tampon? C'est dans le contexte d'une application Web.

(Je l'ai déjà demandé, en passant, sur ServerFault, au cas où vous pensez que cela serait mieux demandé là-bas)

Les débordements de la pile et du tampon de tas sont essentiellement causés par l'écriture de beaucoup de données dans une région de mémoire trop petite pour contenir toutes les données, ce qui entraîne l'écriture des données au-delà de l'étendue de l'attribution et de l'écriture, tout ce qui se passe après l'entrée logique Mémoire. Dans le cas d'un débordement de pile, il peut s'agir d'une adresse de retour pour la fonction et, dans le cas d'un débordement de tas, cela peut inclure des pointeurs de fonction virtuels à partir d'autres objets C ++ sur le tas. Dans les deux cas, un attaquant peut être en mesure d'utiliser la vulnérabilité pour prendre le contrôle du processus lorsque la fonction écrasée retourne ou l'objet à pile écrasée est utilisé.

Les applications Web écrites en PHP, C #, VB, VB.NET, ASP.NET, Ruby-on-rails, javascript côté serveur et JSP sont des applications gérées et ne sont pas acceptables pour les vulnérabilités de corruption de mémoire telles que les débordements de tampon de pile ou les débordements de tampon de tas Causé par un mauvais code d'application Web. Les dépassements de mémoire tampon ont tendance à être préservés des applications C / C ++, bien que d'autres langues "natives" moins courantes telles que Dephi et Fortran soient également sensibles.

Si vous êtes un développeur Web, la classe la plus importante de vulnérabilités dont vous avez besoin d'examiner sont les injections SQL et les problèmes causés par des exemples / eval / file-writ inappropriés dans le code du serveur, ce qui pourrait permettre une chaîne ou un fichier passé par un L'utilisateur doit finalement être traité comme un code sur le serveur. Malheureusement pour les développeurs Web, ces types d'attaques ont tendance à être beaucoup plus efficaces et sont beaucoup plus faciles à faire que les attaques de débordement de tampon sur le code natif et, par conséquent, l'impact de ne pas comprendre complètement la sécurité en tant que développeur web peut être beaucoup plus pénible Que de ne pas comprendre la sécurité en tant que développeur natif.