Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

SurrealScan SQLi - By #M0rph

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

  • Font Size
    #1

    Python SurrealScan SQLi - By #M0rph

    A simple tool for get websites vulnerables...

    Source:
    Código PHP:
    #!/usr/bin/env python
    # -*- coding: cp1252 -*-
    '''
    * Sofredor: Rodrigo Correia(#M0rph)
    * Facebook: rodrigo.correia.3194
    *
    * Programa sem lei, você pode e deve copiar e retirar todos os créditos
    * do autor, mas se lembre-se, você irá prejudicar um homem de familia,
    * que trabalha arduamente todos os dias para alimentar seus filhos, 
    * passando muitas vezes nessecidades por falta de remuneração pelo
    * trabalho prestado para sociedade. Então, pense bem em suas ações.
    '''

    import reurlliburlparsethreadingtime
    from BeautifulSoup import BeautifulSoup

    global handle
    pattern_isvull 
    = ["You have an error in your""mysql_fetch_"# you can add more
    Banner '''[+] SurrealScan SQLi 0.1\n[+] Code by #M0rph
    [+] FB: facebook.com/rodrigo.correia.3194
    [+] Gretz: WhiteCollarGroup, http://darkhat.com.br, forum.guiadohacker.com.br
    [+] The bitches... 0KaL, WCG147, Slevin, Brloopinha, LostShadow and others =s\n\n'''

    def request(url):
        
    res urllib.urlopen(url)
        
    result res.read()
        return 
    result
        
    def limpar_str
    (string):
        
    string string.replace(" "," ")
        
    string string.replace("&""&")
        return 
    string

    def SearchBing
    (query):
        
    #http://br.bing.com/search?q={query}&first={page}
        
    pattern_nextpage  '<a href=\"([^\"]+)\" class=\"sb_pagN\"'
        
    pattern_getresult 'sb_tlst\"><h3><a href=\"([^\"]+)\" h' 
        
    resultado = []
        
    host "http://br.bing.com"
        
    url host+"/search?q="+query+"&first=1"
        
    text ""
        
    while == 1:
            
    result request(url)
            
    pattern re.compile(pattern_getresult)
            
    text re.findall(patternresult)
            for 
    i in range(len(text)):
                
    resultado.append(text[i])#print text[i]
            
    pattern re.compile(pattern_nextpage)
            
    text re.findall(patternresult)
            if 
    ''.join(text) == '':
                break
            
    url host+limpar_str(''.join(text))
        return 
    resultado

    def SearchYahoo
    (query):
        
    pattern_nextpage  '<a id=\"pg-next\" href=\"([^\"]+)\"' # OK
        
    pattern_getresult 'class=\"yschttl spt\" href=\"([^\"]+)\"' # OK
        
    host "http://search.yahoo.com"
        
    url host+"/search?p="+query+"&b=0&ei=UTF-8&y=Search&xargs=0&pstart=0"
        
    text ""
        
    resultado = []
        while 
    1==1:
            
    result request(url)
            
    pattern re.compile(pattern_getresult)
            
    text re.findall(patternresult)
            for 
    i in range(len(text)):
                
    resultado.append(text[i])#print text[i]
            
    pattern re.compile(pattern_nextpage)
            
    text re.findall(patternresult)
            if 
    ''.join(text) == '':
                break
            
    url host+limpar_str(''.join(text))
        return 
    resultado

    def tester
    (urlcurrentend):
        try:
            
    #print "[+] Process: "+str(current)+" of "+str(end)
            
    global handle
            result 
    request(url+"'")
            
    result limpar_str(result)
            for 
    j in range(len(pattern_isvull)):
                if 
    result.find(pattern_isvull[j]) != -1:
                    
    handle.write(url+"\n")
                    
    #print "[+] Process: "+str(i)+" of "+str(end)
                #else:
                #    print "[+] Process: "+str(i)+" of "+str(end)
        
    except:
            
    pass
            
    def IsVull
    (result_search):
        try:
            print 
    "[+] Testing website..."
            
    global handle
            handle 
    open("Vull.txt"'w')
            
    handle.write('''[+] SurrealScan SQLI 0.1\n[+] Code by #M0rph\n[+] FB: facebook.com/rodrigo.correia.3194\n\n''')
            for 
    i in range(len(result_search)):
                if 
    threading.activeCount()-10:
                    
    t2  threading.Thread(target=testerargs=(result_search[i], ilen(result_search)))
                    
    t2.start()
                else:
                    
    1
                    time
    .sleep(1)
            
    handle.close()    
            
    open("Vull.txt"'r')
            
    total_vull len(a.readlines())-4
            
    print "[+] Websites vull: "+str(total_vull)
        
    except:
            print 
    "[-] Erro."

        
    def main():
        print 
    Banner
        search 
    raw_input("Search engine -> [1]Bing [2]Yahoo: ")
        
    dork   raw_input("Enter with dork search(Ex: news.php?id=): ")
        if 
    int(search) == 1:
            print 
    "[!] Please, wait..."
            
    result SearchBing(dork)
        
    elif int(search) == 2:
            print 
    "[!] Please, wait..."
            
    result_yahoo SearchYahoo(dork)
        else:
            print 
    "[-] Option invalid."
            
    return 1
            
        re 
    = []
        
    result set(result)
        for 
    i in result:
            
    re.append(i)
        print 
    "\n[+] Number of results: "+str(len(re))
        
    IsVull(re)
        print 
    "[+] Done."
            

    main() 
    "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
    (Augusto Cury)



    Meu Blog... http://www.lab-infor.blogspot.com
    Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

  • Font Size
    #2
    fica a dica

    #M0rph legal, mas eu acrecitaria mais uma linha nos comandos.
    def SearchGoogles(query):

    Se ajude pode agradecer.
    Fica a dica.
    Last edited by infernobr; 10-01-2013, 10:57. Motivo: erro

    Comment


    • Font Size
      #3
      infernobr nao iria funcionar com a Google, eles tem protecao contra search automatizadas.
      Logo, iria pedi captcha. =/
      "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
      (Augusto Cury)



      Meu Blog... http://www.lab-infor.blogspot.com
      Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

      Comment


      • Font Size
        #4
        kkkk rachei com os comentários no cabeçalho.


        Notify-list ~ Twitter ~ E-mail

        Comment


        • Font Size
          #5
          como fasso pra ussar esse trem ?

          Comment


          • Font Size
            #6
            Primeiramente, tire o import BeautifulSoup(não é necessário).
            Após, baixe e instale o Python 2.7(Download Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...).

            Feito isto, configure o diretório do Python(C:/Python27) como variáveis do ambiente, para poder chama-lo de qualquer diretório(Isso fica lá nas configurações do Sistema).

            Agora, é só exuta-lo. Vá ao diretório onde está o script, via shell, digite o nome do mesmo e aperte enter. Pronto, irá rodar tranquilamente.

            Espero ter ajudado, abraços... =]
            "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
            (Augusto Cury)



            Meu Blog... http://www.lab-infor.blogspot.com
            Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

            Comment


            • Font Size
              #7
              Mão na roda....


              vlw
              sigpic
              " O bom hacker todos conhecem e sabem quem é, mas o excelente hacker... esse nunca saberemos quem um dia foi."
              Nova lei - Invadir computadores protegidos é crime.
              Lógica - Se eu invadi, não é protegido. Logo, não é crime

              Comment


              • Font Size
                #8
                Pessimo ingles, programa horrivelmente programado.

                Comment


                • Font Size
                  #9
                  Postado Originalmente por singur Ver Post
                  Pessimo ingles, programa horrivelmente programado.
                  Sim, meu inglês é horrivel... u.u

                  Em relação ao programa, não irei responde devidamente por não ser uma crítica construtiva, melhore-a que irei responder. Até mais...
                  "Nunca desista de seus sonhos. Desisti de seus sonhos é abrir mão da felicidade."
                  (Augusto Cury)



                  Meu Blog... http://www.lab-infor.blogspot.com
                  Meu canal do Youtube... http://www.youtube.com/user/rodrigo32323232

                  Comment


                  • Font Size
                    #10
                    -Definiu duas funcoes identicas (SearchBing, SearchYahoo).Quando eh assim eh evidente que criamos uma funcao que acople os dois comportamentos e usamo-a no lugar ou criamos wrappers para a mesma:
                    Código:
                    def Search(query, result_pattern, nextpage_pattern):
                    #...
                    def SearchYahoo(query):
                        result_pattern = ...
                        nextpage_pattern = ...
                        Search(query, result_pattern, nextpage_pattern)
                    def SearchBing(query):
                    #identico ao search yahoo, mudando apenas as patterns
                    Tambem nao gostei da maneira que pega a proxima pagina.Nao existe necessidade nenhuma do uso de expressao regulares (e muito menos do findall) pra isso nos dois casos em questao (e possivelmente em nenhum outro caso).
                    No caso de funcoes extensiveis como a definida, um lambda poderia ser definido como parametro para ser responsavel de alterar a url.

                    -Usou loops onde o metodo extend e afins poderiam ser utilizados.

                    -global handle
                    Nem vou falar nada.Ta de sacanagem?

                    -No metodo limpar_str voce usa o nome de um modulo como parametro (pessima pratica) e eh redundante, ficaria melhor:
                    def limpar_str(astr):
                    return astr.replace(...).replace(...)

                    -Voce praticamente nao se preocupa com erros e suas especificacoes (no caso de requests, por exemplo, voce simplesmente supoem que nao ocorrerao erros).

                    -Da funcao IsVul:
                    Usou threads dentro de um contexto totalmente IOBlocking.
                    Deu um sleep de 1s e fez a funcao voltar em um resultado passado sem real objetivo.
                    O final do codigo (onde voce abre o arquivo novamente para ler os resultados) poderia ser restruturado de uma maneira bem melhor (os resultados ja estao no proprio programa, oras).
                    Sem contar que sao criadas race-conditions.

                    -No metodo tester nao existe manipulacao eficiente dos parametros da query string.Supoe-se que o parametro a ser injetado eh o ultimo e soh eh testado um metodo de injecao.

                    De resto, voce nem chegou a pensar na extensibilidade do programa (ateh mesmo no referente ao input do usuario) e nao seguiu boas praticas de programacao assim como o estruturou de forma ruim (dificil explicar, e estou com preguica).
                    Outro dia, talvez eu faca um orientado a objetos como exemplo.

                    Comment


                    • Font Size
                      #11
                      Traceback (most recent call last):
                      File "untitled.py", line 15, in <module>
                      from BeautifulSoup import BeautifulSoup
                      ImportError: No module named BeautifulSoup

                      o que esta a acontecer ?

                      Comment


                      • Font Size
                        #12
                        Traceback (most recent call last):
                        File "untitled.py", line 15, in <module>
                        from BeautifulSoup import BeautifulSoup
                        ImportError: No module named BeautifulSoup

                        o que esta a acontecer ?

                        Comment

                        X
                        Working...
                        X