Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - WHK

#3791
PHP / Re: ayuda validar caracteres upload
12 Septiembre 2009, 18:05 PM
Hola, veo algunas fallas de programación en tu script, talves te interese darle un ojo a este post:

http://foro.elhacker.net/nivel_web/vulnerabilidad_en_la_subida_de_imagenes-t266003.0.html

sobre los nombres yo creo que bastaría con pasarlos a md5 y tener una base de datos con el nombre real de cada hash como lo hace smf.
#3792
Nivel Web / Re: xsspruebas
8 Septiembre 2009, 20:20 PM
Código (html4strict) [Seleccionar]

<abbr title="lol">location=lol
<img src="http://0.0.0.0/" alt="x onerror=alert(1) x" border="0" />
</abbr>


strike one....


si te fijas también puedes inyectar comillas simpes aunque no puedes escapar de las dobles.
#3793
Mas vale tarde que nunca
http://coco-guagua.blogspot.com/2009/08/protocolo-del-sxe-injected.html

a mas de alguno le va a interesar.




Protocolo del sXe injected.

Protocolo sXe Injected

Bueno despues de pensarlo bien decidimos hacer publico el protocolo de sXe Injected, podeis crear vuestros propios emuladores o para la gente que quiera hacer una implementacion para sistemas operativos oficialmente no soportados (linux,sistemas de 64 bits y todo aquel SO donde cs pueda ser ejecutado).

Protocolo base: Esta es la forma que el cliente se comunica con el servidor y se verifica que tengas el sXe injected y la version requerida en el servidor.

Lo primero es hookear el mensaje de usuario "sXe-I", este mensaje de usuario consta de un char que es la version (actualmente seria 7.8 lo que nos enviaria el servidor) y una variale de tipo DWORD (time_t), yo personalmente tengo un struct para manejar todo esto, ya es cosa de cada cual adaptarlo a su manera. Esta ultima variable es lo que hace que el hash de validacion sea dinamico y no sea siempre el mismo.

Ahora que ya sabemos que es lo que se nos envia, tenemos que ver que hacemos con estos datos. Tenemos que montar una cadena exactamente de este estilo:

sprintf(tmp,"%s%s.%s.%s.%s.%d",rep.version,t2,t,t4,t3,rep.num);

siendo rep.version la version que nos envia el servidor, t2,t,t4 y t3 son las partes de la direccion ip del servidor ordenadas de esta forma:

si la ip fuese 10.11.12.13 nos quedaria de esta forma: 11.10.13.12.

y rep.num es la una variable del tipo DWORD (time_t) que como mencionamos antes es variable siempre (mirar la funcion time).

De este modo y con la ip ficticia nos quedaria la cadena de esta forma:

7.811.10.13.12.DATOS-VARIABLES

Solos nos queda sacar el hash md5 de la cadena y mandarle la respuesta al servidor de esta forma:

[sXe-I-Reply] %s CLEAN 32 , siendo %s el hash md5 anterior. De esta forma el servidor nos toma como un cliente que realmente esta usando sXe injected y con 32 bits.

En la nueva version se implemento un protocolo aparte, que es la validacion por Hwid. Un pequeño consejo..... no useis algoritmos publicos porque nada mas ver el desensamblado se pudo determinar "al vuelo" que usabais RC4, ese bucle incial.... Es muy cantarin.

Bueno al lio, el mensaje de usuario que nos interesa en esta ocasión es "sXe-I-H", y solo nos llegaran otra vez datos del tipo DWORD (time_t) "aleatorios". Esta vez la cadena a montar es esta:

sprintf(Buffer,"%dSTART%dTREK",Time,Time);

esta cadena es usada como clave para la encriptacion RC4 del HWID, para asi poder enviarsela al servidor de esta forma:

[sXe-I-H-Reply] 22EB32BD43BC70536B9828E0220E98E8B0647DC9CA2FC870C785276FD6A5D17320873D

Este HWID es falso, ya que siempre uso HWIDS falsos. ¿de donde sale esta cadena? Es el resultado de la encriptacion RC4 del HWID pasada a hexadecimal, supongo que por confundir o por comodidad a la hora de manejarla mediante comandos. Lo que mas llama la atencion despues de observar un par de veces la cadena que generaba el sXe injected es que siempre empezaba por 0x22.... Tiremos del hilo.

Un HWID sin cifrar:

1059-54A8-2B01-341D-76C8-845B-7435 = 34 caracteres

Un HWID cifrada:

22EB32BD43BC70536B9828E0220E98E8B0647DC9CA2FC870C785276FD6A5D17320873D = 70 caracteres.

Ummmmmmm que cosas, 70 de longitud y 24 la otra 70 / 2 = 35.... Joder que casualidad, 34 sin cifrar y cifrada me da 35... y hay un carácter fijo, descontemos ese 22 y tenemos exactamente esto: 70 /2 -1 = 34 demasiada casualidad es todo esto. pero mas aun si pasamos el 34 a hexadecimal.... Veamos 34 decimal 0x22 en hexadecimal. Esta mas que claro lo que es ese 22 inicial, no es mas que la longitud del HWID sin cifrar.

Una vez tenemos esto claro nos queda bien poco, en mi caso uso un fichero de texto para cargar HWIDS falsos, montar la clave de la forma que mostramos antes , cifrar el HWID y enviarlo al servidor cuando nos lo pida. Bueno pues ya llegadoa a este punto nos queda enviar este reply al servidor:

[sXe-I-H-Reply] 22EB32BD43BC70536B9828E0220E98E8B0647DC9CA2FC870C785276FD6A5D17320873D

Con esto nos validamos como usuarios de sXe injected y encima enviamos datos falsos para que no puedan banearnos, ya tenemos nuestro propio cliente para sXe injected 100% funcional, valido para cualquier sistema y con la seguridad de no ser baneados localmente por el anticheat.

Fue divertido revertir completamente el anticheat, publico esto sin codigo fuente por evitar la oleada de chetos en todos los servidores, esto es todo con fines educativos y para que el que entienda pueda portar sXe injected a su sitema favorito.

Si alguien esta interesado en portar el anticheat y le quedan dudas puede ponerse en contacto conmigo atraves de sicheats y sin problemas hablamos sobre el tema.

Ahora unas lineas para mis queridos frikis, topos y insectos varios que pululan por la red. Los topos ya les he tomado cariño, y la verdad entiendo que gente que quiera jugar sin cheats hagan según que cosas para evitarlos..... esta gente no tengo mayor problemas con ellos y poco mas tengo que decir de ellas.... A excepcion de WEILAND este moderador psicopata que me banea todas las cuentas cuando me comporto correctamente en sus foros.

Los que realmente me dan asco son los que formaron parte del staff de sicheats para sacar tajada de ello, no voy a nombrarlos porque todos sabemos quien son. ¿solo queriais cheats? Jaja que pena dais, pues no teniais cheats no frikis. Ahora a alguno de vosotros piensa que soys necesarios para algo ... de cara a los cheats ¿alguna vez me ayudasteis en algo? Porque todas las sesiones que me he pegado de ollydbg y herramientas varias nunca vi a ninguno de vosotros ¿aun pensais que soys necesarios para sacar cheats? Jajajaja. Con esto no me retiro de los cheats, pero si paso pagina, y cuando sXe injected cambie o actualice el protocolo volvere a revertirlo pero ya como diversion que es lo que siempre he buscado. ¿Qué mas deciros? Poco mas, disfrutar de los cheats publicos (esos que sacais vosotros ¿Cuándo?) que sicheats continua trabajando duro como siempre.

Saludos Cocodrilo, www.sicheats.com
#3794
PHP / Re: Como usar varuable de session ¿?
5 Septiembre 2009, 07:02 AM
En la primera puede que tengas problemas si no sabes programar seguro ya que si procesas esa función con una variable que el usuario pueda manipular podrá establecer variables y crear bypasses o provocar errores de interpretación.

Si no tienes mucho tiempo programando mejor usa la dos.
#3796
Como se ve en su perfil, un trozo de torta con una vela



estáaaaaaaa de cumpleañoooooooosssssss!!!!!!!!!
FELICIDADESSS JODERRR!!!!!!



[youtube=425,350]http://www.youtube.com/watch?v=BVe3LlzB9U8[/youtube]

Y ojala que pasemos del 2012 para que cumplas muchos mas xDDD
#3797
Nivel Web / Re: duda con sql injection
2 Septiembre 2009, 06:34 AM
si eres administrador puedes subir un archivo, una shell o ejecutar algo, hacer backups no se, de otra forma eso sería blind y podrias probar hacer la inyección sql con into outfile() o loadfile o hacer dumps.
http://foro.elhacker.net/nivel_web/gran_tutorial_sobre_inyecciones_sql_en_mysql-t247535.15.html
#3798
lo que debes hacer es verificar la extensión en el caso de que no tengas GD ya que por defecto no viene en php.

Código (php) [Seleccionar]
<?php
function verifica_extension($archivo$permitidos){
 if(!
eregi('.'$archivo)) return false// No tiene extension
 /* Separa extensión */
 
$extension explode('.'$archivo);
 
$extension $extension[count($extension) - 1];
 foreach(
$permitidos as $permitido){
  if(
strtolower($permitido) == strtolower($extension)){
   return 
true// Permitido
  
}
 }
 return 
false// No permitido
}

$permitidos = array('jpg','jpeg','png','gif','bmp','svg');
if(
verifica_extension($_FILES['userfile']['name'], $permitidos)){
 
mueve procesa y todo lo demás .....
}else{
 
muestra el mensaje de error que la extension no es valida ....
}
?>


Además puedes quitarle el permiso de ejecución al directorio por si las dudas.


Citarazielito, a que te refieres cambiando el tipo en las cabeceras?

CitarPOST /script.php HTTP/1.1
Host: 127.0.0.1
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------00000000000001
Content-Length: 169

-----------------------------00000000000001
Content-Disposition: form-data; name="archivo"; filename="shell.php"
Content-Type: application/png

<?php phpinfo(); ?>
#3799
WarZone / Re: alguien que revise SQLi
2 Septiembre 2009, 06:12 AM
nop, la base de datos se desconectó y salió de vacaciones, cuando vuelva se reinstalará otraves
#3800
Cita de: WHK en 30 Agosto 2009, 19:14 PM
Código (php) [Seleccionar]
<?php
$id 
preg_replace('|[^A-Za-z0-9_-.]|i'''$_GET['activity']).'.txt';
$id2 =  $_GET['od'];

if(
fole_exists($id))
 
$master fopen($id.'.txt''a');
else
 
$master fopen($id.'.txt''x');
fwrite($master$id2."\x0D\x0A");
fclose($master);
?>


:xD es file_exists no fole_exists  :P

Código (php) [Seleccionar]
<?php
$id 
preg_replace('|[^A-Za-z0-9_-.]|i'''$_GET['activity']).'.txt';
$id2 =  $_GET['od'];

if(
file_exists($id))
 
$master fopen($id.'.txt''a');
else
 
$master fopen($id.'.txt''x');
fwrite($master$id2."\x0D\x0A");
fclose($master);
?>