Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

SQLi: Ataque & defesa

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

  • Font Size
    #1

    Tutorial SQLi: Ataque & defesa

    Hackers \"profissionais\" não acharão graça alguma neste tutorial. É mais para quem está iniciando no assunto.
    Além de mostrar as técnicas de \"ataque\", vou mostrar também técnicas de \"defesa\".
    A linguagem aqui utilizada é PHP.

    Mas, primeiramente, o que é SQL?
    Instruções SQL são códigos que instruem o sistema a acessar um banco de dados (database). Um banco de dados é onde ficam guardados os dados dinâmicos de um site. Um exemplo de banco de dados é o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
    Vamos ver, então, como o desenvolvedor faria para verificar um login e uma senha:
    Código PHP:
    <?php
    # Aqui, a variável $user equivale ao dado do campo "user" no formulário. O mesmo ocorre com a senha.
    $user $_POST['user'];
    $pass $_POST['pass'];

    #Agora, da tabela "users", vamos ver se usuario e senha são correspondentes.
    $query "SELECT * FROM users
            WHERE user='
    {$user}' AND senha='{$senha}'";
    Então, os dados do formulário são diretamente jogados na instrução SQL. Mas, e se, ao invés de login e senha, colocássemos mais instruções SQL?
    Vamos colocar então a seguinte string:
    Código:
    ' or 1='1
    No campo da senha, que é o último. Então, a instrução SQL ficará assim:
    SELECT * FROM users WHERE user = '' AND senha = '' or 1='1'
    Então, \"traduzindo\", verificamos se o usuário e a senha se correspondem ou se 1 é igual a 1. Então, mesmo que o login e a senha estejam incorretos, como 1=1, efetuamos login normalmente.
    Claro que há muito mais o que fazer. Com o SQLi é possível entrar em áreas privilegiadas, como a área de administração de um site, mas estudando um pouco mais, ainda apenas inserindo mais instruções SQL, também é possível ver todo o banco de dados, alterar dados e até estar no shell do servidor.

    Mas, como \"ao atacar não podemos ser atacados\", vou mostrar aqui um exemplo de como seria a defesa: o simples uso da função addslashes(), que coloca uma barra invertida antes de cada aspa, tornando-a inválida e não-literal. Assim, a instrução SQL ficaria segura e não poderiam ser inclusos novos pedaços de código. Veja:
    SELECT * FROM users WHERE user = '' AND senha = '\' or 1='1'
    Também há outras funções, como a stripslashes(), mysql_real_escape_string() etc.

    Apesar da simplicidade da proteção, a maioria dos desenvolvedores não a aplicam. E o pior: a humanidade não sabe o porque disso.

    Também é interessante adicionar criptografia hash nas senhas, tais como MD5(), Sha1() etc.

    Não repitam as ações maléficas citadas no texto. Caráter acadêmico. \"Seus atos estão sob sua responsabilidade.\"
    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

  • Font Size
    #2
    É bom também utilizar a função Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar..., que já é própria para este caso.
    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 :-)

    Comment


    • Font Size
      #3
      blz cara, você disse que era pra iniciante, mas eu so iniciante, entendi a logica do script e tal, porém não sei O QUE FAZER COM ISSO AMIGAO ;/

      o que todos tem que entender aqui é que quando se fala em iniciante, é iniciante mesmo, que sabe pouco, eu nao sei o que fazer com esse script ;s

      tpw, eu sei que serve para entrar como adm, etc nos bancos de dados, entendi o que é linguagem SQL e server SQL, porém eu não sei aonde inserir esse script, parece ser uma coisa tao simples que todo mundo sabe, porém não é assim, eu por exemplo não sei

      agradeço desde já por qualquer resposta e ajuda!!
      "Você pode ter a fé que quiser em espíritos, em vida após a morte, no paraíso e no inferno, mas se tratando desse mundo, não seja idiota. Porque você pode me dizer que deposita sua fé em Deus para passar pelo dia, mas quando chega a hora de atravessar a rua, eu sei que você olha para os dois lados"

      Comment


      • Font Size
        #4
        Postado Originalmente por edyzao Ver Post
        blz cara, você disse que era pra iniciante, mas eu so iniciante, entendi a logica do script e tal, porém não sei O QUE FAZER COM ISSO AMIGAO ;/

        o que todos tem que entender aqui é que quando se fala em iniciante, é iniciante mesmo, que sabe pouco, eu nao sei o que fazer com esse script ;s

        tpw, eu sei que serve para entrar como adm, etc nos bancos de dados, entendi o que é linguagem SQL e server SQL, porém eu não sei aonde inserir esse script, parece ser uma coisa tao simples que todo mundo sabe, porém não é assim, eu por exemplo não sei

        agradeço desde já por qualquer resposta e ajuda!!
        somos dois, tambem nao sei o que fazer com esse script. rss

        Comment


        • Font Size
          #5
          Postado Originalmente por edyzao:

          blz cara, você disse que era pra iniciante, mas eu so iniciante, entendi a logica do script e tal, porém não sei O QUE FAZER COM ISSO AMIGAO ;/

          o que todos tem que entender aqui é que quando se fala em iniciante, é iniciante mesmo, que sabe pouco, eu nao sei o que fazer com esse script ;s

          tpw, eu sei que serve para entrar como adm, etc nos bancos de dados, entendi o que é linguagem SQL e server SQL, porém eu não sei aonde inserir esse script, parece ser uma coisa tao simples que todo mundo sabe, porém não é assim, eu por exemplo não sei

          agradeço desde já por qualquer resposta e ajuda!!
          somos dois, tambem nao sei o que fazer com esse script. rss
          Postado Originalmente por leo.nardo Ver Post
          somos dois, tambem nao sei o que fazer com esse script. rss

          Pessoal esse string é colocado quando vc encontra uma página de login e senha do adm.

          Pesquisando no Google códigos como :
          allinurl:admin/index.asp
          Att;
          Guido Dias
          sigpic

          Comment


          • Font Size
            #6
            Valeu, Guido.
            Estou sem net por 30days, não dá pra visitar todo dia.
            Eu mostrei um script PHP mostrando como é feita, supostamente, a validação.
            Onde colocar vai depender do site. Há aqueles que se coloca no form de login, outros que se colocam numa variável Get (isto é, na URL).
            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 :-)

            Comment


            • Font Size
              #7
              aff... e como sempre os ladrões de conteudo ja agiram
              Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

              nao sou contra a distribuicao de conteúdo. mas, se vai fazer um Ctrl C + Ctrl V, pelo menos coloque a fonte ou o autor.
              e o legal é que até uma parte da minha assinatura copiaram kk
              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 :-)

              Comment


              • Font Size
                #8
                E agora, que tal passar para o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...?
                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 :-)

                Comment


                • Font Size
                  #9
                  Bem Legal cara
                  sigpic

                  Comment


                  • Font Size
                    #10
                    Tá guido, mas mesmo assim, n entendi, soh aparece login e senha, eh no codigo-fonte q tem q por a script? como é?

                    Comment

                    X
                    Working...
                    X