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

#3221
esque explicar a hacer un sistema de usuario es muy laaaaargo, yo tengo un tutorial y me gustaría pegarlo acá pero es demasiado largo asi que veré si puedo hacer un poco de spam y pegarte el link xD

http://tinyurl.com/2aagdpk
#3222
porque es inseguro y no todos los servidores lo soportan, hay muchisimos hosting gratuitos que no soportan sesiones debido a las restricciones de directorios temporales.

Inseguro porque la cookie va al directorio temporal donde todos los hosting compartidos tienen acceso.
Por ejemplo digamos que tu web está en el mismo servidor que mi web solo que en cuentas separadas (hosting compartido) y al crear una sesión escribes un archivo en el directorio temporal con el contenido serializado de la cookie, yo como también tengo acceso puedo entrar y modificar esa cookie y hacerme admin o cambiarte algún dato, etc.
#3223
Código (php) [Seleccionar]
function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\\",$mensaje);
return $mensaje;
}


pwned, según el primer filtro las comillas " no se filtran porque está encerrada en comillas simples y la secuencia de escape se invalida  :P

Código (php) [Seleccionar]
<?php
function quitar($mensaje){
$mensaje str_replace("<","&lt;",$mensaje);
$mensaje str_replace(">","&gt;",$mensaje);
$mensaje str_replace("\'","'",$mensaje);
$mensaje str_replace('\"',"&quot;",$mensaje);
$mensaje str_replace("\\\\","\\",$mensaje);
return 
$mensaje;
}

echo 
quitar('1: " 2: \\" 3: \\\\" ');
?>


Resultado:
Citar1: " 2: &quot; 3: \&quot;

por lo tanto str_replace está esperando literalmente un \" y no un " debido a que la secuencia de escape no funciona porque se encerró en comillas simples, sería válido si se hubiera encerrado en comillas dobles.
es vulnerable a inyección sql.

Además esta función ya existe de forma nativa en php, reemplazas:
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";

por
$sql .= "'".mysql_real_escape_string($_POST["nick"])."'";

también recuerda que desde php6 $HTTP_POST_VARS ya no existe, para eso se usa $_POST $_GET $_COOKIES $_SERVER etc etc.

http://php.net/manual/en/reserved.variables.post.php

Citar$_POST -- $HTTP_POST_VARS [deprecated] — HTTP POST variables

deprecated, obsoleto, que ya no se usa ni se usará y que será eliminado y hechado en la hoguera.
#3224
Observa la petición completa que pude capturar desde live headers:

http://podcast.sie-group.net/rss.php

GET /rss.php HTTP/1.1
Host: podcast.sie-group.net
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.5pre) Gecko/20100417 Ubuntu/9.10 (karmic) Namoroka/3.6.5pre
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

HTTP/1.1 200 OK
Date: Fri, 23 Apr 2010 06:21:49 GMT
Server: Apache
Keep-Alive: timeout=15, max=97
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml


En ningún lado el servidor responde el tipo de codificación a utilizar.
Cuando utilizamos acentos y eñes debemos usar la codificación ISO-8859-1:

Código (php) [Seleccionar]
<?php header('Content-Type: text/xml; charset=ISO-8859-1'); ?>

Ahora ya podemos insertar acentos y el validador debería aceptarnos por standard, si no lo acepta es error del validador.

En el header del xml también debe ir declarado al igual que en el html:
Código (xml) [Seleccionar]
<?xml version="1.0" encoding=ISO-8859-1"?>

ya que tu rss tiene header de utf-8:
Código (xml) [Seleccionar]
<?xml version="1.0" encoding="UTF-8"?>

Recuerda que si le escribes un acento desde tu pc con codificación iso88591 sobre una web con utf8 aparecerán simbolos en ves de acentos y eñes, por ejemplo también puedes escribir © sin la necesidad de escribir  &copy;

vee el código fuente del foro y fijate que en el header del html dice:
Código (html4strict) [Seleccionar]
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

y en el header:
https://foro.elhacker.net/

GET / HTTP/1.1
Host: foro.elhacker.net
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.5pre) Gecko/20100417 Ubuntu/9.10 (karmic) Namoroka/3.6.5pre
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
If-Modified-Since: Fri, 23 Apr 2010 06:18:42 GMT


HTTP/1.1 200 OK
Date: Fri, 23 Apr 2010 06:30:57 GMT
Server: Apache
X-FRAME-OPTIONS: DENY
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: private
Pragma: no-cache
Last-Modified: Fri, 23 Apr 2010 06:30:57 GMT
Content-Encoding: gzip
Vary: Accept-Encoding
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1


te fijas?
Content-Type: text/html; charset=ISO-8859-1
#3225
nop, la cookie  de smf se forma con el id de usuario, hash de la contraseña cifrada dos veces en md5 y el hash asault, ese hash asault cambia cada ves quete logueas asi que aunque alguien tuviera el hash de sesion no podría ingresar a menos que tenga el mismo hash asalt.

esto se hace para prevenir el robo de cookies nada mas pero en este caso si el exploit puede obtener columnas de la base de datos entonces que lo modifiquen para que puedan obtener el hash asault también.

Esto es lo mismo para smf, vbulletin, wordpress, joomla, etc.
la sesión con la cookie phpsessid se utiliza para otras cosas a modo de control para no ahogar la base de datos pero no la sesión de la cuenta.

http://pastebin.com/L66SvpLT
#3226
averigua como funciona ese exploit, si es atraves de alguna inyección sql entonces podrás sacar todas las columnas de la tabla de usuarios, en ese caso podrás ingresar sea cual sea el sistema web, no tan solo smf o vbulletín.
#3227
PHP / Re: cajas de texto php
22 Abril 2010, 10:38 AM
exacto, como dice alex, el campo de tiempo debe ser de tipo integer y guardar el valor de time(), luego se muestra con date() según el formato que se desee, asi puedes modificar el script sin la necesidad de modificar la base de datos.
#3228
el hash no se descifra, solo lo pones en tu cookie de sesión de vbulletín y ya entraste.
averigua como se estructura una cookie de vbulletín.
#3229
quiebra el input completo

Citar"><scripr>loquesea();<script><br x=
#3230
habia un script para blind sql que lo hizo codebreak pero ya no recuerdo donde estaba