Método para revelar codigo oculto en PHP

Trabajando en mp3.gaguma.net me encontre el siguiente extracto de codigo en un repositorio publico Github.

El codigo esta codificado 15 veces en una combinación de múltiples llamadas a funciones como str_rot13, gzinflate, gzuncompress, strrev y base64_decode. Estudiando computacion he aprendido que una de las reglas mas importantes para un programador es que nunca debes incluir código oculto en tu aplicación ya que es un problemas de seguridad y privacidad.

Una de las formas de revelar el código oculto es de llamar cada función, una por una, hasta que te devuelva el código abierto. Dentro del repositorio hay un comentario cerrado que te revela el codigo pero yo no lo vi cuando estaba analizando el código, pero como me gusta un buen reto me decidí a revelar el código sin la ayuda de herramientas online que se especializan en este tipo de tareas.

Para esta tarea decidi usar una herramienta para ejecutar codigo PHP online. Las líneas 22-64 son el código a revelar, copie el código y elimine la llamada a eval para que me mostrara lo que se ejecutaba ocultamente.

El resultado me mostraba mas codigo oculto

eval(gzinflate(base64_decode(rawurldecode('XZXHroTgDUYfJ4lY0IamKAt67w ...'))));

Si repetía el mismo proceso de copiar el código de salida y remover la llamada a eval, me daba mas codigo oculto

eval(base64_decode(gzuncompress(base64_decode('eJwVlt1iq6wWRV8JNfbbudy ...'))));

Viedo que el mismo patrón se repetía, decidi hacer un pequeño script para automatizar el proceso.

<?php
$linea = str_rot13(gzinflate(str_rot13(base64_decode('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
+F/j9+78=')))); // linea original sin la llamada a 'eval'

$profundidad = 100; // numero de repeticiones, 100 es un numero aleatorio para probar

for($nivel = 0; $nivel<=$profundidad; $nivel++) {
    $linea_sin_eval = substr(substr($linea, 5), 0 , -2) . ";"; // remover "eval(" y ultima ")"
    eval('$linea=' . $linea_sin_eval);  // ejecutar la nueva linea sin "eval" y guardar el resultado
    echo($linea . "\n");
}
?>

Finalmente observe que a $profundidad = 14 el script me mostraba el código oculto.

<?php
    $ytresponse = @file_get_contents("https://www.youtube.com/oembed?url=http%3A//youtube.com/watch%3Fv%3D$id&format=json");
    $ytinfo = array();
    $ytinfo = json_decode($ytresponse,true);
    $type = $ytinfo['type'];
?>

Este es un método que desarrolle en unos minutos, pero puede que existan otros métodos más rápidos y eficientes que el mio. Al final tengo que decir que usando código que no puedas leer en tu servidor es una muy mala practica y es preferible correr codigo que tu entiendas y confies.

Si vas a compartir código con el resto del mundo, por favor nunca intentes de ocultarlo!

JG.

Foro de Lenguaje Maquina

Participa en nuestro for, ahi puedes preguntar las dudas de programcion que tengas

Mi estacion de battalla linux

Por el 2015, yo empecé a usar Linux a tiempo completo como mi sistema operativo principal, y desde entonces no he usado una computadora con Windows o MacOS

Mi Computadora

Yo uso principalmente una Dell XPS 13 (9360) para todo.

Especificaciones (XPS 13)

  • Intel Core i7-7500U
  • Full-HD Screen
  • 8GB RAM
  • 128 GB SSD

Mi distribución Linux de preferencial Despues de haber usado Fedora, Arch Linux, OpenSuse Tumbleweed y Void Linux, me enamoré y decidí a usar Void Linux

Void Linux es relativamente una nueva distribución, no es un fork de un proyecto antiguo y no usa systemd como administrador de servicios, es muy ligero y extremadamente rápido en mi laptop.

Cuando empecé a usar linux, preferi usar GNOME, pero finalmente migre a Sway+wlroots porque prefiero usar un DE con el teclado

La mayoría de las aplicaciones que uso son basados en la terminal, pero cuando programo uso VS Code o neovim

Como Definir Meta Tags en HTML

Definir Meta Tags en un documento HTML.

En este temática va tocar el tema de como definir un meta tag dentro de un documento HTML.

En HTML5

<head>
  <title>Apdesc</title>
  <meta charset="UTF-8">'
  <meta name="description" content="Apdesc Sistema para Puntos de venta Gratis">
  <meta name="keywords" content="apdesc,puntos de venta,free">
  <meta name="author" content="@abimaelgtp">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

Este es un ejemplo de como estructurar un meta tag dentro de un documento HTML. Estas definiciones no serán vistos dentro de nuestra página web.

Los Meta Tags se utilizan normalmente para especificar descripción de páginas, palabras clave, autor del documento, modificada por última vez, y otros metadatos, los metadatos pueden ser utilizados por los navegadores (cómo para mostrar contenido o recarga de la página), los motores de búsqueda (palabras clave), u otros servicios web.

Cabe mencionar que este es el apescto que toma un meta

En que consiste monetizar un sitio Web

Monetizar un sitio web consiste en generar ingresos mediante ella. Mucho editores Web/Blogs hacen el uso de estas herramientas.

Si estás comenzando con un sitio web o blog y deseas generar ingresos con tu página Web, es necesario conocer algunas empresas que pagan muy bien por el tipo de contenido que contenga tu Blog o Web.

¿Dónde comienzo para Monetizar mi sitio Web?

La pregunta que todos nos hacemos para este tipo de temas e. ¿Que tengo hacer para monetizar mi sitio web?.

En la actualidad existen muchas empresas que ofrecen sistemas de publicidad para una página web, mucho pagan por clic en un anuncio que se conoce como (CPC o PTC) y algunos por ventas,referencias, coste por mil impresiones etc.

¿Que empresas que pagan muy bien para monetizar una Web?

Aquí te recomendamos algunas empresas que te ayudarán a generar buenos ingresos para tu página Web.

Google Adsense: (Es una empresa que te paga por PTC,CPC,CPM)

Chitika: (Para sitios en Inglés, es una buena alternativa de Gooogle Adsense)

Kontextua (Los anuncios de esta empresa son Contextuales, busca palabras claves el contenido de tu página y lo convierte en un anuncio contextual.)

En este tema no te explicamos como trabaja cada empresa, más adelante hablaremos de ellos, pero ante todo,Google Adsense es una de la empresas que paga muy bien.