Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Sobre o lab desse desafio

Boa tarde tudo bem? Não entendi o porque de concatenar um || ~ || para conseguir juntas as colunas username e password no comando 'UNION+SELECT+NULL,username||'~'||password+FROM+users--' e do porque selecionar NULL. Só consegui resolver esse lab pelo Sqlmap, os outros insights não entendi.

2 respostas
solução!

Olá Mateus! Tudo joia e contigo?

Muito bom que você conseguiu outro método de resolver o lab, usar o sqlmap é sempre excelente!

No caso desse laboratório, observe que na primeira página temos apenas os títulos ou nomes dos produtos, não temos as descrições mais.

Então, no laboratório anterior, tínhamos isso:

Página We like to Shop, com o subtítulo "Pets' UNION SELECT '1','2' -- seguido de uma ferramenta de filtros de busca. Tendo logo em seguida uma lista com o título "1" em negrito e descrição "2"

Onde conseguíamos fazer a busca com /filter?category=Pets' UNION SELECT '1', '2' -- e observar os textos inseridos na página.

Já no lab do desafio, temos o seguinte:

Página We like to Shop, com o subtítulo "Gifts' UNION SELECT '1','2' -- seguido de uma ferramenta de filtros de busca. Tendo logo em seguida uma lista com o título "2" em negrito seguido de um botão em azul nomeado "View details".

Ao fazer a mesma busca /filter?category=Pets' UNION SELECT '1', '2' --, só conseguimos ver na página um texto inserido que seria equivalente a coluna do nome do produto, ou seja, não conseguimos ver a descrição.

Então caso fomos tentar unir outro SELECT das duas colunas de username e password, vamos obter um erro:

Página Web Security Academy com uma mensagem de erro "Internal Server Error".

Para isso, podemos unir com o SELECT de uma coluna só, por exemplo:

Página We like to Shop, com o subtítulo "Gifts' UNION SELECT NULL, username FROM users --" seguido de uma ferramenta de filtros de busca. Tendo logo em seguida uma lista de itens, tendo em destaque: carlos, administrator e wiener, sendo todos os itens seguidos de botões em azul nomeados "View details".

Tendo em vista isso, poderíamos fazer um por vez: uma busca para username e depois outra para password.

Ou concatenar os resultados da busca para vermos usuários e senhas juntos na página. E para isso, no PostgreSQL, utilizamos o ||, dessa forma:

Busca em navegador: "/filter?category=Pets' UNION SELECT NULL,username||password FROM users--

Sendo assim, conseguimos ver username e password juntos na página:

Página We like to Shop, com o subtítulo "Pets' UNION SELECT NULL,username||password FROM users--" seguido de uma ferramenta de filtros de busca. Tendo logo em seguida uma lista de itens, tendo em destaque: administrator0kibt0quvzw52nesnst4, sendo todos os itens seguidos de botões em azul nomeados "View details".

E com isso, você consegue acessar a conta do usuário administrator e solucionar o laboratório.

Espero que tenha ajudado e qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado pela resposta detalhada! : )