elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [23] 24 Ir Abajo Respuesta Imprimir
Autor Tema: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]  (Leído 107,447 veces)
yasión

Desconectado Desconectado

Mensajes: 48

‮‮


Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #220 en: 29 Noviembre 2009, 00:39 am »

Buah! Estuve todo el día ocupado integrando... He tenido que parar porque me salia una idefinida por la oreja...xD Pues pego lo que envie a whk y si quedan dudas ya diréis:

Explicación:

Pues después de pruebas por aquí y por allá, de intentar entender el código de smf, de probar más por aquí y por allá... Me he acordado de la prueba de sdc para poder formar parte del proyecto SimpleAudit, y he cogido el string "raro" y lo he ido reduciendo (por comodidad) hasta la forma más pequeña en que funciona www.a((((((((((((((.
No me he mirado bastante el código como para entender porqué sucede lo que sudece, pero resulta que al meterlo dentro de algunos tags, el parser de bcc se vuelve loco y en lugar de poner carácteres se carga 3. Lo que significa que si hacemos:
Código:
[u]www.a((((((((((((((([/u]

En lugar de devolver:
Código:
<span style="text-decoration: underline;">Cadena</span>

Pasa esto:
Código:
<span style="text-decoration: underline</span>

Y al no cerrarse las comillas dobles se descujeringa todo el foro. Y con esto he estado haciendo pruebas en mi perfil esta tarde...xD (me lo he pasado bomba). Después de la diversión me he puesto a tratar de sacar un XSS de allí, así que he andado probando con algunos vectores de navegadores antiguos... Algo así:
Código:
[u]www.a((((((((((((((([/u] ;xss:epresionje(alert(5))[u][/u]

Y aunque no me filtrará el epresionje (que lo hacía), no podía ver si resultaba porque con FF no tira. Así que he buscado un rato otros vectores desde style, y nada. Así que me he puesto a intentar meterle un evento a esas comillas dobles ya abiertas, pero primero tenía que cerrarlas... Y básicamente he andado probando y mezclando (que me ha costado lo suyo...:S), hasta que he encontrado las combinaciones buenas:
Código:
[quote]www.a((((((((((((((([/quote][url==a onEvent=alert() tr=][/url]
(es indiferente usar ftp, http...)

Y me ha salido un bonito XSS... Ahora falta pensar como hacerlo para ejecutarlo de la manera más fácil posible, y ver si es compatibile con otros navegadores. Que no tengo ni idea...

No sé si esa es la explicación que esperabáis...xD Pero no sé que más contar...

Saludos!


NOSCRIPT!!!

En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #221 en: 29 Noviembre 2009, 00:43 am »

Bueno veo que ya te citaste y no te vo por eso repetí lo mismo jajaja.

Ahora, de que se trata ese ))))))) ? no se los voy a explicar porque forma parte del reclutamiento de simpleaudit xDDDDDD pero a penas se haga la publicación de los bugs voy a hacer un esfuerzo mental para tratar de explicarlo xD

PD: si alguien quiere insertar textos con bbcode sin que se interpreten basta con tan solo encerrarlo con [nobbc][/nobbc]

Por ejemplo:
[quote]test[/quote]

El post que dices es este:
http://foro.elhacker.net/nivel_web/proyecto_de_auditoria_a_smf_20_laboratorio_de_bugsnivel_web-t271095.0.html;msg1341433#msg1341433
« Última modificación: 29 Noviembre 2009, 00:47 am por WHK » En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #222 en: 29 Noviembre 2009, 01:29 am »

yo sabia que YST la iva a cagar ya que el agarro mi msn y lo agrego al suyo no se conq ue fin pero desde hay me di cuenta del bug...

ehmmmm Ok .. :xD
« Última modificación: 29 Noviembre 2009, 01:32 am por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
seclogman

Desconectado Desconectado

Mensajes: 268


l0gbyte


Ver Perfil
Re: Hackea a Elhacker.net !
« Respuesta #223 en: 29 Noviembre 2009, 10:23 am »


Citar
www.a(((((((((((((((
[/center]








No funciona en todos los smf....
« Última modificación: 29 Noviembre 2009, 11:09 am por Hwfr0ze‪ » En línea





Martin-Ph03n1X


Desconectado Desconectado

Mensajes: 1.059


SHOCYRIX


Ver Perfil
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #224 en: 29 Noviembre 2009, 10:42 am »

ese pinche perro a me castro con su ladrido hahaha
En línea

  No eres tu trabajo, no eres cuanto tienes en el banco, no eres el auto que conduces, ni el contenido en tu billetera, no eres tus malditos cakis, eres el bailarin cantante del mundo...!!!"
sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #225 en: 29 Noviembre 2009, 16:38 pm »

Les explicare porque este bug funciona... de una manera MUY SUPERFICIAL y tecnica.. parece que nadie termino entendiendo que paso y porque funciona xD asi que ahi va una brief explaination.

Pondre mas info en la wiki (y avisare cuando lo haga), pero mientras tanto..

Este NO ES EL UNICO bug de este tipo y estos problemas seguiran apareciendo no solo en SMF sino en todos lados que usen expresiones regulares en PHP con PREG con cosas tan sensibles como lo es parsear codigo que pasara a HTML.

Es una vulnerabilidad bastante complicada de entender... y cabe mencionar que por donde la veas es un dolor de cabeza.

Se llama ReDoS, (Regular Expression Denial of Service), fue presentada en Septiembre en OWASP 2009 - Israel.
http://www.checkmarx.com/NewsDetails.aspx?id=23

Basicamente la idea es abusar de la feature de backtracking de las expresiones regulares:
http://en.wikipedia.org/wiki/Backtracking

Voy a poner un ejemplo, la siguiente expresion regular:

Código:
([abc]+[def]|[cde]+[fgh])*i

lo que hace es buscar una cadena del tipo:
aaaadegafei
adadccfcfi
adi
cfi


Es muy facil generar ejemplos que funcionen con esta expresion regular, pueden probarlo en su navegador:
Citar
javascript:alert(/([abc]+[def]|[cde]+[fgh])*i/("adi"));

Ahora, el problema viene cuando una cadena NO coincide con dicha expresion regular como lo es:
adcd

el algoritmo en esos casos, cuando se da cuenta que la expresion regular no coincide, debe regresar a la ultima posicion que matcheo correctamente (recursivamente) y probar con la otra opcion (si es que hay).

es decir:
/([abc]+[def]|[cde]+[fgh])*i/("adcd") hace:
1.- a (coincide con primer caracter de primer grupo)
2.- d (coincide con segundo caracter de primer grupo)
-- entrando en repeticion -- *
3.- c (coincide con primer caracter de primer grupo)
4.- d (coincide con segundo caracter de primer grupo)
5.- [fin] (no coindide!! necesitamos una i, regresa a 4)
4.- (no hay mas opciones! regresa a 3)
3.- c (coincide con primer caracter de segundo grupo)
4.- d (no coincide!! regresa a 3)
3.- (no hay mas opciones! regresa a 2)
2.- (no hay mas opciones! regresa a 1)
1.- (no hay mas opciones! regresa a 0)
no hay 0, no hay match.

ahora, asi es como funciona un engine de expresiones regulares.. y si vemos esta expresion regular en especifico, podemos ver que hay un problema.
([abc]+[def]|[cde]+[fgh])

los strings:
cf
ccccccccccf
cfcf
cccf

etc..

coinciden con ambos grupos ([abc]+[def] y [cde]+[fgh]), ahora porque esto es relevante?

porque el siguiente string:
cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfQ

no va a matchear, pero el parser tiene que probar todas las opciones posibles para estar seguro.

1.- c (coincide con primer caracter de primer grupo)
 2.- f (coincide con segundo caracter de primer grupo)
 -- entrando en repeticion -- *
 3.- c (coincide con primer caracter de primer grupo)
 4.- f (coincide con segundo caracter de primer grupo)
 -- repeticion --
5.- c (coincide con primer caracter de primer grupo)
 6.- f (coincide con segundo caracter de primer grupo)
 -- repeticion --
etc..
--repeticion--
50.- c (coincide con primer caracter de primer grupo)
 51.- f (coincide con segundo caracter de primer grupo)
52.- Q (no coincide, regresa a 51)
51.- (no hay mas opciones, regresa a 50)
50.- c (coincide con primer caracter se segundo grupo)
 51.- f (coincide con segundo caracter de segundo grupo)
52.- Q (no coincide, regresa a 51)
 51.- (no hay mas opciones, regresa a 50)
 50.- (no hay mas opciones, regresa a 49)
 49.- (no hay mas opciones, regresa a 48)
48.- c (coincide con primer caracter de segundo grupo)
 49.- f (coincide con segundo caracter de segundo grupo)
50.- c (coincide con primer caracter de primer grupo)
 51.- f (coincide con segundo caracter de primer grupo)
 52.- Q (no coincide, regresa a 51)
51.- (no hay mas opciones, regresa a 50)
 50.- c (coincide con primer caracter se segundo grupo)
 51.- f (coincide con segundo caracter de segundo grupo)
52.- Q (no coincide, regresa a 51)
 51.- (no hay mas opciones, regresa a 50)
 50.- (no hay mas opciones, regresa a 49)
 49.- (no hay mas opciones, regresa a 48)
48.- (no hay mas opciones, regresa a 47)
...
etc..

como ven, el hecho de que cf coincidiera en 2 grupos, hizo que el engine repitiera la comparacion en 50 y 51, y luego, en 48 y 49.. lo que hizo que 50 y 51 se repitieran de nuevo.

Ahora, esto hace que 50 y 51 se re-prueben 2 VECES cada que 48 matchee, y 48 va a re-probarse 2 VECES cada que 46 matchee (aqui van 2*2 = 4 veces paraa 50/51), y 46 se re-probara 2 VECES cada que 44 matchee, lo que hace 50 (2*2*2), etc..

eso se repite 25 veces:
2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2=16,777,216

ahora, esto es nadamas la cantidad de veces que matcheara 50/51, ahora hay que sumar la cantidad de veces que matcheara 48/49
2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2=8,388,608

etc.... esto es a lo que en algoritmia se le llama un problema de complejidad exponencial, y hace que sea bastante tardado de resolver.

ahora, aqui estamos explotando un bug en una expresion regular que trata de detectar URLs... www.a((((((((((((((((((((((((((((((((((((((((((((.

donde "(" toma el papel de "cf" en nuestro ejemplo anterior.

en PHP, PREG va a suspender la ejecucion despues de N iteraciones y alterara la memoria donde esta almacenada la variable de tal forma, que se borraran los ultimos 3 bytes dentro de esta.

Esto tiene repercusiones bastante malas a largo plazo, como lo podemos ver, y se debe tener mucho cuidado...

Recomendaciones.. lean el PDF, y aprendan a detectar ReDoS y evitenlas en su codigo!

Saludos!!
 
En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #226 en: 29 Noviembre 2009, 16:40 pm »

Y como supiste que era ESA la cadena "rara".. porque, las probabilidades de que CUALQUEIR OTRA sea la cadena rara, son: INFINITAS..
Como has descubierto que era esa la cadena que jsuto daba ese error extraño?

Esto lo coloque antes de que Sirdarckcat coloque todo eso..
« Última modificación: 29 Noviembre 2009, 16:44 pm por Skeletron » En línea

NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #227 en: 29 Noviembre 2009, 16:46 pm »

guau, cuanto sabes SDC.... si sabes cocinar me caso contigo :P :laugh: :laugh:

S@lu2
En línea

MonzterKuki.


Desconectado Desconectado

Mensajes: 381



Ver Perfil WWW
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #228 en: 29 Noviembre 2009, 16:46 pm »

Eres Gay? :o(sin ofender)

xD
En línea

Es Mejor Ser querido que temido.
seclogman

Desconectado Desconectado

Mensajes: 268


l0gbyte


Ver Perfil
Re: Hackea a Elhacker.net ! [Finalizado - Ganador: yasión]
« Respuesta #229 en: 29 Noviembre 2009, 17:01 pm »

Repito


 lo he probado en algunos smf de la misma version, y en algunos no ha funcionado. ¿ a que puede ser debido ?


PD: maravillosa explicacion sdc

saludos!!
En línea





Páginas: 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [23] 24 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Finalizado] Hackea a elhacker.net v2.0 (ganador: yoya) « 1 2 ... 14 15 »
Nivel Web
WHK 142 77,435 Último mensaje 25 Junio 2012, 01:10 am
por gilea
El estándar USB 3.1 ya ha sido finalizado
Noticias
wolfbcn 0 1,485 Último mensaje 4 Agosto 2013, 01:39 am
por wolfbcn
W3 da por finalizado HTML5
Noticias
dimitrix 0 1,736 Último mensaje 18 Julio 2014, 16:40 pm
por dimitrix
Carpeta FL - FINALIZADO
Windows
Zorronde 5 3,864 Último mensaje 27 Octubre 2015, 17:55 pm
por Zorronde
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines