Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - WHK

#3291
es el último examen y no sabe hacer un "for" y tampoco sabe usar google :xD

http://msdn.microsoft.com/en-us/library/5z06z1kb%28VS.80%29.aspx

es practicamente lo mismo que en vb6.
#3292
PHP / Re: duda sobre pishing.php
5 Marzo 2010, 08:46 AM
no puedes hacer eso, tienes que autentificar sesiones con las cookies, enviar y recibir headers o hacer un bouncer.
#3293
PHP / Re: Perfil de un usuario, problema!
5 Marzo 2010, 08:44 AM
será talves porque te da error al hacer la query?
encierra en comillas el nombre o mysql te lo va a tomar como tabla u objeto en ves de string.
#3294
PHP / Re: Ejemplo practico de ob_start()
4 Marzo 2010, 04:21 AM
no, no es práctico para evitar xss porque es lo mismo a tener una variable get o post con el buffer del contenido y si vas a filtrar toda la web completa mejor usa sistemas como phpids que usa reglas en expresiones regulares.

ob_start() sirve para iniciar la obtenciónd el buffer y te lo debuelve si se lo pides con ob_ get_ contents.

Generalmente se usa para manipular todo un contenido como si estubieras imprimiendo el contenido pero realmente se va a un buffer.

de hecho php lo hace por defeto solo que cuando lo redeclaras se crea un nuevo objeto y se trabaja con el.

Te puede servir como para cosas como esta:
http://foro.elhacker.net/nivel_web/pcu_como_modificar_el_footer_de_smf_incluyendo_el_copyright-t285208.0.html
#3295
si pero eso es para tener los directorios visibles no los directorios reales y ocultos xD
es como si usaras el comando wget
wget -r http://www.google.com/
#3296
PHP / Re: Problema con estos códigos
2 Marzo 2010, 05:19 AM
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");

que pasa si el nombre contiene un espacio en blanco o una comilla como por ejemplo "Allen Paige's"?

http://cl.php.net/manual/en/function.mysql-real-escape-string.php
#3297
imposible a menos que el servidor tenga alguna falla de programación y de ahi tendrias que entrar a buscar bugs.
hay muchos escaneadores de vulnerabilidades pero que harás cuando te diga alguno que tipo de vuln tiene?, supon que diga que tiene heap overflow en un header, que harás?


Para eso necesitas bastantes conocimientos a menos que solo quieras bajarte un programa que le hagas click y te bote la web de una pero acá no enseñamos eso.
#3298
es muy dificil evitar que alguien con u cookie no pueda ingresar al sitio web.

el ataque que comenta andres es sobre uno de los tantos xss que han habido en hotmail, y si logras obtener las cookies además del user agent del explorador podrás ingresar en la sesión sin problemas aunque no hayas activado la caducación de sesion.

Cuando inicias sesión en gmail, yahoo o hotmail te dan una cookie y esa cookie expira cada x cantidad de tiempo pero si logras capturar esa cookie antes que caduque puedes inyectar su contenido en el explorador y aumentar el tie,po de sesión. Recuerda que el tiempo de expiración de las sesiones no son controladas por el servidor sino por el explorador, por lo tanto basta tener el contenido de la cookie para inyectar el contenido en tu explorador sin caducación y por si las dudas te modificas el user agente como lo puede hacer fi8refox y el complemento "modify headers".

Haz la prueba e inicia sesión en hotmail, luego cambia de ip y abre hotmail otraves, te darás cuenta que la sesión no ha caducado y es porque el servidor solo verifica los valores de tu cookie y talves realiza algún checkeo con el user agent.

Los headers enviados son exactamente los mismos a que si lo hicieras desde la consola con telnet o netcat asi que si puedes hacerlo sin explorador entonces significa que puedes hacerlo desde cualquier explorador y mayor aun, sin la necesidad de que sea la misma pc.

Hace tiempo ingresaba de esa forma a los paneles de administración de phpnuke ya que esos sistemas están apestados de xss y las cookies por mas que caduquen siempre puedes manipularlas ya que el servidor no es el que las verifica el tiempo de caducación  sino el explorador.
#3299
Bueno, tu sitio web tiene inyección sql en tres partes:
noticia.php linea 163
video.php linea 143
warezok.php linea 85

Salen lineas como esta:
Código (php) [Seleccionar]
$sql = "SELECT * FROM youtube WHERE id=$_GET[id]";

Ahora, que pasa si en id le pongo esto?
noticia.php?id=concat(chr(x), chr(x) ....)

quedaría una query masomenos así:
SELECT * FROM youtube WHERE id=concat(chr(x) ...)

Sería una inyección sql sin la necesidad de utilizar comillas (viendo que tu web impode la utilizacion de comillas en las peticiones get).

CitarWarning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/xxx/public_html/noticia.php on line 7

Por lo tanto si vas a procesar variables numéricas te recomiendo que las pases a integer:
Código (php) [Seleccionar]
$sql = "SELECT * FROM youtube WHERE id=".(int)$_GET[id];

Hay otras variables que también son numéricas pero hacen una multiplicación por el número de paǵinas y en ese caso si le pasas una letra dará un resultado cero asi que no hay inyección en ese caso.

Puedes dar un vistazo a este post:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Solo cambia esos tres archivos poniendole (int) fuera de las comillas y listo.

Hay un par de errores de programación también pero no afectan la seguridad, por ejemplo:
Código (php) [Seleccionar]
$con=mysql_connect("$host","$usuario","$passbase");
No necesitas ponerle comillas dobles, basta con dejarlo normal:
Código (php) [Seleccionar]
$con=mysql_connect($host,$usuario,$passbase);

Además desde php ya no se podrán utilizar las variables dentro de comillas como lo haces tu.

También trata de reemplazar <? por <?php ya que <? es una forma abreviada de la forma correcta que es <?php y no todos los servidores lo soportan y puede que en algun momento ese soporte te lo quiten, quien sabe, mejor es prevenir.

Hay variables como
Código (php) [Seleccionar]
$page = @$_GET["page"]
que no se utilizan, podrias borrarlas donde no las ocupes.

Donde dice:
Código (php) [Seleccionar]
$cad = mysql_db_query($database,$pegar) or die (mysql_error());

ponle:
Código (php) [Seleccionar]
$cad = mysql_db_query($database,$pegar) or exit;
para evitar el escape de información y delatar que tu script tiene inyeccion sql.

También veo que dice:
Código (php) [Seleccionar]
$contar = "SELECT * FROM warez WHERE categoria='$ta'";
pero la varible $ta no la veo definida en ningún lado, ahora si es un string puedes utilizar un filtro de php:
Código (php) [Seleccionar]
$contar = "SELECT * FROM warez WHERE categoria='".mysql_real_escape_string($ta)."'";

porque si no lo haces también tendrás problemas de inyección sql.

En fin, si es string o integer debes saber que no puedes darle directamente los valores a una query, en ambos casos debes aplicarle la función mysql_real_escape_string o si no (int) según sea el caso y en el enlace que te di mas arriba se explica con mas detalle:
http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Saludos.
#3300
jajaja yo todos los dias actualizo ubuntu y es de lo mejor, incluso utilizo namoroka que es firefox 3.6.2 pre y anda mucho mas rapido que el 3.5