Saber si mi script es vulnerable

Iniciado por Rudy21, 23 Abril 2007, 01:08 AM

0 Miembros y 1 Visitante están viendo este tema.

Rudy21

el ID es autoincrement y no entiendo en donde pueden meter la Inyeccíon SQL


si no tiene acceso masque al LOGIN!!!!

y el login no necesita Base de datos


entonces????


me podrian indicar donde???

gracias


[ Alberto]

Hola la verdad es que le heche solo una ojeada y como vi que no tratabas los campos user y pass tambien supuse que las variables usuario1... los sacabas de una base de datos pero si son valores constates no ay problema por eso
coincido tambien en lo que dice Ertai, con algun programa te an spameado
saludos
Debemos de hacer todas las cosas sencillas, excepto las cosas sencillas

Rudy21

jajajaj mano em tienes como loko intentanto hacer eso y no funcionaba xD xD


pero haber no entendi eso que me dijeron de la SPAMEADA


como filtro los POST o como hicieron para hacer el post si el que hace el POST está protejido bajo $_SESSION ??


[ Alberto]

ah tio disculpa las molestias, por spameada keria decir que te llenen de mensajes de noticias indeseados para eso una buena solucion es usar CAPTCHA (un detecta humanos) como este ejemplo http://www.contactify.com/1
Saludos
Debemos de hacer todas las cosas sencillas, excepto las cosas sencillas

SeniorX

Yo uso sleep(), para dormirlo un segundo, evitando asi un colapso probocado por bots, etc...
Usar captcha es una buenisima medida.
Lo otro, es que a parte de filtrar las variables, es bueno que el usuario que se conecta y lee los datos de la base de dato tenga permisos para lo que va a hacer y nada mas. Por ejemplo, si solo lee la base y los pasa a tu web, entonces quitale los permisos de borrar, escribir, etc etc... Esa practica no es muy usada pero muy eficiente.
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}

Precaución: La programacion puede producir adiccion

Rudy21

Si se lo que es el SPAM

pero lo k no entiendoe s como dicen que lo pudieron hacer


si se fijan

el noticia_nueva.php verifica si está iniciada la sesion y si no hay USERNAME lo redirecciona al header osea como pudieron meter las noticias


<?php
if (!isset($_SESSION)) {
  
session_start();
}
if (
$_SESSION['Username'] == "")
{
header ("Location: http://www.dominican.com/main.php");
}



Se me hace buena idea eso de utilizar el sleep()

pero solo encuentran esa posibilidad de hackeo

porke lo que se me hace AUN mas raro es que en la BD no tenian ni texto ni imagen NI ID!!!!!

y todo es esta en NOT NULL

y eso es lok se hme hace mas extraño, yo supongo que han d ehaber hackeado el HOST  mas que mi SCRIPT PERO NO LO c :S


Salu2



Hans el Topo

#16
las sesiones se pueden manipular también desde el usuario y tal...

no hace falta ni logearse para hacerte una inyección ya que solo compruebas si existe la sesión, no si la sesión es correcta y contiene datos verdaderos

yo podría entrar simplemente editando una sessión que pusiese algo diferente de vacio como usuario.

eso es lo primero que he visto al ojear las primeras líneas de tu código... voy a mirar un poco más y te sigo diciendo xD


En serio te funciona esto¿?

estas metiendo datos de texto sin meter comillas, ¿se las añade la función no, y supongo que también comprobará que no te meten lameradas xD?

$insertSQL = sprintf("INSERT INTO noticias (Titulo, Texto1, Imagen) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['Titulo'], "text"),
                       GetSQLValueString($_POST['Texto1'], "text"),

<?php
$insertSQL 
sprintf("INSERT INTO noticias (Titulo, Texto1, Imagen) VALUES (%s, %s, %s)",
                       
GetSQLValueString($_POST['Titulo'], "text"),
                       
GetSQLValueString($_POST['Texto1'], "text"),
                       
GetSQLValueString("../iconos_web/fotos_noticias/".$nombre_archivo"text"));

 
mysql_select_db($database_Dominican$Dominican);
  
$Result1 mysql_query($insertSQL$Dominican) or die(mysql_error());
?>




si el id es autoincremental y usas mysql...(si se supone que es clave primaria, cosa que me temo que no) no dejaría enviar 500 en un segundo, al no ser clave primaria, envia los 500 inserts a la vez y al colapsarse la base de datos no aumenta el autoincremental (por el commit y tal xD)

lo que utilizarón es un script que lanza simultáneamente esas 500 peticiones sin más, pon como clave primaria al identificador de la noticia y añade un contador que no permita enviar noticias hasta pasado 1 minuto después de su última (vía mysql o po sesion) y la otra opción es utilizar captcha

 

Rudy21

si me funciona eso así sin comillas no veo lo raro ya que como dices la funcion las mete!!!

y eso de lammeradas no me preocupó ya que solo el Admin tiene acceso no cualquier usuario

solo hay2

el admin y el moderador!!!!

lo que no eh probado es eso que me dices de clave principal el ID

ahora se lo pongo


y creo qeu si necesitare USAR CAPTCHA


SeniorX

Cita de: Rudy21 en 29 Abril 2007, 00:55 AM

y eso de lammeradas no me preocupó ya que solo el Admin tiene acceso no cualquier usuario

Ojo: Mala politica de seguridad. Asi piensan todos los que hacen sistemas vulnerables. Piensa como hacker, estas facilitando las cosas para hacer inyecciones, independientemente de si hay que ser admin o no.
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}

Precaución: La programacion puede producir adiccion

Rudy21

si y c tmbq ue esstóy facilitando mucho eso (despeus comento porké)

a loq ue voy es que se refierencon LAMMERADAS???

y por lo k mi SCRIPTS ES MUY VULNERABLE


si se fijan el UPLOAD de la imagenes

es para archivo CUALKIERA SUBE CAULKIER archivo ya sea una SHELL o un viruz etc...


pero no le eh peuso qeu revise si lo que se sube sea gif o jpg o pong ya que no eh tenido tiempo


me peudend ecira que se refieren con LAMMERADAS entiendo que es lok hace un lammer y se que es un lammer pero no entiendo como se aplica aqui
Salu2

P.D estóy ciendo como implementar el CAPTCHA() gracias