Questão Onde posso encontrar uma demonstração de um estouro de buffer?


Existe um site ou existe uma maneira simples de configurar um, o que demonstra o que pode acontecer com a saturação do buffer? Isso está no contexto de um aplicativo da web.

(Eu já perguntei isso, por sinal, no ServerFault, caso você ache que seria melhor perguntar lá)


1


origem


O que exatamente há para demonstrar? Como o seu navegador trava quando você visita uma página da web? - Sasha Chedygov
As pessoas no ServerFault migraram a questão para o StackOverflow. Lá recebi algumas boas respostas: stackoverflow.com/questions/2871913/… - bugmagnet


Respostas:


Os estouros de buffer de pilha e pilha são essencialmente causados ​​pela gravação de muitos dados em uma região de memória que é muito pequena para conter todos os dados - fazendo com que os dados sejam gravados além da extensão da alocação memória. No caso de um estouro de pilha, isso pode ser um endereço de retorno para a função e, no caso de um estouro de heap, pode incluir ponteiros de função virtual de outros objetos C ++ no heap. Em ambos os casos, um invasor pode usar a vulnerabilidade para assumir o controle do processo quando a função sobrescrita retornar ou o objeto de pilha sobrescrito for usado.

WebApplications escritos em PHP, C #, VB, VB.NET, ASP.NET, Ruby-on-rails, javascript do lado do servidor e JSP são aplicativos gerenciados e não são aceitáveis ​​para vulnerabilidades de corrupção de memória, como estouro de buffer de pilha ou estouro de buffer causado por código de aplicativo da web inválido. Estouros de buffer tendem a ser a preservação de aplicativos C / C ++, embora outras linguagens "nativas" menos comuns, como Dephi e Fortran, também sejam suscetíveis.

Se você é um desenvolvedor da Web, a classe mais importante de vulnerabilidades que você precisa observar são injeções SQL e problemas causados ​​por gravações de arquivos include / eval / inapropriadas no código do servidor, o que pode permitir que uma string ou arquivo seja passado por um usuário para eventualmente ser tratado como código no servidor. Infelizmente para os desenvolvedores da Web, esses tipos de ataques tendem a ser muito mais eficazes e muito mais fáceis de fazer do que os ataques de estouro de buffer no código nativo e, consequentemente, o impacto de não entender totalmente a segurança como um desenvolvedor da Web pode ser muito mais doloroso do que não entender a segurança como um desenvolvedor nativo.


2