¿El peor agujero de seguridad que has visto? [cerrado]

413

¿Cuál es el peor agujero de seguridad que has visto? Probablemente sea una buena idea mantener los detalles limitados para proteger al culpable.

Para lo que vale, aquí hay una pregunta sobre qué hacer si encuentra un agujero de seguridad, y otra con algunas respuestas útiles si una empresa no (parece) responder.

si618
fuente
47
Debe ser wiki de la comunidad imo ...
ChristopheD
Gran hilo! Espero que se pueda vincular desde DailyWTF.com
Dale
¿Por qué cerrado? ¡Es una pregunta perfectamente razonable!
johnc
15
Las 60 respuestas y 28 votos positivos parecerían superar los 5 votos para cerrar (que tardó todo el día en acumularse, AFAIK). pero me abstendré de votar para reabrir hasta que esto se haya discutido.
rmeador
77
Incluso si su pregunta ha sido wiki comunitaria durante horas, el comentario sigue siendo un buen comentario para votar, ya que recuerda a las personas que las preguntas similares a esta deberían ser wiki comunitaria . Eso es lo que pienso.
Joren

Respuestas:

646

Desde los primeros días de las tiendas en línea:

Obtener un 90% de descuento ingresando .1 en el campo de cantidad del carrito de compras. El software calculó correctamente el costo total como .1 * costo, y el humano que empacó el pedido simplemente pasó por alto el extraño "." delante de la cantidad a empacar :)

John Stauffer
fuente
75
Este es definitivamente un argumento a favor del uso de un sistema fuertemente tipado.
Powerlord
54
¿Cuál es el sitio? Quiero un 90% de descuento !!!
amischiefr
58
Tal vez debería haber solicitado una cantidad de .10 por ciento en su lugar. ;)
MiffTheFox
81
Jeff Bezos mencionó que en los primeros días de Amazon, podría tener una cantidad negativa de libros y Amazon acreditaría su cuenta (y presumiblemente esperaría a que se los enviara). Ver 0:47 en youtube.com/watch?v=-hxX_Q5CnaA
Jeff Moser
10
Me hubiera encantado ver la cara del cliente que realmente recibió los discos duros .1 que pagó.
relet
575

El agujero de seguridad menos perdonable, y desafortunadamente uno muy común y fácil de encontrar, es el pirateo de Google . Caso en punto:

http://www.google.com/search?q=inurl%3Aselect+inurl%3A%2520+inurl%3Afrom+inurl%3Awhere

Es sorprendente cuántas páginas en Internet, en particular los sitios gubernamentales, pasan una consulta SQL a través de la cadena de consulta. Es la peor forma de inyección SQL, y no requiere ningún esfuerzo encontrar sitios vulnerables.

Con pequeños ajustes, he podido encontrar instalaciones desprotegidas de phpMyAdmin, instalaciones desprotegidas de MySQL, cadenas de consulta que contienen nombres de usuario y contraseñas, etc.

Julieta
fuente
66
Dios mío, qué inconcebiblemente estúpido. Ese sería yo llevando a ese desarrollador a RR.
Squillman
95
mesas pequeño Bobby ataca de nuevo ... xkcd.com/327
gbjbaanb
86
OMFG ... la próxima vez que tenga un mal día, voy a dejar caer algunas mesas
Michael Niemand
11
Lo que realmente me gusta de este ejemplo es que el primer resultado es de un blog de Oracle.
Ravi Wallau
400

Ingeniería social:

<Cthon98> hey, if you type in your pw, it will show as stars
<Cthon98> ********* see!
<AzureDiamond> hunter2
<AzureDiamond> doesnt look like stars to me
<Cthon98> <AzureDiamond> *******
<Cthon98> thats what I see
<AzureDiamond> oh, really?
<Cthon98> Absolutely
<AzureDiamond> you can go hunter2 my hunter2-ing hunter2
<AzureDiamond> haha, does that look funny to you?
<Cthon98> lol, yes. See, when YOU type hunter2, it shows to us as *******
<AzureDiamond> thats neat, I didnt know IRC did that
<Cthon98> yep, no matter how many times you type hunter2, it will show to us as *******
<AzureDiamond> awesome!
<AzureDiamond> wait, how do you know my pw?
<Cthon98> er, I just copy pasted YOUR ******'s and it appears to YOU as hunter2 cause its your pw
<AzureDiamond> oh, ok.

De bash.org

Bob Aman
fuente
2
Solía ​​ocurrir todo el tiempo en Runescape.
EvilTeach
77
Es muy poco probable que este intercambio en particular haya sucedido (¿quién escribiría "er" cuando están tratando de ocultar algo?), Pero no obstante es divertido.
Michael Myers
1
mmyers: también es muy poco probable que alguien sea lo suficientemente estúpido como para obtener rm -rf'd, pero eso definitivamente sucede. Lo he visto yo mismo :)
Matthew Iselin
25
No hay nada más inseguro que el cerebro de los idiotas
Earlz
1
@EvilTeach realmente implementaron eso en RuneScape. ¡Ni siquiera bromeo!
corsiKa
339

La verdadera historia de mis primeros días en Microsoft.

No has conocido el miedo hasta el día en que te levantas y ves el titular en ZDNet.com esa mañana: "El peor agujero de seguridad de Internet Explorer que se haya descubierto en 'Blah' ", donde "Blah" es el código que escribiste seis meses antes .

Inmediatamente después de llegar al trabajo, verifiqué los registros de cambios y descubrí que alguien en otro equipo, alguien en quien confiamos para hacer cambios en el producto, había revisado mi código, había cambiado un montón de configuraciones clave de registro de seguridad sin ninguna buena razón, lo comprobé de nuevo y nunca recibí una revisión de código ni se lo conté a nadie. Hasta el día de hoy no tengo idea de qué demonios pensó que estaba haciendo; dejó la compañía poco después. (Por su propia voluntad.)

(ACTUALIZACIÓN: Algunas respuestas a los problemas planteados en los comentarios:

Primero, tenga en cuenta que elijo tomar la posición caritativa de que los cambios en la clave de seguridad no fueron intencionales y se basaron en el descuido o la falta de familiaridad, en lugar de la malicia. No tengo evidencia de una manera u otra, y creo que es sabio atribuir los errores a la falibilidad humana.

Segundo, nuestros sistemas de registro son mucho, mucho más fuertes ahora que hace doce años. Por ejemplo, ahora no es posible registrar el código sin que el sistema de registro envíe por correo electrónico la lista de cambios a las partes interesadas. En particular, los cambios realizados al final del ciclo de envío tienen muchos "procesos" a su alrededor, lo que garantiza que se realicen los cambios correctos para garantizar la estabilidad y seguridad del producto).

De todos modos, el error fue que un objeto que NO era seguro para ser utilizado desde Internet Explorer había sido liberado accidentalmente como marcado como "seguro para secuencias de comandos". El objeto era capaz de escribir archivos binarios (bibliotecas de tipo de automatización OLE, de hecho) en ubicaciones de disco arbitrarias. Esto significaba que un atacante podía crear una biblioteca de tipos que contuviera ciertas cadenas de código hostil, guardarla en una ruta que fuera una ubicación ejecutable conocida, darle la extensión de algo que haría que se ejecutara un script y esperar que de alguna manera el usuario correría accidentalmente el código. No conozco ningún ataque exitoso del "mundo real" que haya utilizado esta vulnerabilidad, pero fue posible crear un exploit de trabajo con él.

Enviamos un parche bastante rápido para eso, déjame decirte.

Causé y posteriormente arreglé muchos más agujeros de seguridad en JScript, pero ninguno de ellos llegó a estar cerca de la publicidad que uno hizo.

Eric Lippert
fuente
81
Posiblemente, esto es en realidad 2 hazañas de seguridad; el otro es cómo obtener código en un servidor de compilación de producción sin que nadie se dé cuenta / apruebe el cambio ;-p
Marc Gravell
8
"revisé mi código, cambié un montón de configuraciones de clave de registro de seguridad sin una buena razón, lo volví a registrar y nunca recibí una revisión del código ni se lo conté a nadie", no me parece incompetencia, Parece que la intención maliciosa de alguien sabía exactamente lo que estaba haciendo.
Juliet
80
"Nunca atribuya a la malicia lo que puede explicarse adecuadamente por la estupidez". - Hanlon's Razor
David R Tribble
15
No hay un único sistema de control de fuente obligatorio para su uso en Microsoft. La mayoría de los equipos en estos días usan Source Depot o Team Foundation. Como era de esperar, los equipos de productos de Visual Studio generalmente usan Team Foundation. Come tu propia comida para perros, ya sabes.
Eric Lippert
40
¿Quién revisa ZDNet antes de ir a trabajar?
Neil N
274

Espero que puedas ver lo que está mal aquí. (Terriblemente mal, de hecho):

String emailBody = "";

for (int i = 0; i < subscribers.Count; i++)
{
    emailBody += "Hello " + subscribers[i].FirstName + ",";
    emailBody += "this is a reminder with your account information: \n\n:";
    emailBody += "Your username: " + subscribers[i].Username + "\n";
    emailBody += "Your password: " + subscribers[i].Password + "\n";
    emailBody += "Have a great day!";

    emailDispatcher.Send(subscribers[i].EmailAddress, emailBody);
}

El último destinatario fue el más feliz;)

Alex
fuente
226
¿Estás hablando del hecho de que almacenas contraseñas de texto sin formato o el hecho de que el emailBody nunca se borra? Ni siquiera estoy seguro de qué es peor.
Kristof Provost
208
¿Te refieres a no usar StringBuilder? : D (es broma.)
ShdNx
58
@ Kristof: supongo que se refiere al hecho de que el último usuario obtiene una lista de TODOS los usuarios y contraseñas. :)
Don Branson
141
Absolutamente detesto los sistemas que me devuelven mi contraseña como parte del proceso de registro. Esto tiene dos fallas: 1. Están almacenando mi contraseña de texto sin formato en algún lugar dentro de su sistema. Si no es su base de datos de usuario permanente, definitivamente su sistema de procesamiento de registro. 2. Se envió por CORREO ELECTRÓNICO, ya sea texto sin formato o HTML, SMTP a través de retransmisiones de correo a través de Internet. Hay varios hombres en el medio que podrían interceptar esto. Por lo menos, si siente la necesidad de enviarme correos electrónicos con información segura, ¡permítame especificarle mi clave PGP pública para cifrarla!
Jesse C. Slicer
16
Utilicé hashes MD5 para proteger las contraseñas en una base de datos una vez. Pero después de ejecutar los resultados a través de una tabla de arcoiris y hacer coincidir aproximadamente el 50% de las contraseñas ... pensé que era un buen momento para agregar una sal.
Matthew Whited
206

Los viejos terminales tontos de IBM System 36 tenían una combinación de teclado que iniciaba la grabación de una macro. Entonces, cuando un terminal no estaba conectado, puede comenzar la grabación de una macro y dejarla en esa posición. La próxima vez que alguien inicie sesión, las pulsaciones de teclas se grabarán en la macro y la grabación finalizará automáticamente cuando se hayan registrado las teclas máximas permitidas. Simplemente regrese más tarde y reproduzca la macro para iniciar sesión automáticamente.

texto alternativo

Stefan
fuente
204

El peor agujero de seguridad que he visto fue realmente codificado por los suyos y causó que el Google Bot elimine toda mi base de datos.

Cuando estaba aprendiendo ASP clásico, codifiqué mi propia aplicación básica de blog. El directorio con todos los scripts de administración estaba protegido por NTLM en IIS. Un día me mudé a un nuevo servidor y olvidé volver a proteger el directorio en IIS (¡Vaya!).

La página de inicio del blog tenía un enlace a la pantalla principal de administración, y la pantalla principal de administración tenía un BORRAR ENLACE para cada registro (sin confirmación).

Un día encontré todos los registros de la base de datos eliminados (cientos de entradas personales). Pensé que algún lector había entrado en el sitio y borró maliciosamente todos los registros.

Llegué a averiguarlo a través de los registros: el Google Bot había rastreado el sitio, siguió el enlace de administración y procedió a seguir todos los BORRAR ENLACES, eliminando así todos los registros de la base de datos. Sentí que merecía el premio Dumbass of the Year al ser inadvertidamente comprometido por el Google Bot.

Afortunadamente tenía copias de seguridad.

Matias Nino
fuente
13
Supongo que muestra cuán común es un error.
si618
96
Es por eso que siempre debe PUBLICAR para cambiar las acciones.
recursivo
77
@recursive: verdadero, pero si el directorio no está protegido con contraseña, no impide que un humano lo elimine todo.
DisgruntledGoat
2
He tenido este problema con los complementos del navegador que buscan previamente enlaces. Una vez trabajé para un sitio de blogs, y nos quedamos perplejos durante días cuando un usuario informó que todos los comentarios en su blog desaparecerían misteriosamente.
Mateo
77
No, no merecías ese premio. Lo hubiera merecido si esto hubiera sucedido y no tuviera copias de seguridad.
Ryan Lundy
187

El peor agujero que he visto fue un error en una aplicación web en la que si ingresas un nombre de usuario y una contraseña vacíos, iniciarás sesión como administrador :)

Kaitsu
fuente
144
¿Un error o una característica para desarrolladores perezosos? :)
si618
99
He visto ese código. Esto generalmente se debe a que la búsqueda del usuario usa un LIKE, como en "SELECT * FROM [User] donde UserName LIKE '%" + userName + "%'". Y dado que el administrador suele ser el primer usuario en la base de datos, devuelve a ese usuario.
Pierre-Alain Vigeant
11
¿por qué haces una LIKE con un nombre de usuario ... para que pudiera ser administrador por ADM a escribir cuando me ment para escribir Adam?
Mateo Whited
20
La mayoría de las empresas le dan tres intentos para iniciar sesión con una ID de usuario determinada antes de bloquear la cuenta. Así que es trivialmente fácil de bloquear a alguien vigilara cuenta con tres contraseñas malas.
David R Tribble
3
He visto esto en muchas aplicaciones web corporativas que se autentican en un directorio LDAP. En LDAP, una contraseña vacía da como resultado un inicio de sesión anónimo exitoso . El usuario anónimo no puede hacer mucho, pero las aplicaciones web que usan este mecanismo no van tan lejos como para verificar, ¡simplemente asumen "éxito = contraseña correcta"!
SimonJ
174

Una vez notado esto en la URL de un sitio web.

http://www.somewebsite.com/mypage.asp?param1=x&param2=y&admin=0

Cambiar el último parámetro a admin = 1 me dio privilegios de administrador. Si vas a confiar ciegamente en la entrada del usuario, ¡al menos no telegrafíes que lo estás haciendo!

JohnFx
fuente
19
Es una característica útil;) ¿No has visto WarGames? Algo así como "todo buen desarrollador agrega una puerta trasera a su sistema" jeje.
alex
38
Entonces, tal vez deberían haber usado & admin = JOSHUA
JohnFx
165

Vi este en The Daily WTF .

<script language="javascript">
<!--//
/*This Script allows people to enter by using a form that asks for a
UserID and Password*/
function pasuser(form) {
    if (form.id.value=="buyers") { 
        if (form.pass.value=="gov1996") {              
            location="http://officers.federalsuppliers.com/agents.html" 
        } else {
            alert("Invalid Password")
        }
    } else {  
        alert("Invalid UserID")
    }
}
//-->
</script>

Nada puede vencer a mi en mi humilde opinión.

Konamiman
fuente
21
Creo que esto puede no ser tan estúpido como piensas. Esta contraseña trivial podría funcionar como el botón "sí, soy del gobierno federal" con la diferencia de que una persona que trata de usarla mal, si es atrapada, también puede ser procesada por "proporcionar credenciales falsas" (¿o cómo la llaman? )
ilya n.
29
ilya: es Javascript, por lo que es visible para el usuario. Después de ver eso, puede ir a officer.federalsuppliers.com/agents.html , sin pasar por ningún tipo de control.
Alsciende
68
No se preocupe, siempre y cuando el sitio web tenga derechos de autor, la DMCA proporciona una protección del 100%. No está permitido "eludir" el Javascript.
Steve Hanov
13
@Steve Hanov: tiene una definición interesante de "evitar" Si escribo esa URL en mi navegador ... o incluso la copio / pego ... No omito nada, solo uso mi navegador para ir a una dirección que puse en mi barra de direcciones. Cuál es uno de los propósitos previstos de un navegador web.
Powerlord
46
felicidades, eres inocente, lástima que cuesta 300k convencer a un jurado de que
Dustin Getz
141

En una universidad no menos, que permanecerá sin nombre, todas sus consultas de acción se pasaron a través de la URL en lugar del formulario publicado.

La cosa funcionó de maravilla hasta que apareció Google Bot y revisó todas sus URL y borró su base de datos.

Evernoob
fuente
18
Buena inyección de SQL por diseño. He trabajado con la funcionalidad de informes que ha incorporado esa "característica".
ICodeForCoffee
18
@ICodeForCoffee: ¿dónde está la inyección SQL aquí? Esto solo confunde los propósitos de GET vs POST. Es un error bastante común por parte de desarrolladores web novatos. Recuerdo haber leído un artículo del Daily WTF sobre este problema exacto.
rmeador
¿No es una versión muy temprana si Wikipedia tiene este problema? Tenían enlaces que revertirían las ediciones o algo así.
DisgruntledGoat
14
El verdadero problema aquí es que el robot de Google podría borrar la base de datos sin autenticarse.
MiffTheFox
34
Espero que hayan podido recuperarlos del caché de google.
fastcodejava
137

Sorprendido, nadie ha mencionado la ingeniería social, pero me gustó este artículo .

Resumen: los usuarios malintencionados pueden comprar unas pocas docenas de unidades flash, cargarlas con un virus o troyano de ejecución automática, y luego espolvorear dichas unidades flash en el estacionamiento de una empresa a altas horas de la noche. Al día siguiente, todos se presentan a trabajar, tropiezan con el hardware irresistible brillante y con forma de caramelo y se dicen a sí mismos "oh wow, unidad flash gratuita, ¡me pregunto qué hay en ella!" - 20 minutos después, toda la red de la compañía está conectada.

Julieta
fuente
69
La ejecución automática es malvada.
Mark Ransom
22
@mmyers: prohibir las unidades flash no es un buen enfoque. Rompe la ejecución automática / reproducción automática.
Jay
10
Leído hace algún tiempo, otro enfoque (de los tiempos del disquete). Vive un disquete infectado de arranque con la etiqueta "Datos contables - confidencial" en un pasillo de la oficina y espera 5 minutos. ¡Irresistible!
Rodrigo
13
Afortunadamente, siempre puedo arrancar desde un Live CD de Linux y examinar la unidad flash desde allí.
David Thornley
66
@ Jay - Desafortunadamente, ¿cuántas personas mirarían los archivos y luego harían doble clic en ellos "para ver qué hacen"? La prohibición es una necesidad muchas veces porque la gente no piensa.
JasCav
131

"Pedo mellon a minno" , "Habla amigo y entra", a las puertas de Moria.

Adriano Varoli Piazza
fuente
13
¡Como si no se puede confiar en alguien que habla élfico!
Artelius el
66
xkcd.com/424
Lily Chung
103

Microsoft Bob
(Crédito: Dan's 20th Century Abandonware )

Si ingresa su contraseña incorrectamente por tercera vez, se le preguntará si la ha olvidado.

http://img132.yfrog.com/img132/8397/msbob10asignin15.gif

Pero en lugar de tener seguridad, como continuar solicitando la contraseña correcta hasta que se ingrese o bloquearlo después de varios intentos incorrectos, ¡puede ingresar cualquier contraseña nueva y reemplazará la original! Cualquiera puede hacer esto con cualquier cuenta de Microsoft Bob "protegida" con contraseña.

No se requiere autenticación previa. esto significa que el Usuario1 podría cambiar su propia contraseña simplemente escribiendo su contraseña tres veces y luego ingresando una nueva contraseña la cuarta vez, sin tener que usar "cambiar contraseña".

También significa que Usuario1 podría cambiar las contraseñas de Usuario2, Usuario3 ... exactamente de la misma manera. Cualquier usuario puede cambiar la contraseña de cualquier otro usuario simplemente escribiéndola tres veces y luego ingresando una nueva contraseña cuando se le solicite, y luego podrá acceder a la cuenta.

http://img132.yfrog.com/img132/9851/msbob10asignin16.gif

revs JohnFx
fuente
77
Este es el mismo comportamiento que el propio Windows cuando una computadora no es administrada por un dominio. Incluso en Windows Vista Ultimate, puede restablecer una contraseña en cualquier momento. Supongo que la denegación de servicio se considera una amenaza mayor que el acceso no autorizado; especialmente porque puede obtener la mayoría de las cosas simplemente volviendo a montar el disco en otro lugar. Creo que el propósito de la contraseña en este caso es la detección de intrusos en lugar de la prevención.
Jeffrey L Whitledge el
1
@Jeffrey: La cosa es que, una vez que el sombrero negro tiene acceso físico, es casi "juego terminado". Si desea protegerse contra eso, necesita un cifrado serio (así como formas de escanear en busca de keyloggers de hardware y software, etc.).
David Thornley
8
Alguien más sabio que yo señaló que esto es solo un buen modelo de amenaza. 'Bob' era para uso doméstico en una era no conectada a la red y era MUCHO más probable que sufrieras un intento de DOS por parte de tu hermana pequeña o una resaca que por algún ladrón. Bob le hizo saber que se había accedido a su cuenta (porque su contraseña anterior ya no funcionaba) pero no intentó hacer más.
bgiles
20
Mi esposa me acaba de ver mirando esto ... Ella: "¡Oh, Dios mío! ¿Qué programa es ese?" Yo: "... ¿Microsoft Bob?" Ella: "¡Me encantó Microsoft Bob!" Suspiro ...
Tim Goodman
10
@ChristianWimmer - Suena como dar a la gente una mochila marcada "Paracaídas" para que se acostumbren a la sensación de uno en la espalda, pero sin decirles que no hay paracaídas allí.
JohnFx
102

Tenía la antigua dirección de Joe X y necesitaba saber su nueva dirección actual en la misma ciudad, pero no tenía forma de contactarlo. Supuse que estaba recibiendo el habitual montón diario de catálogos de pedidos por correo, así que llamé arbitrariamente al número 800 de See's Candies (en oposición a Victoria's Secret, o Swiss Colony, o cualquier otro gran correo):

Yo: "Hola, soy Joe X. Creo que me tienes en tu lista de correo dos veces, tanto en mi dirección anterior como en mi nueva dirección. ¿Me muestra tu computadora en [dirección anterior] o en [dirección falsa] ? "

Operador: "No, te mostramos en [nueva dirección]".

Joe snyder
fuente
36
Ah, tengo que amar la ingeniería social. El aspecto humano de la seguridad suele ser el más débil.
EMP
95

Dar 1 = 1 en un cuadro de texto enumera todos los usuarios del sistema.

rahul
fuente
325
Saludos desde Bobby Tables.
Gumbo
44
¿Cómo puede votar el comentario de @ Gumbo 4 veces más que la respuesta?
Lie Ryan
12
Simplemente, 4 veces la cantidad de personas que votaron la pregunta votaron su comentario: /
RobertPitt
44
¿Podría uno de los 221 votantes del comentario de Bobby Tables decirle al resto de nosotros qué demonios es Bobby Tables?
kirk.burleson
15
@ kirk.burleson: xkcd.com/327
gspr
76

Al ser un consultor de seguridad de aplicaciones para ganarse la vida, hay muchos problemas comunes que le permiten obtener administrador en un sitio web a través de algo. Pero la parte realmente genial es cuando puedes comprar medias por valor de un millón de dólares.

Era un amigo mío que trabajaba en este concierto, pero lo primero era que los precios de los artículos en una tienda de libros en línea ahora muy popular (y todo lo demás) se almacenaban en el propio HTML como un campo oculto. En los primeros días, este error mordió muchas tiendas en línea, apenas comenzaban a descubrir la web. Muy poca conciencia de seguridad, quiero decir, ¿quién va a descargar el HTML, editar el campo oculto y volver a enviar el pedido?

Naturalmente, cambiamos el precio a 0 y pedimos 1 millón de pares de calcetines. También puede cambiar el precio a negativo, pero al hacer esto, parte del desbordamiento del búfer del software de facturación de fondo finalizó la transacción.

Si pudiera elegir otro, serían problemas de canonicalización de ruta en aplicaciones web. Es maravilloso poder hacer foo.com?file=../../../../etc/passwd

Collin
fuente
99
¡Impresionante, nunca más te faltaría un calcetín izquierdo!
si618
75
¿Alguna vez te pusieron los calcetines?
Alex Barrett
32
El pedido pasó y el sistema de cumplimiento alertó al almacén. Nos dimos cuenta de que probablemente funcionó y le dijimos a nuestro punto de contacto que deberían detener la orden. Aparentemente, un poco más tarde, un gerente de almacén llamó para preguntar sobre el pedido para asegurarse de que fuera real. Sabía sabiamente que era un error de software.
Collin
27
@StuperUser, de pie, por supuesto.
extraño
12
No hay problema con el almacenamiento, simplemente piratee el sitio web de Ikea para pedir 100,000 juegos de cajones para colocarlos,
Neil Aitken
64

Confirmar la contraseña raíz de la base de datos al control de origen por accidente. Fue bastante malo, porque era el control de fuente en Sourceforge.

No hace falta decir que la contraseña se cambió muy rápidamente.

Matthew Iselin
fuente
144
OK, la contraseña se cambió muy rápido ... pero ¿por quién ?
Eamon Nerbonne
1
He estado por este camino. Muchos sistemas (como Django, por ejemplo) prácticamente animan a esto, ya que le piden que ponga su contraseña de base en el archivo de configuración, que, naturalmente, es muy fácil de comprobar en.
mlissner
56

No cambiar las contraseñas de administrador cuando los empleados clave de TI dejan la empresa

Max
fuente
1
o dejar los valores predeterminados de fábrica como admin / admin (también o especialmente en el hardware) ...
Gnark
47
Tengo uno peor - Salí de una universidad después de haber sido colgado junto con el directorio diciéndome que estaban creando un trabajo de grado superior para mí después de mi graduación, pero más tarde descubrí que dijo a mi manager que eran no a promocióname. No hace falta decir que no estaba contento con eso. Le dije específicamente a mi gerente que cambiara cada contraseña a la que tenía acceso. La semana después de que me fui, recibí un correo electrónico de mi gerente con la contraseña de root, "por si acaso lo necesitaba". Me puse en contacto con el administrador del sistema para asegurarme de que se volviera a cambiar, ya que no quería aceptar la caída si algo salía mal.
Joe
10
@Sophomore: Recuerdo en la biografía de Feynman que comentó que muchas de las cajas fuertes gigantes y ultra seguras que albergan los secretos del proyecto Manhattan se dejaron en las combinaciones predeterminadas.
Brian
12
Me imagino a un espía de la URSS llegando a la caja fuerte y probando todo lo que se le ocurre para romper la caja fuerte, "¡Maldición! No puedo descifrarlo. ¿No sería divertido si pudiera ... wow, marcar uno ¡para la madre Rusia!"
Eric
3
No puedo sonreír al leer esto, estuve trabajando como técnico de TI un verano en una empresa sueca muy conocida, y cuando regresé varios años después para trabajar como ingeniero, tuve algunos problemas para instalar algún software. De la nada, recordé la antigua contraseña de administrador, ¡y listo! funcionó =)
Viktor Sehr
50

Aunque este no es el peor agujero de seguridad que he visto. Pero esto es al menos lo peor que he descubierto:

Una tienda en línea bastante exitosa para audiolibros utilizó una cookie para almacenar la información de identificación del usuario actual después de una autenticación exitosa. Pero podría cambiar fácilmente la ID de usuario en la cookie y acceder a otras cuentas y comprarlas.

Gumbo
fuente
Wow ... me sucedió exactamente lo mismo en un código ASP que heredé.
Radu094 01 de
Mantengo una aplicación que tiene este problema exacto. Está muy arriba en la lista de arreglos, para estar seguro. Afortunadamente, no es un sitio de comercio electrónico.
quentin-starin
12
Esto sucede con más frecuencia de lo que la mayoría de la gente piensa.
NotMe
47

Justo al comienzo de la era .com, estaba trabajando para un gran minorista en el extranjero. Observamos con gran interés cómo nuestros competidores lanzaron una tienda en línea meses antes que nosotros. Por supuesto, fuimos a probarlo ... y rápidamente nos dimos cuenta de que nuestros carritos de compras se estaban mezclando. Después de jugar un poco con la cadena de consulta, nos dimos cuenta de que podíamos secuestrar las sesiones de los demás. Con un buen momento, puede cambiar la dirección de entrega pero dejar solo el método de pago ... todo eso después de haber llenado el carrito con sus artículos favoritos.

Eric J.
fuente
Por supuesto, esto significa que usted ha hecho algo maliciosamente para que le envíen mercancías de manera fraudulenta si realmente lo hace, y les ha dicho "a ellos" su dirección.
David Thornley el
66
Sí, eso es lo que lo convierte en un importante agujero de seguridad. En realidad no presionamos el botón de compra, pero podríamos haberlo hecho. Y, según informes de noticias, algunas personas lo hicieron.
Eric J.
45

Cuando me uní por primera vez a la compañía en la que trabajo actualmente, mi jefe estaba revisando el sitio web de comercio electrónico existente de un posible nuevo cliente. Esto fue en los primeros días de IIS y comercio electrónico, y la seguridad fue, digamos, menos estricta.

Para abreviar una larga historia, alteró una URL (solo por curiosidad), y se dio cuenta de que la exploración del directorio no estaba desactivada, por lo que podría cortar el nombre de la página al final de la URL y ver todos los archivos en el Servidor web.

Terminamos navegando por una carpeta que contenía una base de datos de Access, que descargamos. Era toda la base de datos de clientes / pedidos de comercio electrónico, repleta de varios miles de números de tarjetas de crédito sin cifrar.

Mark Bell
fuente
1
Esto fue hace casi doce años, cuando los sitios web basados ​​en datos eran una novedad de vanguardia; muchos sitios corrían contra Access o similar, porque nadie quería invertir en una licencia de SQL Server para algo que se consideraba como un "lado" para su negocio principal. ¡Cómo han cambiado las cosas!
Mark Bell el
44

Cuando tenía 13 años, mi escuela abrió una red social para los estudiantes. Desafortunadamente para ellos, encontré un error de seguridad en el que podía cambiar el URI a otro ID de usuario como "? UserID = 123" e iniciar sesión para ese usuario. Obviamente se lo dije a mis amigos, y al final la red social de las escuelas se llenó de porno.

Sin embargo, no lo recomendaría.

Hannson
fuente
3
¿Por qué no recomendarías esto? ¿que pasó?
Simon_Weaver
55
@Simon_Weaver: Supongo que los niños de 13 años generalmente no tienen buen gusto por el porno.
holgazán
@slacker +1 para ponerte en 1000 repeticiones! excepto que no creo que los comentarios de calificación te
den
2
"buen gusto por el porno": hay un oxímoron.
Zann Anderson
43

Creo que el campo de nombre de usuario / contraseña en blanco para acceso de superusuario es, con mucho, el peor. Pero uno que me he visto fue

if (password.equals(requestpassword) || username.equals(requestusername))
{
    login = true;
}

Lástima que un operador haga una gran diferencia.

Stefan Ernst
fuente
10
wow, naturalmente tengo una compulsión para arreglarlo
wag2639
El hecho de que se use una contraseña real en lugar de un hash también es bastante malo ...
Peter Kriens
Primero dije "¿qué pasa?", Y luego dije "AAAAaaaaaaaAAAA! OMG"
Bojan Kogoj
42

El mío sería para un banco del que era cliente. No pude iniciar sesión, así que llamé al servicio al cliente. Me pidieron mi nombre de usuario y nada más; no hicieron preguntas de seguridad ni intentaron verificar mi identidad. Luego, en lugar de enviar un restablecimiento de contraseña a la dirección de correo electrónico que tenían en el archivo, me preguntaron a qué dirección de correo electrónico enviarlo. Les di una dirección diferente a la que tenía en el archivo y pude restablecer mi contraseña.

Esencialmente, todo lo que un hacker necesitaría es mi nombre de usuario, y luego podría acceder a mi cuenta. Esto fue para un banco importante del que al menos el 90% de las personas en los Estados Unidos habrían oído hablar. Esto sucedió hace unos dos años. No sé si fue un representante de servicio al cliente mal capacitado o si ese fue el procedimiento estándar.

Sean
fuente
22
¿Y qué banco es, por favor?
TigerTiger
55
@Si: escribe 'ERA un cliente de ...'. Creo que eso responde la pregunta. :)
ShdNx
8
Este fue Washington Mutual, que fue confiscado por la FDIC y vendido a Chase a principios de este año. También tenían mensajes de error extraños. Cuando intenté establecer mi contraseña desde la temporal, recibí un error "Las contraseñas no coinciden", a pesar de que eran las mismas e incluso copié / pegué. Me di cuenta de que si ponía "caracteres no válidos" como una barra diagonal, en lugar de decir caracteres no válidos, me daría ese otro mensaje.
Sean
11
@Elizabeth: Uhm ... te das cuenta de que eso es para evitar el phishing ¿verdad? Si alguien intenta copiar o imitar el sitio web del banco, puede verse exactamente igual, pero presumiblemente no tiene acceso a la base de datos, por lo que no puede obtener la imagen de seguridad correcta. Por eso está ahí. No todos los usuarios son lo suficientemente inteligentes como para comprobar el CERT (que podría ser un farol de manera similar)
MPes
13
¿Proteger sus cuentas financieras es excesivo? ...
Joe Phillips
36

Compartiré uno que creé. Mas o menos.

Hace años y años y años, la compañía para la que estaba trabajando quería indexar en su sitio web ASP. Así que fui y configuré Index Server, excluí algunos directorios de administración y todo estuvo bien.

Sin embargo, desconocido para mí, alguien le había dado a un vendedor un acceso ftp al servidor web para que pudiera trabajar desde casa, estos eran los días de acceso telefónico y era la forma más fácil para que intercambiara archivos ... y comenzó a cargar cosas, incluidos documentos que detallan el marcado en nuestros servicios ... que indexó el servidor y comenzó a servir cuando la gente buscaba "Costos".

Recuerde niños, listas blancas, no listas negras.

soplar el dardo
fuente
76
Creo que "las listas blancas no son listas negras", aunque a menudo son buenos consejos, no es la lección correcta para aprender aquí. La lección correcta es "no ponga datos privados en un servidor público". Además, "no permita que los vendedores accedan al servidor".
rmeador
77
Oh, la armonía entre la respuesta y el avatar.
Çağdaş Tekin
35

Uno de los más simples, pero realmente rentables es:

Los sistemas de pago que usan motores como PayPal pueden ser defectuosos porque la respuesta de PayPal después de que el pago fue exitoso no se verifica como debería ser.

Por ejemplo:

Puedo ir a un sitio web de compra de CD y agregar algo de contenido al carrito, luego, durante las etapas de pago, generalmente hay un formulario en la página que se ha rellenado con campos para PayPal, y un botón de envío para "Pagar".

Usando un editor DOM puedo ir al formulario "en vivo" y cambiar el valor de £899.00a £0.01y luego hacer clic en enviar ...

Cuando estoy del lado de PayPal, puedo ver que la cantidad es de 1 centavo, así que pago eso y PayPal redirige algunos parámetros al sitio de compra inicial, que solo valida parámetros como payment_status=1, etc., etc. y no validar la cantidad pagada.

Esto puede ser costoso si no cuentan con un registro suficiente o si los productos se envían automáticamente.

El peor tipo de sitios son los sitios que ofrecen aplicaciones, software, música, etc.

RobertPitt
fuente
12
+1 de acuerdo. En la situación de la página de pago alojada, el sitio web de origen no debe permitir que el usuario genere valores que se publicarán; en su lugar, la página debería volver a publicarse a sí misma al hacer clic en el usuario y luego el servidor formulará y enviará una publicación a la "pasarela" de pago directamente con los valores apropiados. Todo depende de lo que la puerta de enlace espere y de cómo se puedan hacer las interacciones con ella, pero no puedo ver que ninguna puerta de enlace valga la pena sin un escenario más seguro que el que usted describió. Quizás estoy equivocado sin embargo.
John K
puede imitar las solicitudes de publicación a través del lado del servidor para enviar los datos de esa manera y asegurarse de que los datos que se envían a la puerta de enlace sean exactamente eso, y luego redirigirlos con el encabezado de ubicación.
RobertPitt el
PayPal tiene una opción de cifrado que permite que el sitio evite esto. Primero, el sitio devuelve los datos a sí mismo, encripta los datos del pedido del lado del servidor con una clave conocida solo por ellos y por PayPal, y luego envía esos datos a PayPal, quien los descifra. Los datos de pedido sin cifrar nunca se envían en campos de formulario de esa manera. Sin embargo, es solo una opción, por lo que no todos los sitios que usan PayPal lo hacen de esa manera. ¡Aunque deberían!
mikel
35

¿Qué tal un administrador de documentos en línea, que permite configurar todos los permisos de seguridad que pueda recordar ...

Eso es hasta que llegaste a la página de descarga ... download.aspx? DocumentId = 12345

Sí, el ID de documento era el ID de la base de datos (incremento automático) y usted podía recorrer cada número y cualquiera podía obtener todos los documentos de la compañía.

Cuando se le alertó sobre este problema, la respuesta del gerente del proyecto fue: Ok, gracias. Pero nadie ha notado esto antes, así que vamos a mantenerlo como está.

Sergio
fuente
56
Realmente odio esa actitud, la he estado recibiendo algunas veces. Me dan ganas de dejar que otros lo hagan solo para enseñarles una lección.
syaz
Finalmente obtuve el visto bueno para llenar un agujero como este en mi último trabajo ... después de meses de quejarme.
párpado
No es raro encontrar sitios web que le permitan hacer esto. Verá un directorio de artículos recientes o archivados, pero no puede volver más atrás en la lista que una página o dos sin tener que iniciar sesión. Simplemente abra el primer artículo y cambie el parámetro correcto en la URL a cualquier publicación Número que desea ver cualquier artículo.
bob-the-destroyer
2
Aquí hay un gran ejemplo de esto. En este artículo del NY Times: nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining, la imagen que se muestra es un reemplazo de la versión original mucho más divertida, todavía disponible aquí: graphics8.nytimes.com /images/2009/01/14/dining/14power2_650.jpg
Jamie Treworgy
34

Una entrega de pizza noruega tenía un agujero de seguridad donde podía pedir cantidades negativas de pizzas en su nuevo y brillante portal de Internet y obtenerlas gratis.

usuario110763
fuente
42
El otro agujero de seguridad son los empleados, ¿verdad? "Bueno, señor, la computadora dice que obtienes 15 pizzas gratis, así que ... aquí tienes ... ¿me dan una propina?"
Nathan Long
66
... tu pizzería también entrega DVD? Oo
mpen
55
Como ex conductor de pizzas ... no, no nos importaron las ratas por ese tipo de cosas. Y tampoco nuestros gerentes.
párpado
48
¿No vendría el repartidor a recoger las pizzas que estás vendiendo ?
Jon B
77
Wow ... y el repartidor tuvo que darte la propina? =))
Andrei Rînea 13/10/10