E nesta palestra vamos dar uma olhada no alto nível de segurança e vamos
ver porque é um injetável.
Então vamos em frente primeiro e disse que o nível de segurança é muito alto.
Agora vou voltar para a minha injeção de habilidade e vamos garantir que a página funcione primeiro.
Eu só vou colocar o número um como sempre fizemos.
E como você pode ver agora, a página funciona.
Agora vamos tentar injetar depois do parâmetro após o parâmetro ID como sempre fizemos e vou colocar
e um é igual a um então estou colocando uma declaração verdadeira.
E como você pode ver agora, a página não funciona de verdade.
Então, vamos tentar colocar uma única citação aqui para fechá-la como fizemos com o nível baixo.
E, novamente, essa injeção também não funciona, embora recebamos uma declaração verdadeira
que não deve interferir na solicitação atual.
Nós geralmente não olhamos para o código quando estamos tentando hackear, mas como eu disse, este é um injetável.
Então, vamos dar uma olhada no código e vamos compará-lo com o código usado para o nível
de segurança médio e vamos ver qual é a diferença entre os dois códigos para que possamos aprender
como proteger nossos sites.
Então, vou procurar e alterar o nível de segurança para médio aqui apenas
para comparar os dois códigos e voltar para a injeção de habilidade e também para visualizar a fonte.
E Deus os colocou ao lado do outro.
Então, aqui, no nível médio de segurança, você pode ver que a ideia está sendo lida aqui e instalada
na variável ID.
E depois há uma função de aplicativo chamada meu Eskew a fuga real.
Então, o que essa função faz, ela passa por todos os caracteres da variável ID e procura
caracteres especiais, como aspas simples e aspas duplas, e os remove.
Portanto, quaisquer aspas usadas ou injetadas na variável ID serão realmente removidas nesta linha devido ao
uso de minha obscura cepa real de escape.
Agora, a coisa é que, uma vez que vamos para a instrução de habilidades, você verá que na verdade não precisamos
usar nenhuma cotação para injetar código nas declarações. Nossa declaração é selecionar o sobrenome do nome dos usuários onde
um ID de usuário é igual a IDENTIDADE.
Então, na verdade, não precisamos fechar nenhuma cotação.
Não precisamos inserir aspas na variável ID.
Tudo o que temos a fazer é colocar uma ideia como a que fizemos no último vídeo, para que possamos colocar apenas
o número um e depois injetar o código imediatamente após o número um.
Então, quando usamos esse código aqui, basicamente nós não usamos as citações na mídia.
Então, estamos literalmente dando o ID como número um.
E então estamos dizendo Union selecione o nome da coluna, seja qual for, das tabelas de esquema de informações.
Assim, o código acaba de ser injetado imediatamente após o ID e, em seguida, o banco de dados irá
lê-lo e executá-lo.
Não há necessidade de usar aspas novamente porque o código não usa nenhum código único, então o código apenas diz
que o ID do usuário é igual ao ID.
Agora, comparando isso com o código que temos para o nível de alta segurança, você
verá que ele usa a mesma função para pular caracteres especiais, mas é implementado da maneira correta.
E isso é usando aspas simples na declaração Escurial em torno da idéia, portanto, porque o código é manter
nas aspas que colocamos e porque eles estão usando citações lá qualquer código que tentarmos
injetar aqui será realmente considerado como se fosse parte do ID.
Então, quando usamos este código aqui, então se apenas usarmos o código como está sem uma citação,
obviamente ele será apenas inserido em vez da variável ID entre as duaspas simples.
Então, será apenas considerado como o ID.
Considerando que, se nós injetarmos esse código aqui, ele será realmente executado como parte da instrução kill.
Então, vamos dar uma olhada em como a instrução askew ficará quando injetarmos nosso código tanto na
mídia quanto no nível de alta segurança.
Então, eu estou indo só para derrubar os técnicos aqui, então temos a melhor declaração para o meio aqui e a declaração de habilidade para
o alto nível de segurança e vamos apenas tentar injetar e um é igual a 1 porque, como temos visto se você pode
injetar isso, então você pode injetar qualquer coisa que você quer realmente e executá-lo no banco
de dados.
ESTÁ BEM.
Então, olhando para a declaração do meio, vamos copiar esse código.
Agora esse código vai realmente passar pelo caractere de escape real e meu.
Portanto, ele será removido de qualquer código único que tenha, mas não terá nada e o código será semelhante
a um.
E um é igual a um.
Portanto, esta declaração é válida e quer igual e será injetada.
Agora, olhando para o nível de segurança alto, observe este uso da aspa simples, o que significa que o ID
do usuário é igual a um e um é igual a um.
Então, um é igual ae não será considerado como parte da instrução OR,
mas será considerado como parte do ID do usuário.
Agora vamos tentar adicionar a aspa simples e ver qual efeito isso teria na tela ou nas instruções.
Na verdade, vou me livrar dessa declaração porque conseguimos injetá-la e vamos nos
concentrar apenas nos altos nas instruções usadas no alto nível de segurança.
Então, estamos usando uma única citação aqui para fechá-lo e vamos copiar isso.
Agora, isso realmente passará pela tela e escapará da força.
Assim, a citação única que estamos usando aqui será removida.
E essa linha se tornará uma e uma será igual a uma, então será igual ou
exatamente igual à linha que usamos antes.
Agora queremos que isso seja substituído aqui novamente.
O primeiro e um são iguais e serão considerados como parte do Z do ID do usuário e não serão
considerados como parte da declaração de escarola.
A partir disso, podemos ver que o uso da força de escape real não é suficiente.
Tem que ser usado com as aspas simples aqui e combinado com essa função,
então esta específica como kill statement se torna injetável.
Agora, em futuras palestras, vamos discutir uma maneira melhor de criar aplicativos da Web para
que eles não possam ser injetados com instruções SKM.
Mas se você precisa de uma solução rápida, então você pode ir para isso até que você tenha tempo e você pode
alterar a implementação do seu site para que ele não pode ser injetado.