Kioskea
Pesquisar

Ataques por injecção de comandos SQL

Março 2015

Injecção de comandos SQL

Os ataques por injecção de comandos SQL são ataques que visam os sites web apoiando-se em bases de dados relacionais.

Neste tipo de site, os parâmetros são passados à base de dados sob a forma de um pedido SQL. Assim, se o projectista não efectuar nenhum controlo sobre os parâmetros passados no pedido SQL, é possível que um pirata altere o pedido a fim de aceder ao conjunto da base de dados, ou mesmo alterar o conteúdo.
Com efeito, certos caracteres permitem conectar vários pedidos SQL ou ignorar a sequência do pedido. Assim, inserindo este tipo de carácter no pedido, um pirata pode potencialmente executar o pedido à sua escolha.


Vejamos o seguinte pedido, esperando como parâmetro um nome de utilizador:

SELECT * FROM utilisateurs WHERE nom="$nom";


Basta que um pirata introduza um nome como “toto” OR 1=1 OR nome = " titi” para que o pedido se torne no seguinte:

SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom ="titi";


Assim, com o pedido acima, a cláusula WHERE sempre é realizada, que significa que devolverá os registos que correspondem a todos os utilizadores.

Procedimentos armazenados

Além disso, certos sistemas de gestão de bases de dados, como Microsoft SQL Server, possuem procedimentos armazenados que permitem lançar comandos de administração. Estes procedimentos armazenados são potencialmente perigosos, na medida em que podem permitir a um utilizador mal-intencionado executar comandos do sistema, podendo conduzir a uma eventual intrusão.

Desfiles

Diversas regras permitem precaver-se contra os ataques por injecção de comandos SQL:

  • Verificar o formato dos dados introduzidos, nomeadamente a presença de caracteres especiais;
  • Não afixar mensagens de erro explícitas que mostram o pedido ou uma parte do pedido SQL.
  • Suprimir as contas de utilizadores não utilizadas, nomeadamente as contas por defeito;
  • Evitar as contas sem palavra-passe;
  • Restringir ao mínimo os privilégios das contas utilizadas;
  • Suprimir os procedimentos armazenados.
Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Ataques-por-injeccao-de-comandos-sql.pdf

A ver igualmente


SQL injection attacks
SQL injection attacks
Ataques de inyección SQL
Ataques de inyección SQL
Angriffe durch die Einschleusung von SQL Befehlen
Angriffe durch die Einschleusung von SQL Befehlen
Attaques par injection de commandes SQL
Attaques par injection de commandes SQL
Attacchi SQL injection
Attacchi SQL injection
Este documento, intitulado « Ataques por injecção de comandos SQL »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.