-: Nesta seção, falaremos sobre
testes de penetração de aplicativos da web.
Antes de começarmos a falar
sobre isso, precisamos entender o que é um site.
Assim como eu
disse antes, um site é apenas um aplicativo instalado em um computador.
Esse computador provavelmente só tem
especificações melhores
que o seu, mas, fundamentalmente, funciona exatamente
como outro computador.
Possui um sistema operacional
e também vários aplicativos para permitir
que ele atue como um servidor da web.
Os dois principais aplicativos que provavelmente
possui são um servidor web e um banco de dados.
Um servidor da web é como o Apache,
e um banco de dados é como o MySQL.
O servidor web, basicamente, entende e executa o
aplicativo web.
Seu aplicativo da Web seria escrito em PHP ou Python,
em qualquer linguagem de programação, realmente.
A única coisa é
que o servidor da web precisa
ser capaz de entender e executar esse aplicativo da web.
O banco de dados contém os dados usados pelo aplicativo da web.
Tudo isso é armazenado em um computador chamado servidor.
O computador está conectado à Internet e
possui um endereço IP real,
para que qualquer pessoa possa acessá-lo e fazer ping.
O aplicativo da web é executado pelo servidor
da web instalado no seu servidor, no seu destino.
Portanto, sempre que você solicita uma página ou executa o
aplicativo Web, ele
é executado no servidor da Web e
não é executado no computador do cliente.
Ele é executado no servidor
da Web e, em seguida, envia uma página HTML pronta para
ser lida para a pessoa de destino ou para os clientes.
Vamos dar uma olhada em um exemplo.
Digamos que você esteja no telefone ou no seu computador e que
queira ir ao facebook. com.
Então, você digita no facebook. com no seu URL.
Isso será traduzido usando um servidor DNS para um
endereço IP.
Há um servidor que traduz todos os nomes. com. edu ou qualquer site com um nome de domínio, portanto esse é
um nome de domínio, para seu
endereço IP relevante.
Então, você solicita o facebook. com, o pedido vai para um
servidor
DNS, traduz o facebook. com o IP em que
o
Facebook está armazenado e, em seguida, ele acessa
o endereço IP do Facebook, executa a página desejada, usando todos
os aplicativos de que falamos,
e fornece apenas um HTML pronto.
O que você recebe é apenas uma marcação
escrita em HTML, que é uma linguagem de marcação, do resultado
da execução do programa.
O programa é executado no servidor e
você apenas obtém o resultado.
Isso é muito importante porque, no futuro,
se quisermos executar algo no
servidor da Web, se quisermos obter um shell,
um
shell reverso ou um vírus executado no computador
de destino, precisamos enviá-lo para um
idioma que o servidor da web entende.
Por exemplo, PHP.
Depois de executá-lo, ele
será executado nesse computador, não no seu computador.
Independentemente da pessoa que acessa a página, o shell da web
que você enviará, se estiver escrito
em PHP, em uma linguagem
que o
servidor entenda, será executado no
servidor e não no seu computador.
Portanto, ele dará acesso ao
servidor e não à pessoa que acessou esse servidor.
JavaScript, por outro lado, existem alguns sites que
usam JavaScript.
JavaScript é uma linguagem do lado do cliente.
Se você conseguir encontrar um
site que permita executar o código JavaScript,
o código será executado pelos clientes.
Mesmo que o código possa ser injetado
no servidor web, ele será executado no
lado do cliente e
permitirá que você faça coisas no computador cliente e não no servidor.
É muito importante separar entre um idioma do lado do cliente
e um idioma do lado do servidor.