E essa palestra gostaria de cobrir um caso que enfrento em quase 50% dos sites
em que faço testes de penetração.
Então, deixe-me primeiro executar e explorar os que eu já vi, então vamos executar essa instrução que selecionará o
nome da tabela a partir das tabelas de esquema de informações.
Então, isso deve listar todas as tabelas que existem em nossa página.
E eu tenho minha segurança definida muito baixa no momento, então vou colar aqui.
Remova este extra e aperte enter como
você pode ver que ele é explorado e nos mostra o nome da tabela aqui em vez do número um.
Então, vemos todos os nomes de tabelas existentes nesse banco de dados atual.
Agora, o caso que gostaria de abordar é quando você realmente executa a declaração para que o site fique vulnerável.
E quando você executa a instrução, você verá apenas um resultado por vez e isso ocorre porque a página
é programada de forma a exibir apenas um resultado por vez.
Para fazer isso, na verdade, precisaremos modificar o código para o nível de segurança baixo do DPW. Eu
farei isso agora e depois voltaremos para explorá-lo.
Então, vou modificar o código para DVD-Video.
Isso não faz parte da exploração.
Isso é apenas para tornar esse exploit um pouco mais complicado.
Então, eu senti falta do flutuante do Meta agora e vou abrir o nível de segurança baixo do arquivo SQL
Injection.
Então eu vou usar o sudo porque o arquivo tem permissões de root e eu vou usar
o Nonno como editor de texto.
Então este é o programa que eu usarei para modificar o arquivo e o arquivo é armazenado em uma
variável que uma vulnerabilidade é uma fonte de injeção de habilidade e então php.
Então, novamente, eu só vou passar por isso e ver o que estamos fazendo é que estamos
dizendo sudo para executar o arquivo em privilégios de root.
Agora, qual é o programa com o qual vamos abrir o arquivo?
E, em seguida, o arquivo é armazenado em habilidades Varda legível WDW I Woolner como ph fonte Kulai Lowder.
Eu vou apertar enter e me pedir a senha do admin agora a senha do root é como admin.
Exatamente como o nome de usuário.
Nós temos a fonte aqui para o arquivo.
Então, vou modificá-lo aqui, vou modificar isso para você.
Então, o que este loop realmente faz através de todos os personagens, todos os registros que
esta declaração torta fica bem aqui.
E então ele os exibe na tela.
Então, o que queremos é que queremos modificá-lo para exibir apenas as palavras do primeiro resultado.
Então, eu vou apenas comentar esta linha duas barras adicionais outro comentário.
Então, basicamente, essa linha será ignorada e eu também comentarei essa linha porque ela fecha o loop while.
Então esta linha também será ignorada.
Agora você realmente precisa se preocupar com o que isso significa se você não for um programador.
Não é muito importante apenas entrar nessas linhas e vamos ver o que acontece no site do
cliente, porque o que estamos interessados ​​nesta palestra não é a programação que estamos interessados ​​no
teste de penetração.
Então, eu só vou apertar o controle X para salvar isso.
Eu vou apertar Y e entrar e isso vai sair e salvar o arquivo.
Então, estamos de volta aqui e vou executar exatamente a mesma declaração, então não vou modificá-la.
Então, eu ainda estou dizendo que os sindicatos selecionam o nome da tabela do esquema de informações em outras tabelas.
Na verdade, vou atualizar a página.
E como você pode ver agora, isso não está realmente funcionando ou está funcionando, mas apenas
nos mostrou o primeiro, o primeiro registro que foi selecionado, que é o americano. Então, isso nem é útil.
Então a primeira coisa que vou fazer é nos trazer o registro porque o
admin tem o ID do número um.
Então, o que vamos fazer agora é que, na verdade, vamos dar
a ele um ID inválido, então eu vou dar um A menos um.
E como você pode ver agora, a instrução funciona, estamos obtendo uma tabela que existe nas tabelas de esquema de
informações, mas estamos todos juntos em uma tabela de cada vez.
Não estamos recebendo a lista completa das tabelas.
E isso acontece porque a página está programada de forma a exibir apenas um resultado.
E isso aconteceu comigo muitas vezes quando estou fazendo testes de penetração.
Portanto, tenha em mente que podemos executar qualquer declaração que quisermos na fita do servidor, para que possamos
modificar nossa instrução de habilidade para iterar todos os registros e exibir o conteúdo.
Então, o que vamos fazer é saber que obviamente podemos usar a palavra declaração para mostrar apenas as tabelas do banco
de dados dentro do seu banco de dados atual, mas no momento em que eu quero
mostrar-lhe como iterar sobre tudo as mesas.
Então, o que vamos fazer é usar a palavra-chave limit para especificar qual registro queremos exibir.
Com a declaração atual, dessa forma, poderemos fazer uma iteração dos registros, um por um,
e exibir todos eles.
Assim, a instrução será unida para selecionar o nome da tabela a partir do esquema ou das tabelas
de informações e, digamos, queremos limitar a palavra-chave de limite a dois valores.
O primeiro valor é a localização do registro do qual queremos começar a exibir registros.
Então, onde queremos começar a exibir registros, então quero começar a exibir registros do primeiro registro.
Então, vou colocar zero porque os números de registro começam em 0 e o segundo valor que a
palavra-chave de limite usa é o número de registros que queremos exibir na tela, começando pelo valor
que especificamos aqui.
Agora sabemos que esta página aqui só pode me mostrar um registro por vez.
Portanto, o segundo valor para a palavra-chave limit pode ser apenas um.
Nesse caso.
Então, basicamente, o que estamos dizendo é que queremos selecionar o nome da tabela nas tabelas de esquema de informações.
Eu só queria exibir um registro a partir do registro 0.
Então, se eu copiar isso e colar aqui, você verá que eu
vou pegar a primeira tabela agora e então se eu quiser ir para a segunda tabela, tudo o que eu tenho
que fazer é modificar isso, então eu disse esse valor no primeiro valor aqui significa que eu quero começar
no registro 0.
Então, se eu quiser começar no registro 1, vou colocar um e então posso
copiar isso e colá-lo aqui novamente.
Como você pode ver, conseguimos a próxima mesa.
Agora, novamente, se eu quiser pegar a tabela depois disso, tudo o que tenho que fazer é modificar isso e configurá-lo para 2.
E isso significa que eu quero começar este jogo de registro para e eu só quero
começar a exibir um registro.
Mais uma vez, se eu apertar enter como você pode ver, eu estou recebendo a próxima mesa.
Eu posso continuar fazendo isso para iterar todos os registros manualmente.
Agora também podemos aprimorar a instrução usando as cargas de trabalho.
Portanto, antes do limite, podemos dizer que eu quero selecionar um nome de tabela a partir de tabelas
de esquema de informações, em que o esquema da tabela é igual a DV w a.
Agora, se colarmos isso aqui, como você pode ver, isso me mostrou os usuários e, novamente, posso fazer uma iteração
nas tabelas alterando o número aqui, para que isso seja exibido no registro no deslocamento 1.
Eu posso definir isso para 0 para exibir o primeiro registro.
E como você pode ver a primeira tabela ou o primeiro registro é livro de visitas e é isso.
Então, apenas uma rápida carta para mostrar como contornar esse problema.
Se você enfrentá-lo em páginas que exibem apenas um valor ou um registro para você por vez.