Nuevas NORMAS para el foro
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Julio 27, 2008, 02:01:04
Boton Buscar
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programacion para webmasters
|
Php
(Moderadores:
RuB
,
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 88 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
Para ver los enlaces debes ser usuario
Crear Usuario
o
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:
Para ver los enlaces debes ser usuario
Crear Usuario
o
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:
Para ver los enlaces debes ser usuario
Crear Usuario
o
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
(Moderadores:
RuB
,
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
===> Seguridad
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Phreaking
===> Moviles
=> Bug y Exploits
-----------------------------
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
===> Php
===> Html
===> Java - Java Script
===> Php Nuke
===> Scripts Pre-Fabricados
===> Mysql
===> CSS y Diseño Web
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Cursos Y manuales
=> 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
=> 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.5
|
SMF © 2006-2007, Simple Machines LLC
Loading...