Curso Hacker - SQL Injection, Parte 1 - OWASP

3 years ago
43

"#aiedonline em youtube.com/c/aiedonline"
Curso Hacker, entre a luz e as trevas
Apostila gratuita de Redes com Linux: https://docs.google.com/document/d/14S8MAcjspdbBWsja-Ijb_GQfs4C1PzJmDcTJ3bYXyeQ/edit?usp=sharing
Playlist de Linux + Redes: https://youtube.com/playlist?list=PLzoythjsH3QMkyxobyUYt45oNJl3L4go5
Seja membro: https://youtu.be/fEdz5zX2-4M
Apostila Hacker: https://docs.google.com/document/d/17R67zmmJw46yMGYpqt9WOjdo4mLCBjNQbmCNcQuLDlc/edit?usp=sharing

Ajude o canal, seja membro o faça um PIX de qualquer valor para wellington.aied@gmail.com

Slide: https://docs.google.com/presentation/d/1ETrLS4RfWQfKyPJZFzpyofa4-6w_OiEj/edit?usp=sharing&ouid=104148480894103526281&rtpof=true&sd=true

Cronograma do lançamento de cursos: https://docs.google.com/spreadsheets/d/194ej4X0XQHdfGqTv4iHM96IPrk8YbKUtyHSVe2JW1iE/edit?usp=sharing

Hacker é um indivíduo que se dedica, com intensidade incomum, a conhecer e modificar os aspectos mais internos de dispositivos, programas e redes de computadores. Hackers podem ser motivados por uma infinidade de razões, tais como lucro, protesto, coleta de informações, desafio, recreação, ou para avaliar as fraquezas do sistema para auxiliar na formulação de defesas contra hackers em potencial.Graças a esses conhecimentos, um hacker frequentemente consegue obter soluções e efeitos extraordinários, que extrapolam os limites do funcionamento "normal" dos sistemas como previstos pelos seus criadores; incluindo, por exemplo, contornar as barreiras que supostamente deveriam impedir o controle de certos sistemas e acesso a certos dados.

Um ataque de injeção SQL consiste na inserção ou "injeção" de uma consulta SQL por meio dos dados de entrada do cliente sendo enviado por POST ou GET.

Uma exploração de injeção SQL bem-sucedida pode ler dados confidenciais do banco de dados, modificar os dados do banco de dados (inserir/atualizar/excluir), executar operações de administração no banco de dados (como desligar o DBMS), recuperar o conteúdo de um determinado arquivo presente no arquivo DBMS sistema e, em alguns casos, emitir comandos para o sistema operacional. Na classificação do OWASP Top 10 é uma vulnerabilidade grave e regularmente localizada nas aplicações WEB.

Vamos ver um exemplo, o Hacker antes de mais nada deve entender como operam as aplicações bem como se constrói as instruções SQLs. Vamos imaginar uma tabela chamada usuario com três entradas, conforme figura abaixo.

Vamos analisar o código abaixo, uma query sendo criada a partir da concatenação de um texto é um parâmetro de url.

String query = "SELECT * FROM usuario WHERE id='" + request.getParameter("id") + "'" ;

Espera-se que a entrada id seja um número, tal como 1, 2, 3, etc.., neste caso a query que será disparada contra o banco de dados será:

Ao executar esta instrução SQL com uma ferramenta, por exemplo Mysql Workbench, temos o seguinte resultado:

Mas ao invés de um número se envia ' or ''=' e a sql;

Ao executar a instrução SQL acima, veja que foi possível retornar todos os dados, na instrução sql exibida acima em vermelho está o que o programador escreveu no código e em azul o que o hacker escreveu em uma caixa de texto específica, por exemplo.

Conforme dito, o envio de instruções SQL complexas sendo enviada por GET é um pouco mais difícil, pois por padrão as URLs não aceitam qualquer tipo de caracteres, mas por POST as opções do hacker são ilimitadas.

Vamos para um exemplo um pouco mais complexo, uma interface de login com 2 campos e um botão, conforme figura abaixo. O FORM tem como action uma determinada página e o método é POST.

Ao pressionar Login na interface acima, então os dados digitados na tela são enviados para o arquivo (por exemplo PHP) no servidor que por Padrão de Desenvolvimento Inseguro (PDI) concatena trechos de strings com variáveis, com a esperança de ter uma SQL válida no final.

Loading comments...