Hola, estoy haciendo un codificador de múltiples algoritmos parecido al sneak (vease sneak (http://www.elhacker.net/sneak.php)) pero creando cada función yo mismo.
Quería saber si alguien desea aportar al proyecto y poder aprender cada ves mas de forma unida.
La fuente la dejo => acá (http://www.jccharry.com/greencode/coder.zip)
y el demo => acá (http://www.jccharry.com/greencode/coder/)
La idea es hacer un solo codificador y decodificador para cualquier tipo de tarea que necesitemos.
La conversión puede ser en cualquier formato que pueda ser escrito o descargado.
Si alguien quiere dar algún aporte aparecerá en el readme que integraré cuando lo suba a sourceforge.
V1.1.3 Conversiones soportadas: 21 (11/10/2008)
- Ascii a Base64
- Ascii a decimal
- Ascii a Hexadecimal
- Ascii a HTML (con semicolones)
- Ascii a HTML (sin semicolones)
- Ascii a HTMLSpecialChars
- Ascii a MD5
- Ascii a Octal
- Ascii a PHP(Base64+GZ+Hexa)
- Ascii a PNG PHP
- Ascii a Sha1
- Ascii a SQLi DWord(0x00)
- Ascii a SQLi Char(dec)
- Ascii a Unescape javascript
- Ascii a Urlencode
- Base64 a Ascii
- Hexadecimal a Decimal
- Octal a Decimal
- PHP(Base64+GZ+Hexa) a Ascii
- Protección de código PHP
- Urlencode a Ascii
- Hexadecimal a Ascii
- Ascii a Binario IO
- Binario IO a Ascii
- Decimal a Ascii
- htmlspecialchars_decode
- Decimal a octal
- Generar htpasswd md5
- Generar htpasswd sha
- Generar htpasswd crypt
EjemploASCII a SQLi DWord(0x00) =>
../../../../../etc/passwd =>
funcion(0x2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764)
Uso
http://www.site.com/?page_id=-1+union+select+1,load_file(0x2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764),3
Ideas, aportes, opiniones, criticas contructivas y no constructivas?¿?
Q tal base64+gz+hex to ASCII???
Si lo habia pensado pero como deberías insertarlo en la pagina? talves el script pueda tomar desde el primer carácter '\x' hasta el último mas 2 carácteres para abarcar el último decimal y eliminar todo lo que no sea letra, número o '\' y a eso hacerle un explode por cada '\x' y con un for strlen($buffer) decodificar cada carácter y devolverlo en htmlspecialchars.
Lo malo es que como controlo si alguien no ingresa ese tipo de conversión pero tampoco ingresa la función completa sino solamente los carácteres de escape en hexadecimal... bueno ahi lo pienso.
Gracias.
Listo ;D
<?php
// .. ..
function decodifica_base64_gz($buffer){
$buffer1 = str_replace('"',' ',$buffer);
$buffer1 = str_replace('.',' ',$buffer);
$buffer1 = explode('\x',$buffer);
$buffer1[0] = '';
for($cuenta=0;$cuenta<count($buffer1);$cuenta++){
if(strlen($buffer1[$cuenta]) == '2'){
$buffer2 .= ' '.$buffer1[$cuenta];
$procesando = true;
}else{
if($procesando){
$buffer2 .= ' '.$buffer1[$cuenta][0].$buffer1[$cuenta][1];
}
}
}
$buffer2 = explode(' ',$buffer2);
for($cuenta=0;$cuenta<count($buffer2);$cuenta++){
if(strlen($buffer2[$cuenta]) == '2'){
$buffer3 .= $buffer2[$cuenta];
}
}
return gzuncompress(base64_decode(hexa_a_str($buffer3)));
}
// .. ..
?>
Si alguien intenta enviar datos inválidos entonces la función de base64 o gzuncompress devolverá un estado false por lo tanto devolverá el mensaje "No hay datos que devolver".
También se eliminó todo el buffer de salida con carácteres de escape html con htmlspecialchars y se procesó una sola ves en la función debugger()
Sistema actualizado.
Muy muy bueno yan :), agrega tus links al post de trucos ;)
Hola IngAmc, gracias, ya lo puse. ;D
También pienso crear dentro del mismo conversor un conversor de XSS :P por ejemplo en buffer das lo siguiente:
Citar<a href="http://$xss">test</a>
El sistema intentará escapar y te dará el resultado:
Citar$xss = ">[XSS]
:P Básico pero útil para gente que comienza en esto.
Bueno ya le agregué mas decodificaciones y antepuse un número en cada función para que así tu amigo pueda decirte "usa la conversión 15 para hacer esto..", además de agregarle unas funciones que generan el contenido de un htpasswd para la asignación de permisos en apache en formato md5, sha y crypt. En total van 30 funciones entre codificaciones y decodificaciones utilizables.
El primer post ya lo actualicé.
Recuerden que si alguien quiere usarlo en su web es libre de modificarlo a su antojo y gusto aunque la idea no es hacer copy paste sino que el que sepa como se construye cada función o por lo menos aprende de ellos entonces que saque el autor si lo quiere pero alguien que no tiene idea como funciona y quiere implementarlo en su web le pediría que lo deje integrado por ahi donde mas le acomode.