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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Acarrea alguna vulnerabilidad?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Acarrea alguna vulnerabilidad?  (Leído 5,434 veces)
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿Acarrea alguna vulnerabilidad?
« Respuesta #10 en: 19 Diciembre 2019, 23:20 pm »

Te estás complicando la vida mucho. Y lo que comentas ahora no tiene relación con la pregunta inicial.

Agrega a la tabla los permisos que tiene el usuario. Por ejemplo número del 1 al 5.

1 usuario baneado.
2 visitantes.
3 usuario loggeado común.
4 moderadores, administradores.
5 webmaster (tú).

En base a esto cuando se solicite una acción compruebas si el usuario que la solicita tiene permisos para realizar la acción.






En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Pregunta]: ¿Acarrea alguna vulnerabilidad?
« Respuesta #11 en: 20 Diciembre 2019, 01:22 am »

Te estás complicando la vida mucho. Y lo que comentas ahora no tiene relación con la pregunta inicial.

TE ESTAS COMPLICANDO LA VIDA
X1000

Hace rato le esta por comentar lo mismo, mas una respuesta extensa, pero se me cerro la pagina y mejor asi lo deje.


En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Acarrea alguna vulnerabilidad?
« Respuesta #12 en: 20 Diciembre 2019, 01:52 am »

Te estás complicando la vida mucho. Y lo que comentas ahora no tiene relación con la pregunta inicial.

Agrega a la tabla los permisos que tiene el usuario. Por ejemplo número del 1 al 5.

1 usuario baneado.
2 visitantes.
3 usuario loggeado común.
4 moderadores, administradores.
5 webmaster (tú).

En base a esto cuando se solicite una acción compruebas si el usuario que la solicita tiene permisos para realizar la acción.

emm nose experimenta lo que te dije y te vas a dar cuenta del hueco de "vulnerabilidad" o bugeaso que puede haber con lo que dije... con lo de los permisos... nose ya que tengo una tabla aparte donde se almacenan todos los usuarios baneados, donde va a guardar razón de baneo, la id del admin que lo bloqueo, la fecha, etcétera... después permiso visitantes? por ahí para lo que estoy trabajando no me sirva de mucho porque no es un blog, después 4. moderadores, adeministradores y 5. webmaster eso lo tengo en la tabla pero se llama rango... donde 1. va a ser ayudante, 2. X, y 3. Z
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Pregunta]: ¿Acarrea alguna vulnerabilidad?
« Respuesta #13 en: 20 Diciembre 2019, 02:37 am »

Si te comentan las cosas es por experiencia.

Espero que programes muy bien y aprendas lo necesario de seguridad para evitar ser hackeado, como vas hasta ahora, tarde o temprano te van a hackear y por la forma que te complicas la vida con ese tipo de códigos los fix van a ser algo tedioso llegando a tener que cambiar el paradigma de programación que usas actualmente.

Saludos!
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Acarrea alguna vulnerabilidad?
« Respuesta #14 en: 20 Diciembre 2019, 14:49 pm »

Una banda de respuestas  :xD pero no hacia falta todo eso, yo decía si acarreaba una vulnerabilidad no volver a definir x variable en este caso $_GET

Respondiendo: La aplicación web está en desarrollo por eso no tengo una URL que mandarles para que la vean.

A lo que iba era digamos que yo tengo un comentario que quiero editar, yo me ilustro o imagino que hay como "2 procesos" el "protocolo de seguridad entrante" y el "protocolo de seguridad de envío" (esto me lo invente yo  :xD por si les suena raro)

Bueno el protocolo de seguridad entrante se va a encargar de validar si el usuario tiene permisos para ingresar a x pagina.php

Por ejemplo si el usuario tiene la session iniciada, si el usuario no está bloqueado, si el usuario tiene el email verificado, entre tantas otras que pueda tener una aplicación... dependiendo el caso va a redireccionarlo a otras paginas... por ejemplo si no tiene la session iniciada lo manda a el index pero si si tiene la session iniciada pero esta baneado lo mando a ban.php y así hasta completar todos los protocolos.

Después está el protocolo de seguridad de envío que es cuando un usuario envía un formulario... Generalmente van a compartir el mismo protocolo pero con una diferencia y es que el protocolo de envío va a preguntar si la $session_id es igual a $_SESSION['id_user']

hay les explico (me va a salir tremendo texto bíblico pero así se entiende xD)

Ejemplo:

Código
  1. // protocolo de seguridad entrante
  2. [Si hay sessión iniciada]
  3.     -> [Si usuario no esta bloqueado]
  4.           -> [Se mantiene a el usuario en la pagina]
  5.                [Creo una variable $session_id que va a tener el valor de $_SESSION['id_user']
  6.     [Si no: mando -> ban.php]
  7. [Si no: mando-> index.php]
  8.  

Imaginen que una persona tiene abierto una pagina comentar.php que requiere que el usuario tenga una session inciada pero ese mismo usuario abre otra pagina comentar.php, hay ahora 2 pestañas abiertas con el mismo fichero... ahora en la primer pestaña va a cerrar su sesión por lo que lo va mandar a el index pero recordemos que dejó abierta otra donde se ve la pagina como si tuviera la sesión todavía iniciada, gracias a el protocolo de envío lo que va a hacer es que cuando el usuario que tiene una pagina abierta que requiere tener la sessión iniciada pero no la tiene lo que va a hacer es redirigirlo cuando intente usar el formulario...

Ahora gracias a session_id lo que va a hacer es que imaginemos ahora que el usuario tiene 2 cuentas, y abre esas 2 pestañas con el mismo fichero php cierra la sesión en una, pero le quedo la otra abierta y vuelve a ingresar a otra cuenta diferente pero ahora tenemos (1). comentar.php con una cuenta (X) y tenemos comentar.php con una cuenta (Y) ...

el protocolo de envio se va a quedar corto porque si va  a detectar que hay una session abierta, no puede decir si es la misma de antes pero si que hay una... entonces con session id lo que hago es compararlas

$session_id == $_session['id_user'] ?

Lo que trato de mostrar con esto (igual ya deben saber) es que cuando el usuario use el formulario van haber datos que se van a "actualizar" que no van a seguir siendo iguales...

Código
  1. <?php
  2. $comentarios = comentarios::Mostrar_Comentarios(); // Muestra todos los comentarios
  3. $comentarios = count($comentarios); // contamos todos los registros
  4.  
  5. echo $comentarios; // hay 3 comentarios
  6. ?>
  7.  
  8. Ahora imaginemos cuando el usuario manda un formulario
  9.  
  10. <?php
  11. if(isset($_POST['ver_otravez']))
  12. {
  13.     $comentarios = comentarios::Mostrar_Comentarios(); // Muestra todos los comentarios
  14.     $comentarios = count($comentarios); // contamos todos los registros
  15.  
  16.     echo $comentarios; // capaz acá pueda mostrar 4 o 5 o capaz menos comentarios, 2 comentarios... porque desde que yo abro la pagina hasta que yo mando un formulario pueden mostrarse datos diferentes (actualizados)
  17.  
  18.     Si yo acá no volvía a definir la variable $comentarios se iba a quedar con un valor viejo que era el 3
  19. }
  20. ?>
  21.  

A eso iba cuando preguntaba si tenia que volver  a definir variables cuando envío el formulario... por ahí un $_GET no se puede actualizar de otra forma que no sea cambiandolo y recargando la pagina por eso preguntaba...
Yo se que es un poco dificil de entender, más que nada no porque sea dificil sino porque explico para la mrd xD




En ningún momento el usuario vas a tener dos cuentas abiertas por navegador. La única forma de hacer tal cosa sería quizás usar diferentes perfiles de navegador (me imagino que no se comparte la información de navegador en esta instancia, pero nunca lo he probado), usar diferentes navegadores o usar alguna especie de script del lado del cliente que maneje las session ids.

Si tienes un usuario en comentar.php con una sesión iniciada y abre una nueva pestaña, no estás creando dos sesiones en ningún momento. Y si el usuario aborta la sesión en una pestaña, esa sesión ya no existe del lado del servidor (o al menos esa es la definición de borrar una sesión). No se crea una nueva sesión mágicamente.

Las sesiones no se crean del lado del cliente. Tendrías TU que crear un sistema que maneje multiples sesiones (a lo cual no le encuentro un uso práctico, pero quizás lo hay).

No entiendo para que quieres una variable $session_id, ¿Estás abriendo sesiones sin que el usuario haya iniciado sesión? Viene siendo lo mismo, si usas una variable dentro de la sesión para determinar si ha iniciado sesión, al momento que el usuario aborte la sesión tu borras esa variable del lado del servidor. Ya no existe.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Alguna vulnerabilidad en VBulletin?
Nivel Web
Skeletron 6 5,178 Último mensaje 6 Diciembre 2009, 21:12 pm
por WHK
¿Alguna vulnerabilidad en deep freeze?
Hacking
miguelskk 6 6,880 Último mensaje 3 Mayo 2011, 00:11 am
por Edu
Consulta ves alguna vulnerabilidad en este script mi favorito.
Nivel Web
Weeken 0 2,178 Último mensaje 4 Abril 2013, 08:30 am
por Weeken
¿hay alguna vulnerabilidad explotable en windows server 2012 r2?
Windows
n0d3 2 1,859 Último mensaje 17 Abril 2018, 19:30 pm
por n0d3
alguna vulnerabilidad sobre HTTAPI httpd 2.0 SSDP/UPnP ??
Bugs y Exploits
jorguko 0 1,967 Último mensaje 29 Mayo 2019, 16:02 pm
por jorguko
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines