FORUM DARKERS

Segurança & Hacking => Penetration Tests => Topic started by: Shady on 05 de June , 2006, 01:45:35 AM

Title: Javascript e SQL Injections (ingles)
Post by: Shady on 05 de June , 2006, 01:45:35 AM
Title: Re: Javascript e SQL Injections (ingles)
Post by: Anonymous on 06 de June , 2006, 06:22:47 PM
Bom Shady!

By Mago__
Title: Re: Javascript e SQL Injections (ingles)
Post by: Anonymous on 12 de June , 2006, 02:44:56 AM
Ai vai uma "tradução" do texto acima

Eu tive este txt perdido em alguns dobradores com lotes do material inútil mas este é agradável e eu quis compartilhar =) [ nota do editor de Packetstorm: o "hictor" reivindicou previamente este trabalho como his/hers. Esta parece ser uma reivindicação falsa, baseada em uma pessoa de triviasecurity.org que reivindica este trabalho como seus próprios, e baseada em procurarar por este trabalho em Google e em encontrar referências a Dr_aMado. Naturalmente, é sempre difícil verificar quem o autor verdadeiro é, assim que nós esperamos que você compreenda todo o erro possível ] Este tutorial é uma vista geral de como o Javascript pode ser usado contornear formulários do HTML de simple/advanced e de como pode ser usado cancelar o authentication de cookie/session. HTML SIMPLES FORMS 1. Contorneando Campos Requeridos Certamente você encontrou-se com um Web page que o requeresse encher todos os campos em um formulário a fim o submeter. É possível contornear estes tipos de limitações em todo o Web page. Se você fizer exame de um olhar na fonte do Web page e o seguir para baixo ao código do formulário, você observará o atributo do formulário do onsubmit. Esperançosamente por este tempo você experimentou o poder do Javascript e você sabe que o Javascript tem o controle sobre cada único elemento em um Web page, including forms.We pode usar o Javascript a nossa vantagem em cada página que nós vemos para nós podemos modificar, para suprimir, ou adicionar todo o elemento ao Web page. Neste caso nós desejamos cancelar o atributo do onsubmit do formulário para que o formulário a ser submetido com sucesso. O atributo do onsubmit aponta geralmente a uma função que verifique o formulário para ter o formato correto. Uma função que faça esta pode olhar algo como isto: formSubmit(x) da função {retorno do =="") de if(x.email.value falso; do retorno rectifique; } ... ... Eu não entrarei no detalhe grande sobre como a função do formSubmit trabalha. Você deve saber que se (textfield/optionfield/option/..) o campo for deixado em branco, o formulário não estará submetido a process.php. Vem agora o momento da verdade, como nós modifica o formulário de modo que o onsubmit retorne o everytime verdadeiro? A maneira nós podemos alcançar o formulário com Javascript e fazer isto é: document.forms onsubmit="return verdadeiro;"; ou document.spamform.onsubmit="return verdadeiro;"; Ambos a vontade destas ' perguntas permitem que você submeta o formulário livre das limitações. O segredo é como executar isto. Eu faço este que usa a barra da posição do meu browser. Tudo que você tem que fazer deve incorporar este texto na barra da posição e a imprensa entra: javascript:document.spamform.onsubmit="return verdadeiro;"; A indicação acima não trabalhará porque ' a pergunta ' retornará um Javascript do valor não sabe o que fazer com ela assim que despeja o valor retornado na tela. Nós necessitamos uma maneira usar este valor e escapar d da passagem sobre ao Javascript. Eu sei a maneira exata fazer isto, com alert()! javascript:alert(document.spamform.onsubmit="return verdadeiro;"); Você verá um alertbox com o "do retorno rectificar;" em vez de despejar este valor para fora ao webbrowser. Uma vez que você executou esta pergunta você poderá incorporar o que valor em o que campo no spamform. 2. Valores Dos Campos Em mudança Se você controlar mudar o atributo do onsubmit de um formulário deixar você faz o que quer que o vai se foder quer, o que é os limites? Naturalmente agora você sabe que você pode modificar o atributo do onsubmit de um formulário da barra da posição, mesmos vai para todos os atributos de qualquer objeto na página. Isto é como você pode o fazer: javascript:alert(document.spamform.fieldname.value="Dr_aMado estava aqui!"); ou javascript:alert(document.forms o fieldname.value="Dr_aMado estava aqui!"); Mas naturalmente, você soube já aquele. Não você? Você pode mudar os valores de bonito muito qualquer coisa dentro de um formulário, including rádios, dos checkboxes, seleciona, valores escondidos, teclas, qualquer coisa! INJEÇÕES DO SQL 1. Usando formulários a sua vantagem Você sabe provavelmente já sobre a injeção do sql, meu objetivo deve explicar como os formulários vulneráveis podem if.not ser segurados corretamente. Ao alvejar um sistema, a maioria de vezes você começará fora com 0 códigos explorar. A única coisa que você tem é um Web page construído a quebrar às partes e para encontrar com sucesso vulnerabilities para usar-se a sua vantagem. ADQUIRINDO A INFORMAÇÃO DA BASE DE DADOS Muito uma maneira da lógica de adquirir a informação do sistema da base de dados de um Web site é causando erros nas perguntas do sql. Estes erros podem ser criados através dos formulários da busca, das ligações dinâmicas, ou dos bolinhos da sessão. A maioria de papéis da injeção do sql explicam como as ligações dinâmicas e as caixas de texto podem ser usadas executar perguntas do sql mas em minha opinião, este vulnurability são mais comuns em outros tipos da entrada (caixas seletas, campos escondidos, checkboxes e teclas de rádio, e bolinhos!). Que misturam os dados tipos deixam de funcionar geralmente um Web page se não forem bons codificados. Faça exame para o exemplo de uma ligação "memberinfo.php?o_id=1". Se seu objetivo for deixar de funcionar que a página ele seria uma idéia boa furar no "ou ' na variável do o_id. Se você for afortunado você começará uma mensagem eliminar erros que contem a pergunta aleijada do sql. Depois que você tem toda a informação que você necessita e você sabe o que você está indo depois que você está pronto para cortar o inferno fora de cada página que você tem o acesso a. VALORES DOS CAMPOS EM MUDANÇA O primeiro formulário que você pensa de é a página do perfil. A maioria de páginas do perfil ignoram intelectuais de um usuário e não mascaram para fora de, para o exemplo, caixas seletas. Uma maneira de explorar este vulnerability é injetando uma pergunta do sql na propriedade do valor do campo. javascript:alert(document.profileform.user_sex.value="gay&*92;', user_pasword=&*92;'HACKED&*92;' ONDE user_id=1 *"); Se nós supusermos que a pergunta do sql do lado do usuário olha algo como esta: do "user_data user_password='$user_password' AJUSTADO UPDATE, user_email='$user_email', user_sex='$user_sex ' ONDE user_id=$user_id"; Então a pergunta final olhará um tanto como esta: do "user_password='mypassword' AJUSTADO do user_data UPDATE, user_email='myemail', user_sex='gay', user_password='HACKED ' ONDE user_id=1 * ' ONDE user_id=7382"; * É um operador do comentário do sql. 2. Contorneando Bolinhos Da Sessão AUTHENTICATION CANCELANDO DO BOLINHO DA SESSÃO DO BASIC Na maioria das vezes a manipulação da sessão é feito com o uso dos bolinhos. Os bolinhos dizem o Web page a que você é e o que você tem o acesso e o que você não tem o acesso. Se a página não segurasse bolinhos da sessão corretamente um hacker pôde poder mudar sua identidade àquela de um outro usuário. Os bolinhos são armazenados em "window.document.cookie". Com o Javascript que nós podemos apagar, edite, críe bolinhos para todo o Web site. Esta tarefa é mais complicada do que tipos regulares de ataques. Eu não entrarei no detalhe grande sobre como é feito. Para ver o bolinho: javascript:alert(unescape(document.cookie)); Para mudar Dados Do Bolinho: javascript:alert(window.c=function a(n, v, nv){c=document.cookie;c=c.substring(c.indexOf(n)+n.length, c.length);c=c.substring(1, ((c.indexOf(";")>-1) ? c.indexOf(";") : c.length));nc=unescape(c).replace(v, nv);document.cookie=n+"="+escape(nc);return unescape(document.cookie);});alert(c(prompt("cookie name:"," "),prompt("replace este value:"," "),prompt("with::",""))); Assim se você for entrado como de "a corça john" em www.ima13370h4x0r.net (http://www.ima13370h4x0r.net) e em seu bolinho da sessão lê: SessionData=a:3:{s:11:"SessionUser";s:5:"75959";s:9:"SessionID";i:70202768;s:9:"LastVisit";i:1078367189;} O bolinho é colocado em série realmente mas você deve poder reconhecer "75959" como seu user_id. Algum do tempo você encontrará um Web site que armazene dados (como o user_id) nos bolinhos mas não typecast os dados. Este é um furo sério no código do local porque todo o usuário pode mudar seu user_id a qualquer outro user_id do usuário ou do administrador. Mudar o valor do bolinho é fácil uma vez que você declarou a função de window.c. Primeira mudança s:5:"75959" a s:x:"ADMINID" onde x está a um comprimento do valor novo. Assim se você quiser mudar 75959 a 1. Você deve mudar s:5:"75959" a s:1:"1":-) Às vezes você necessitará mudar 75959 a "13 ou a 1=1" a fim contornear alguns ONDE indicações todas as perguntas da sessão do sql usadas mantê-lo entrado o Web site. Notas: As indicações in-line do Javascript podem ser adicionadas aos favoritos do seu browser para um acesso mais fácil a suas próprias funções. É possível declarar suas próprias funções para o uso em cortes prolongados. Declare a função como um método da janela. "alert(window.newfunction = função (){...})" eu sei que algumas peças estiveram cobertas já em outros artigos mas eu não quis o editar

 :. By Zeus .:
Title: Re: Javascript e SQL Injections (ingles)
Post by: Anonymous on 14 de June , 2006, 09:01:58 PM
Valeu galera!! Muito legal...