Vota por nosotros en el ranking web que participamos
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Octubre 14, 2008, 05:59:28
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programacion para webmasters
|
Php
(Moderador:
SaTeLuCo
) | Tema:
<<wbb2_cookiehash>>
0 Usuarios y 1 Visitante están viendo este tema.
« anterior
próximo »
Páginas:
[
1
]
Autor
Tema: <<wbb2_cookiehash>> (Leído 109 veces)
ElectroSPAIDER
Miembro
Desconectado
Mensajes: 38
<<wbb2_cookiehash>>
«
en:
Agosto 11, 2007, 05:04:59 »
Hola a todos, espero que me podáis ayudar con una duda que tengo acerca del hash de usuario en un foro PHP (usa el software de WoltLab, Burning Board 2.3.4). El caso es que ando metido en la investigación del protocolo HTTP para el desarrollo de un programa experimental que permita el posteo automático de posts o añadir réplicas temporizadas, entre otras cosas. He estado analizando el caso con netcat (usaré en todo momento datos ficticios por seguridad):
nc -vv
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
www.victima.com
80 < in.txt
Donde el fichero in.txt contiene los datos necesarios para establecer comunicación con el servidor del host remoto, que yo saqué usando un sniffer. Echemos un vistazo a las instrucciones necesarias para añadir un post nuevo:
POST /newthread.php HTTP/1.1
Host:
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
www.victima.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ca; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ca,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
Cookie: wbb2_userpassword=
e10adc394923gbabbe56e057f20f883e
; wbb2_userid=
X
; wbb2_cookiehash=
f65a74532mclo46676729a9b201d3931
; wbb2_lastvisit=
1186477673
Content-Type: application/x-www-form-urlencoded
Content-Length: 233
topic=
TITULO
%BA1&iconid=0&mode=0&message=
MENSAJE
&parseurl=1&showsignature=1&send=send&boardid=1&idhash=
90a2fb6c2ce02jns37d3eed5f3e
&attachmentids=&change_editor=&usewysiwyg=0&sid=HTTP/1.1 302
Date: Thu, 09 Aug 2007 19:51:58 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
Location: index.php
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
0
Los datos señalados en naranja me llaman poderosamente la atención. Usando netcat he podido postear sin usar en ningún momento el navegador, partiendo de la base de que ya tenía un usuario registrado previamente en el foro. El problema es que como los hash se renuevan cada cierto tiempo, surge el inconveniente de irse logueando cada vez, lo cual no es muy práctico. Mi duda es si alguien puede interpretar el modo, el algoritmo, en como se crean los hash de usuario para poder trasladarlo a otro lenguaje de programación que no sea PHP. Me las he apañado para conseguir parte del software de Burning Board, este es el archivo
login.php
, que a mi suponer es la raíz de la generación de los hash:
<?php
$filename = 'login.php';
require('./global.php');
$lang->load('USERCP');
if ($wbbuserdata['userid']) access_error();
if (isset($_POST['send'])) {
$result = getwbbuserdata($_POST['l_username'], "username");
if ($allowloginencryption == 1 && $_POST['crypted'] == "true" && $result['sha1_password']) {
$authentificationcode = sha1(sha1($session['authentificationcode']).$result['sha1_password']);
if (!$result['userid'] || $authentificationcode != $_POST['authentificationcode']) {
unset($result);
unset($authentificationcode);
}
else $wbb_userpassword = $result['password'];
}
else {
$wbb_userpassword = md5($_POST['l_password']);
if (!$result['userid'] || $result['password'] != $wbb_userpassword) unset($result);
else {
if (!$result['sha1_password']) $db->unbuffered_query("UPDATE bb".$n."_users SET sha1_password='".sha1($_POST['l_password'])."' WHERE userid='$result[userid]'");
}
}
if (isSet($result['userid']) && $result['userid']) {
$wbb_username = htmlconverter($result['username']);
if ($result['usecookies'] == 1) {
bbcookie("userid", "$result[userid]", time() + 3600 * 24 * 365);
bbcookie("userpassword", "$wbb_userpassword", time() + 3600 * 24 * 365);
}
$db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid = '$result[userid]'", 1);
$db->unbuffered_query("UPDATE bb".$n."_sessions SET userid = '$result[userid]', authentificationcode='', styleid='".$result['styleid']."' WHERE sessionhash = '$sid'", 1);
unset($session['authentificationcode']);
/** convert url -> remove session hash **/
function convert_url($url, $hash) {
return preg_replace("/[0-9a-z]{32}/", (($hash != '') ? ($hash) : ("")), $url);
}
if (isset($_POST['url']) && $_POST['url'] && strstr($_POST['url'], "?")) $url = convert_url($_POST['url'], $session['hash']);
else $url = "index.php" . $SID_ARG_1ST;
redirect($lang->get("LANG_USERCP_LOGIN_REDIRECT", array('$wbb_username' => $wbb_username)), $url);
exit;
}
else {
$db->unbuffered_query("UPDATE bb".$n."_sessions SET authentificationcode='' WHERE sessionhash = '$sid'", 1);
unset($session['authentificationcode']);
error($lang->items['LANG_USERCP_LOGIN_ERROR']);
}
}
else {
eval("\$tpl->output(\"".$tpl->get("login")."\");");
}
?>
Saludos a todos y gracias por adelantado!
«
Última modificación: Agosto 12, 2007, 01:54:43 por ElectroSPAIDER
»
En línea
Páginas:
[
1
]
Comunidad Underground Hispana
|
Programacion
|
Programacion para webmasters
|
Php
(Moderador:
SaTeLuCo
) | Tema:
<<wbb2_cookiehash>>
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Foros De Consulta General
-----------------------------
=> Novedades
=> Dudas, Comentarios Y Sugerencias
=> Top 100
=> Off-Topic
=> Revista E-Zine
===> Noticias
-----------------------------
Phreaking, Hacking y Seguridad
-----------------------------
=> HacK GeneraL
===> Ingenieria Inversa
===> Encriptacion, Cryptografia
===> TV HACK
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Seguridad
=> Phreaking
===> Moviles
=> Bug y Exploits
===> Directorio de Exploits
=> Wargames, Retos Hack
-----------------------------
Hack Novato
-----------------------------
=> Hack para newbies
=> Todo Messenger
=> Troyanos y virus
-----------------------------
Sistemas Operativos
-----------------------------
=> Windows y otros sistemas operativos no libres
===> Problemas Tecnicos Windows
=> Sistemas operativos libres.
===> GNU/Linux
===> Manuales y Tutoriales
===> Descargas
-----------------------------
Programacion
-----------------------------
=> Programación
===> Programación Basica
===> Otros Lenguajes
===> Visual Basic y Net
===> ASM
===> Programacion Shell
===> Perl
===> Carbide C/C#/C++
===> Batch
===> SQL
=> Programacion para webmasters
===> Consultas Generales
===> Php
===> Html, XHTML, CSS
===> Java - Java Script
===> CMS O Scripts Pre-Fabricados
===> Posicionamiento en buscadores
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Biblioteca Tecnica
=> Electronica Y Robotica
-----------------------------
Programas
-----------------------------
=> Software
===> Configuraciones de software
===> Pedidos de software
=> Cracks & Serialz
=> P2p, Bittorrent, Elinks
-----------------------------
Multimedia Y Divx
-----------------------------
=> Juegos PC Y Consolas
===> Dudas ayudas y comentarios de juegos
===> Pedidos de juegos
===> Juegos de Consola
=> Mp3
=> Multimedia
=> Peliculas Divx
-----------------------------
Entretenimiento Y sitios de interes
-----------------------------
=> Juegos, Humor y Adultos. (Diversión)
===> Adultos
=> Paginas Webs Recomendadas
=> Videos
Powered by SMF 1.1.6
|
SMF © 2006-2007, Simple Machines LLC
Loading...