O que é um formato string vulnerável

Publicado: julho 10, 2009 em ataques, bugs, seguranca
Tags:, ,

Para entender o que é um formato string vulnerabilidade, primeiro você precisa saber o que é um formato string. Um formato string é uma forma de dizer ao compilador como deve formatar números quando se imprime-los.

Formatar Strings em C

Na linguagem de programação C, há uma série de funções que aceitam um formato string como um argumento. Estas funções incluem fprintf, printf, sprintf, snprintf, vfprintf, vprintf, vsprintf, vsnprintf, setproctitle, syslog, e outros.

O mais comum deles é printf. O uso de printf é:

printf formato [argumentos …]

printf o valor das saídas [argumentos …], no formato especificado pelo formato.

Um exemplo é chamada para printf:

printf ( “O código de área é:% d \ n”, 303);

Formato suportado especialistas diferem de um compilador C para a próxima. O formato suportado especialistas em FreeBSD são:

% d  –  Converso assinado decimal inteiro para string.

% u  –  Converter inteiro para unsigned decimal string.

% i  –  Converter inteiro para string assinado decimais; o inteiro pode ser em decimal, em Octol (com um líder 0) ou em hexadecimal (com um líder 0x).

% o  –  Converter inteiro para unsigned Octol string.

% x ou% X  –  Converter inteiro para hexadecimal unsigned corda, usando dígitos 0123456789abcdef “ x”de”e “ 0123456789ABCDEF para o X).

% c  –  Converter inteiro para os caracteres Unicode que representa.

% s  –  Nenhuma conversão, basta inserir string.

% f  –  Converter número de ponto flutuante para casa decimal assinado seqüência do formulário xx.yyy, onde o número de y’s é determinado pela precisão (padrão: 6). Se a precisão for 0, então nenhum ponto decimal é saída.

% e ou% E  –  Converter número de ponto flutuante para notação científica, sob a forma x.yyye +-zz, onde o número de y’s é determinado pela precisão (padrão: 6). Se a precisão for 0, então nenhum ponto decimal é saída. Se o formulário for utilizado E então E é impressa em vez de e.

% g ou% G  –  Se o expoente é menor que -4 ou maior ou igual à precisão e, em seguida, converter número de ponto flutuante como para% e ou% E. Senão como converter para% f. Trailing zeros e uma rasteira ponto decimal são omitidos.

%%  –  Nenhuma conversão: basta inserir%.

Ataques  em Formato String Vulneravel

Formato string de ataques de vulnerabilidade podem ser classificados em três categorias: negação de serviço, a leitura e a escrita.

  • Formato string vulnerável de negação de serviço ataques são caracterizados utilizando várias instâncias do especificador formato% s para ler os dados fora da pilha até que o programa tenta ler dados a partir de um endereço ilegal, o que fará com que o programa fique bloqueado.
  • Formato string vulnerabilidade leitura ataques normalmente utilizam o formato % x especificador para imprimir seções da memória que normalmente não têm acesso.
  • Formato ataques  de string vulneráveis: escrito utilizar os % d,% u% x formato ou especialistas para substituir a Instrução Ponteiro vigor e execução de código de usuário fornecido reservatório.

FONTE:  tech-faq

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s