Ver Mensaje Individual
  #9 (permalink)  
Antiguo 22/09/2010, 00:52
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Codigo encriptado

Éste es distinto pero igual resultó fácil desencriptarlo luego de saber cómo hacerlo:

Código PHP:
Ver original
  1. ?>    <!-- Footer Widget Area Starts -->
  2.     <div id="footer-widgets">
  3.  
  4.         <div class="container col-full">
  5.             <div class="block">
  6.                 <?php dynamic_sidebar('footer-1'); ?>                  
  7.             </div>
  8.             <div class="block">
  9.                 <?php dynamic_sidebar('footer-2'); ?>                  
  10.             </div>
  11.             <div class="block last">
  12.                 <?php dynamic_sidebar('footer-3'); ?>                  
  13.             </div>
  14.  
  15.             <div class="fix"></div>
  16.         </div>    
  17.     </div>
  18.     <!-- Footer Widget Area Ends -->
  19.  
  20.     <div id="footer">
  21.         <div class="col-full">
  22.             <div id="copyright" class="col-left">
  23.                 <p>&copy; <?php echo date('Y'); ?> <?php bloginfo(); ?>. <?php _e('All Rights Reserved.', 'woothemes') ?></p>
  24.  
  25.             </div>
  26.            
  27.             <div id="credit" class="col-right">
  28.                 <p><?php _e('Powered by', 'woothemes') ?> <a href="http://www.wordpress.org">Wordpress</a>. <?php _e('Designed by', 'woothemes') ?> <a href="http://www.wicked-wordpress-themes.com/wordpress-plugins/">Top Wp Plugins</a></p>
  29.             </div>
  30.         </div>
  31.     </div>
  32.  
  33.     <!-- footer Ends -->
  34.    
  35. </div><!-- /#container -->
  36.  
  37. <?php wp_footer(); ?>
  38.  
  39. <?php if ( get_option('woo_twitter') && get_option('woo_ad_top') <> "true") { ?>
  40.     <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
  41.     <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/<?php echo get_option('woo_twitter'); ?>.json?callback=twitterCallback2&amp;count=1"></script>
  42. <?php } ?>

1) Crear nuevas líneas a partir del punto y coma (;). Es decir, donde encontremos ese símbolo cortaremos la línea. Eso nos dará tres líneas: la de la variable "$o", el código a desencriptar y la función "return".

2) La segunda línea comienza con eval(... Reemplazar ese "eval" por un "echo". Guardar y correr el documento.

3) El resultado será una línea larga. En este caso tendrá el siguiente aspecto:

Código PHP:
Ver original
  1. $lll=0;eval(base64_decode("JGxsbGxsbGxsbGxsPSdiYXNlNjRfZGVjb2RlJzs="));$ll=0;eval($lllllllllll("JGxsbGxsbGxsbGw9J29yZCc7"));$llll=0;$lllll=3;eval($lllllllllll("JGw9JGxsbGxsbGxsbGxsKCRvKTs="));$lllllll=0;$llllll=($llllllllll($l[1])<<8)+$llllllllll($l[2]);eval($lllllllllll("JGxsbGxsbGxsbGxsbGw9J3N0cmxlbic7"));$lllllllll=16;$llllllll="";for(;$lllll<$lllllllllllll($l);){if($lllllllll==0){$llllll=($llllllllll($l[$lllll++])<<8);$llllll+=$llllllllll($l[$lllll++]);$lllllllll=16;}if($llllll&0x8000){$lll=($llllllllll($l[$lllll++])<<4);$lll+=($llllllllll($l[$lllll])>>4);if($lll){$ll=($llllllllll($l[$lllll++])&0x0f)+3;for($llll=0;$llll<$ll;$llll++)$llllllll[$lllllll+$llll]=$llllllll[$lllllll-$lll+$llll];$lllllll+=$ll;}else{$ll=($llllllllll($l[$lllll++])<<8);$ll+=$llllllllll($l[$lllll++])+16;for($llll=0;$llll<$ll;$llllllll[$lllllll+$llll++]=$llllllllll($l[$lllll]));$lllll++;$lllllll+=$ll;}}else$llllllll[$lllllll++]=$llllllllll($l[$lllll++]);$llllll<<=1;$lllllllll--;}eval($lllllllllll("JGxsbGxsbGxsbGxsbD0nY2hyJzs="));$lllll=0;eval($lllllllllll("JGxsbGxsbGxsbD0iPyIuJGxsbGxsbGxsbGxsbCg2Mik7"));$llllllllll="";for(;$lllll<$lllllll;){$llllllllll.=$llllllllllll($llllllll[$lllll++]^0x07);}eval($lllllllllll("JGxsbGxsbGxsbC49JGxsbGxsbGxsbGwuJGxsbGxsbGxsbGxsbCg2MCkuIj8iOw=="));eval($lllllllll);

4) Ahora vamos a copiar esa línea y pegarla en la 2da línea del código, reemplazando a la misma que antes tenía "eval" y fue reemplazada por el "echo". La primera y la tercera se preservan. Es decir, debe quedar así:

Código PHP:
Ver original
  1. <?php
  2. $o="QEAAJwAQOyYqKidBaGhzYnUnUG4AAGNgYnMnRnViZidUc2Z1c3QAACcqKjkKDQ47Y25xJ25jOiVJgGECkipwApJ0JQHBAdNka2Z0dDolAQBkaGlzZm5pBMBkaGsqYXJra/gwAkEGcAA2BLIC5GVraGRsAh0CoTs4d28AAHcnY35pZmpuZFh0bmNiZWYQBnUvIAfkNiAuPCc4OQ4OArEARApn/Q0AlAByOygLEAnQANIAVAefAhwCgQefB5k1B59amycHn3EFjAeeJxLAcw9/JycH7wfpNAfvB+9IP24H5A4OGYphbn8lORFlAbASAg8RC/MBpePvASEhHyETQmljIPQhHwzRBWAXUCcdtB//BcEOMMAIAkEkoWRod351bmBvcyUDOWtiYcKAEa8DoDt3OSEDITwSRGJkb2gnY2YHAnNiLyBeEXMBlCUwYG5pYWgvIjIpoIABZFgCgEZraydVBxF0J1VidGJ1AEBxYmMpICsnIHAtMG9iamJ0IEf4LiVQOyh3G/0SwhKDCKAAMgDrHhINQnViY38Ibg0bDjMFPARBDSAe8wnBV2hwYgPAJ2V+gAAJLyc7ZidvdWJhOiVvc3N3PQAAKChwcHApcGh1Y3d1YnR0KQIQaHVgJTlQAPU7KGY5D1lDYnRuDwJgaWJjBa8OwAWvBaFuZGxiYyoGFipBEHMR0ilkaGooAVd3a3IWcHQoJTkA/VNodydQdydXARMIARQ/JfUiMBTUDgE20Z4m8j2TJyY3DgoNAiMB8igkRYdJEgHgQiJwMgh3WAOzHvMKDQGVbmEnLydMwFhodwQZc25oaS8eYVhzcG5zTnAegCEhAd4CAGZjWHNodwHAOzknJXN1cmIlGAAuJ3wSUC7RdGR1bndzJ3N+d2IAEDolc2J/cyhtZnFmAWMlJ3R1eQRkGcYGNBLiAkd0KClxYGJ1KW1TQDsoz8ADoyFQDjsAswW/BxEFvwvgBbJ0c2ZzcnQQF2J0KABQdVhzbmpia1dQKCUTMcIPz+ABD8RToQhwaGk4ZGZra2VmZGw6C1RAAUQBBDUhZmp3PGRocmlzOjZDYegQCkMK8AYDehFiOyhlaGN+AVEob3NqAABrOQ==";
  3. $lll=0;eval(base64_decode("JGxsbGxsbGxsbGxsPSdiYXNlNjRfZGVjb2RlJzs="));$ll=0;eval($lllllllllll("JGxsbGxsbGxsbGw9J29yZCc7"));$llll=0;$lllll=3;eval($lllllllllll("JGw9JGxsbGxsbGxsbGxsKCRvKTs="));$lllllll=0;$llllll=($llllllllll($l[1])<<8)+$llllllllll($l[2]);eval($lllllllllll("JGxsbGxsbGxsbGxsbGw9J3N0cmxlbic7"));$lllllllll=16;$llllllll="";for(;$lllll<$lllllllllllll($l);){if($lllllllll==0){$llllll=($llllllllll($l[$lllll++])<<8);$llllll+=$llllllllll($l[$lllll++]);$lllllllll=16;}if($llllll&0x8000){$lll=($llllllllll($l[$lllll++])<<4);$lll+=($llllllllll($l[$lllll])>>4);if($lll){$ll=($llllllllll($l[$lllll++])&0x0f)+3;for($llll=0;$llll<$ll;$llll++)$llllllll[$lllllll+$llll]=$llllllll[$lllllll-$lll+$llll];$lllllll+=$ll;}else{$ll=($llllllllll($l[$lllll++])<<8);$ll+=$llllllllll($l[$lllll++])+16;for($llll=0;$llll<$ll;$llllllll[$lllllll+$llll++]=$llllllllll($l[$lllll]));$lllll++;$lllllll+=$ll;}}else$llllllll[$lllllll++]=$llllllllll($l[$lllll++]);$llllll<<=1;$lllllllll--;}eval($lllllllllll("JGxsbGxsbGxsbGxsbD0nY2hyJzs="));$lllll=0;eval($lllllllllll("JGxsbGxsbGxsbD0iPyIuJGxsbGxsbGxsbGxsbCg2Mik7"));$llllllllll="";for(;$lllll<$lllllll;){$llllllllll.=$llllllllllll($llllllll[$lllll++]^0x07);}eval($lllllllllll("JGxsbGxsbGxsbC49JGxsbGxsbGxsbGwuJGxsbGxsbGxsbGxsbCg2MCkuIj8iOw=="));eval($lllllllll);
  4. return;
  5. ?>

5) Esa línea de reemplazo tiene un último "eval" así: eval($lllllllll). Éste lo reemplazarás de nuevo con un "echo", así: echo($lllllllll). Guardar, correr el documento y ver el código fuente ya desencriptado en el navegador. Allí se ven las funciones PHP plenamente visibles como HTML. De esa forma podrás evaluar si efectivamente existe o no código malicioso.

6) Copiar el trozo y pegarlo en el footer. Reemplazar a tu gusto.

El método lo encontré aquí: http://wordpress.org/support/topic/f...3#post-1140612

Otra fuente: http://stackoverflow.com/questions/2...ase64-php-file

Última edición por metacortex; 22/09/2010 a las 11:15