O GET envia suas variáveis no URL dos navegadores da Web de seus visitantes o que
facilita a visualização do que foi enviado. No entanto, também é muito fácil para os visitantes
alterarem o que foi enviado e, além disso, geralmente há um limite baixo no número de
caracteres que podem ser enviados em um URL - geralmente menos de 250. Como resultado,
se você envia variáveis longas usando GET, é provável que você perca grandes quantidades
delas.
O HTTP GET envia dados no URL de uma maneira muito óbvia:
Observe que a string de consulta (os pares nome / valor) são enviados na URL de uma
solicitação GET:
/teste/demonstracao_form.php?name1=value1&name2=value2
Algumas outras notas sobre solicitações GETi
:
➢ Solicitações GET podem ser armazenadas em cache
➢ As solicitações GET permanecem no histórico do navegador
➢ Solicitações GET podem ser marcadas
➢ As solicitações GET nunca devem ser usadas ao lidar com dados confidenciais
➢ Solicitações GET têm restrições de tamanho
➢ Pedidos GET são usados apenas para solicitar dados (não modificar)
As solicitações GET datam das primeiras versões do HTTP. Portando, GET não tem um
corpo e, até a versão 1.1, não era necessário ter cabeçalhos. (HTTP / 1.1 requer que o
cabeçalho do Host esteja presente em todas as solicitações, para suportar hospedagem
virtual).
Na prática você pode usar o BurpSuite, OWASP ZAP ou qual interceptador para verificar
como os cabeçalhos são analizados. Compartilhe aqui nos comentários qual é o melhor
programa para analisar GET and POST e logo, manipula-los se for o caso do seu
“experimento”.
Na solicitação que é enviada por um navegador HTTP / 1.1 você preenche um formulário
HTML simples para solicitar seu cadastro. Quando inserimos um valor no formulário, o
navegador constrói uma URL composta do campo de ação a partir do formulário seguida
de uma string de consulta contendo todos os parâmetros de entrada do formulário e os
valores fornecidos para eles.
A string de consulta é separada do restante da URL por um ponto de interrogação.
Assim, se o usuário digitar "poupanca", o navegador criará a URL
http://finance.uol.com/q?s=poupanca e a solicitação enviada será a seguinte (alguns
cabeçalhos opcionais são omitidos para simplificar):
GET / q? S = poupanca HTTP / 1.1
Host: finance.uol.com
User-Agent: Mozilla / 5.0 (Windows; U; Windows 10; pt-BR; rv: 1.8.0.11)
A resposta que volta do servidor é algo como isto:
HTTP / 1.1 200 OK
Data: Ter, 08 Abr 2018 15:16:46 GMT
Conexão: close
Tipo de Conteúdo: text / html
Relembre que a manipulação de url pelo método GET não é tão comum e fácil devido a
padronizações de segurança. Mas ainda é possível quando usamos burp or owasp
interceptando os valores e verificando se os valores serão aceitos pelo servidor em
questão.
MÉTODO POST
A diferença fundamental entre as solicitações GET e POST é que as solicitações POST
possuem um corpo: conteúdo que segue o bloco de cabeçalhos, com uma linha em
branco separando os cabeçalhos do corpo. Observe que o navegador agora coloca
parâmetros do formulário no corpo da mensagem, em vez de anexá-los ao URL como
parte da string de consulta:
POST / q HTTP / 1.1
Host: finance.uol.com
User-Agent: Mozilla / 4.75 [en] (WinNT; U)
Tipo de Conteúdo: application / x-www-form-urlencoded
Content-Length: 6
s = poupanca
A resposta que chega de finance.uol.com é a mesma de quando se usa o método GET,
mas somente porque os criadores do aplicativo de servidor decidiram suportar os dois
métodos de solicitação da mesma maneira:
HTTP / 1.1 200 OK
Data: Ter, 08 Abr 2008 15:33:04 GMT
Conexão: close
Tipo de Conteúdo: text / html
Observe que para entender em uma perspectiva ampla, removi a maioria dos cabeçalhos
opcionais nas solicitações GET e POST e as respostas do servidor para nos
concentrarmos nos parâmetros de comunicação mais essenciais.
Caso você use wireshark para analisar os dados e eu indico o uso para entender como o
excesso de dados pode desencorjar a busca por dados importantes. Portando use o
comando
http.request.method == GET or http.request.method == POST
e você terá uma boa visão das maneiras diferentes que os pacotes são enviados
e recebidos.
➢ HTTP / 1.1 indica o protocolo / versão usada.
➢ 304 é o código de status para "Não modificado". Você pode encontrar todos
os códigos de status HTTP na página w3.org.
➢ Data indica o tempo durante o qual a resposta foi gerada.
Considerações sobre POST
O POST envia suas variáveis para no plano de fundo, o que significa que é muito mais difícil
de manipular, e tem um limite muito maior (normalmente vários megabytes) na quantidade
de dados que podem ser enviados. A desvantagem de usar o POST é que os navegadores
não reenviarão automaticamente os dados do post se o usuário clicar no botão Voltar, o que
levará a mensagens como "Os dados nesta página precisam ser reenviados", o que costuma
confundir os usuários. Isso não acontece com o GET, porque os navegadores consideram os
URLs GET iguais a qualquer outro URL e reenviam os dados com prazer, conforme
necessário.
Dica para PHP
Você pode definir quantos dados o PHP deve aceitar editando a entrada post_max_size no
seu arquivo php.ini - normalmente é configurado para 8M por padrão, permitindo que seus
usuários transfiram até 8 megabytes.
--
POST para enviar dados para o formulario.php:
<form action = " formulario.php" method = "post">
<input type = "submit" />
</ form>
Portando, você usa solicitações GET para páginas que apenas lêem dados do servidor. Você
geralmente usa solicitações POST quando o usuário precisa enviar informações por meio de
um formulário.
Algumas outras notas sobre solicitações POST:
➢ As solicitações POST nunca são armazenadas em cache
➢ As solicitações POST não permanecem no histórico do navegador
➢ Pedidos POST não podem ser marcados
➢ Solicitações POST não têm restrições quanto ao tamanho dos dados
Teoria sobre os métodos
Os servidores HTTP / 1.1 não são obrigados a implementar todos os métodos de
solicitação. No mínimo, qualquer servidor de propósito geral deve suportar os métodos
GET e HEAD. Todos os outros métodos são opcionais, embora seja difícil encontrar um
servidor com uso comum hoje que não ofereça suporte a solicitações POST. A maioria
dos servidores mais recentes também suporta os métodos PUT e DELETE.
Os servidores podem implementar métodos personalizados e definir restrições e
comportamento de processamento para eles. Essa abordagem só faz sentido para
ambientes fechados e raramente é usada.
ATAQUES
Passagem de diretório
Vamos começar com um simples ataque por diretório. O ataque traversal de diretórios
é uma fraqueza realmente básica, mas pode revelar informações interessantes - às vezes
sensíveis - sobre um sistema da Web. Esse ataque envolve a navegação em um site e a
busca de pistas sobre a estrutura de diretórios do servidor e arquivos confidenciais que
podem ter sido salvos/carregados/expostos intencionalmente ou não.
Crawlers
Um programa spider, como o HTTrack Website, pode rastrear seu site para procurar
todos os arquivos publicamente acessíveis. Para usar o HTTrack, basta carregá-lo, dar
um nome ao seu projeto, dizer ao HTTrack quais sites devem ser espelhados e, depois
de alguns minutos (dependendo do tamanho e da complexidade do site), você terá tudo
o que é publicamente acessível no site armazenado em sua unidade local.
E a análise do website fica a seu critério.
Usando Maltego, também é possível mapear um website e testar alguns vulnerabilidades.
OWASP ZAP
Basta escolhar a pasta e iniciar o método intrusivo em cada diretório.
Bibliografia
Nájera-Gutiérrez, G., & Ansari, J. A. (2018). Web Penetration Testing with Kali Linux - Third
Edition: Explore the methods and tools of ethical hacking with Kali Linux, 3rd Edition.
Birmingham: Packt Publishing.
Sabih, Z. (2018). Learn ethical hacking from scratch: Your stepping stone to penetration testing.
https://www.diffen.com/difference/GET-vs-POST-HTTP-Requests
Web Application Architecture: Principles, Protocols and Practices, 2nd Edition By: Leon Shklar;
Rich Rosen
Publisher: John Wiley & Sons Pub. Date: May 18, 2009 Hacking For Dummies® 3rd Edition
By: Kevin Beaver Publisher: For Dummies Pub. Date: January 12, 2010
http://www.httrack.com/
Fortify WebInspect https://software.microfocus.com/en-us/products/webinspect-dynamic-
analysis-dast/overview
Firefox Web Developer (http://chrispederick.com/work/web-developer) for analyzing script code
and performing other manual checks.
SWFScan(https://h30406.www3.hp.com/campaigns/2009/wwcampaign/1-
5TUVE/index.php?key=swf) for analyzing Shockwave Flash (.swf) files.
WSDigger(www.foundstone.com/us/resources/proddesc/wsdigger.htm) for analyzing Web
services.
WSFuzzer(www.owasp.org/index.php/Category:OWASP_WSFuzzer_Project) for analyzing
Web services.
i
https://www.w3schools.com/tags/ref_httpmethods.asp

O get and post para etico hacker

  • 1.
    O GET enviasuas variáveis no URL dos navegadores da Web de seus visitantes o que facilita a visualização do que foi enviado. No entanto, também é muito fácil para os visitantes alterarem o que foi enviado e, além disso, geralmente há um limite baixo no número de caracteres que podem ser enviados em um URL - geralmente menos de 250. Como resultado, se você envia variáveis longas usando GET, é provável que você perca grandes quantidades delas. O HTTP GET envia dados no URL de uma maneira muito óbvia: Observe que a string de consulta (os pares nome / valor) são enviados na URL de uma solicitação GET: /teste/demonstracao_form.php?name1=value1&name2=value2 Algumas outras notas sobre solicitações GETi : ➢ Solicitações GET podem ser armazenadas em cache ➢ As solicitações GET permanecem no histórico do navegador ➢ Solicitações GET podem ser marcadas ➢ As solicitações GET nunca devem ser usadas ao lidar com dados confidenciais ➢ Solicitações GET têm restrições de tamanho ➢ Pedidos GET são usados apenas para solicitar dados (não modificar) As solicitações GET datam das primeiras versões do HTTP. Portando, GET não tem um corpo e, até a versão 1.1, não era necessário ter cabeçalhos. (HTTP / 1.1 requer que o cabeçalho do Host esteja presente em todas as solicitações, para suportar hospedagem virtual). Na prática você pode usar o BurpSuite, OWASP ZAP ou qual interceptador para verificar como os cabeçalhos são analizados. Compartilhe aqui nos comentários qual é o melhor programa para analisar GET and POST e logo, manipula-los se for o caso do seu “experimento”. Na solicitação que é enviada por um navegador HTTP / 1.1 você preenche um formulário HTML simples para solicitar seu cadastro. Quando inserimos um valor no formulário, o navegador constrói uma URL composta do campo de ação a partir do formulário seguida de uma string de consulta contendo todos os parâmetros de entrada do formulário e os valores fornecidos para eles. A string de consulta é separada do restante da URL por um ponto de interrogação. Assim, se o usuário digitar "poupanca", o navegador criará a URL
  • 2.
    http://finance.uol.com/q?s=poupanca e asolicitação enviada será a seguinte (alguns cabeçalhos opcionais são omitidos para simplificar): GET / q? S = poupanca HTTP / 1.1 Host: finance.uol.com User-Agent: Mozilla / 5.0 (Windows; U; Windows 10; pt-BR; rv: 1.8.0.11) A resposta que volta do servidor é algo como isto: HTTP / 1.1 200 OK Data: Ter, 08 Abr 2018 15:16:46 GMT Conexão: close Tipo de Conteúdo: text / html Relembre que a manipulação de url pelo método GET não é tão comum e fácil devido a padronizações de segurança. Mas ainda é possível quando usamos burp or owasp interceptando os valores e verificando se os valores serão aceitos pelo servidor em questão. MÉTODO POST A diferença fundamental entre as solicitações GET e POST é que as solicitações POST possuem um corpo: conteúdo que segue o bloco de cabeçalhos, com uma linha em branco separando os cabeçalhos do corpo. Observe que o navegador agora coloca parâmetros do formulário no corpo da mensagem, em vez de anexá-los ao URL como parte da string de consulta: POST / q HTTP / 1.1 Host: finance.uol.com User-Agent: Mozilla / 4.75 [en] (WinNT; U) Tipo de Conteúdo: application / x-www-form-urlencoded Content-Length: 6
  • 3.
    s = poupanca Aresposta que chega de finance.uol.com é a mesma de quando se usa o método GET, mas somente porque os criadores do aplicativo de servidor decidiram suportar os dois métodos de solicitação da mesma maneira: HTTP / 1.1 200 OK Data: Ter, 08 Abr 2008 15:33:04 GMT Conexão: close Tipo de Conteúdo: text / html Observe que para entender em uma perspectiva ampla, removi a maioria dos cabeçalhos opcionais nas solicitações GET e POST e as respostas do servidor para nos concentrarmos nos parâmetros de comunicação mais essenciais. Caso você use wireshark para analisar os dados e eu indico o uso para entender como o excesso de dados pode desencorjar a busca por dados importantes. Portando use o comando http.request.method == GET or http.request.method == POST e você terá uma boa visão das maneiras diferentes que os pacotes são enviados e recebidos. ➢ HTTP / 1.1 indica o protocolo / versão usada. ➢ 304 é o código de status para "Não modificado". Você pode encontrar todos os códigos de status HTTP na página w3.org. ➢ Data indica o tempo durante o qual a resposta foi gerada. Considerações sobre POST
  • 4.
    O POST enviasuas variáveis para no plano de fundo, o que significa que é muito mais difícil de manipular, e tem um limite muito maior (normalmente vários megabytes) na quantidade de dados que podem ser enviados. A desvantagem de usar o POST é que os navegadores não reenviarão automaticamente os dados do post se o usuário clicar no botão Voltar, o que levará a mensagens como "Os dados nesta página precisam ser reenviados", o que costuma confundir os usuários. Isso não acontece com o GET, porque os navegadores consideram os URLs GET iguais a qualquer outro URL e reenviam os dados com prazer, conforme necessário. Dica para PHP Você pode definir quantos dados o PHP deve aceitar editando a entrada post_max_size no seu arquivo php.ini - normalmente é configurado para 8M por padrão, permitindo que seus usuários transfiram até 8 megabytes. -- POST para enviar dados para o formulario.php: <form action = " formulario.php" method = "post"> <input type = "submit" /> </ form> Portando, você usa solicitações GET para páginas que apenas lêem dados do servidor. Você geralmente usa solicitações POST quando o usuário precisa enviar informações por meio de um formulário. Algumas outras notas sobre solicitações POST: ➢ As solicitações POST nunca são armazenadas em cache ➢ As solicitações POST não permanecem no histórico do navegador ➢ Pedidos POST não podem ser marcados ➢ Solicitações POST não têm restrições quanto ao tamanho dos dados Teoria sobre os métodos Os servidores HTTP / 1.1 não são obrigados a implementar todos os métodos de solicitação. No mínimo, qualquer servidor de propósito geral deve suportar os métodos
  • 5.
    GET e HEAD.Todos os outros métodos são opcionais, embora seja difícil encontrar um servidor com uso comum hoje que não ofereça suporte a solicitações POST. A maioria dos servidores mais recentes também suporta os métodos PUT e DELETE. Os servidores podem implementar métodos personalizados e definir restrições e comportamento de processamento para eles. Essa abordagem só faz sentido para ambientes fechados e raramente é usada. ATAQUES Passagem de diretório Vamos começar com um simples ataque por diretório. O ataque traversal de diretórios é uma fraqueza realmente básica, mas pode revelar informações interessantes - às vezes sensíveis - sobre um sistema da Web. Esse ataque envolve a navegação em um site e a busca de pistas sobre a estrutura de diretórios do servidor e arquivos confidenciais que podem ter sido salvos/carregados/expostos intencionalmente ou não. Crawlers Um programa spider, como o HTTrack Website, pode rastrear seu site para procurar todos os arquivos publicamente acessíveis. Para usar o HTTrack, basta carregá-lo, dar um nome ao seu projeto, dizer ao HTTrack quais sites devem ser espelhados e, depois de alguns minutos (dependendo do tamanho e da complexidade do site), você terá tudo o que é publicamente acessível no site armazenado em sua unidade local. E a análise do website fica a seu critério. Usando Maltego, também é possível mapear um website e testar alguns vulnerabilidades. OWASP ZAP Basta escolhar a pasta e iniciar o método intrusivo em cada diretório. Bibliografia Nájera-Gutiérrez, G., & Ansari, J. A. (2018). Web Penetration Testing with Kali Linux - Third Edition: Explore the methods and tools of ethical hacking with Kali Linux, 3rd Edition. Birmingham: Packt Publishing. Sabih, Z. (2018). Learn ethical hacking from scratch: Your stepping stone to penetration testing. https://www.diffen.com/difference/GET-vs-POST-HTTP-Requests Web Application Architecture: Principles, Protocols and Practices, 2nd Edition By: Leon Shklar; Rich Rosen
  • 6.
    Publisher: John Wiley& Sons Pub. Date: May 18, 2009 Hacking For Dummies® 3rd Edition By: Kevin Beaver Publisher: For Dummies Pub. Date: January 12, 2010 http://www.httrack.com/ Fortify WebInspect https://software.microfocus.com/en-us/products/webinspect-dynamic- analysis-dast/overview Firefox Web Developer (http://chrispederick.com/work/web-developer) for analyzing script code and performing other manual checks. SWFScan(https://h30406.www3.hp.com/campaigns/2009/wwcampaign/1- 5TUVE/index.php?key=swf) for analyzing Shockwave Flash (.swf) files. WSDigger(www.foundstone.com/us/resources/proddesc/wsdigger.htm) for analyzing Web services. WSFuzzer(www.owasp.org/index.php/Category:OWASP_WSFuzzer_Project) for analyzing Web services. i https://www.w3schools.com/tags/ref_httpmethods.asp