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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 [425] 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 ... 456
4241  Programación / PHP / Re: Como puedo hacer esto? en: 28 Septiembre 2008, 21:27 pm
Te sirve?

Código
  1. <?php
  2. /* .. .. */
  3. if(!$id){
  4. echo "<div class = 'diverror'>
  5. <span style = 'color:#0000FF; font-size:14px'>
  6. No se puede dejar el campo vacio</span></div>";
  7. }else{
  8. $sql = "DELETE FROM socios WHERE idsocio = '".(int)$id."';";
  9. if(mysql_query($sql, $conex)){
  10.  echo "<div class = 'diverror'>
  11. <span style = 'color:#0000FF; font-size:14px'>
  12. El usuario ah sido borrado correctamente.</span></div>";  
  13. }else{
  14.  echo "<div class = 'diverror'>
  15. <span style = 'color:#0000FF; font-size:14px'>
  16. El usuario \"".htmlspecialchars($id,ENT_QUOTES)."\" NO existe.</span></div>";  
  17. }
  18. }
  19. /* .. .. */
  20. ?>
  21.  
4242  Programación / PHP / Re: Uso IE y esta instrucción $_SERVER[HTTP_USER_AGENT dice que uso Mozila en: 28 Septiembre 2008, 21:23 pm
Ni se te ocurra procesar $client en una query hacia la base de datos sin antes filtrarlo ya que agregando slashses no solucionas una inyección sql ni un xss.
4243  Programación / PHP / Re: syntax error, unexpected T_STRING en: 28 Septiembre 2008, 21:06 pm
Citar
syntax error, unexpected T_STRING
Ese error te está diciendo que hay una linea sin terminar, por ejemplo puede que le falte el ";" al final o que no hayas cerrado un parentesis o algo por el estilo.

Por lo que escribiste veo dos fallas, uno que le falta el ";" al final y lo otro que para hacer una consulta hacia la base de datos debes utilizar funciones y no escribirlo directamente sobre el código php, por ejemplo como te dijeron mas arriba:

Código
  1. $sql = "
  2. INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia)
  3. VALUES ('$primero', '$segundo', '$cantidad', '$agencia');
  4. ";
  5.  

Con eso estarías definiendo la consulta que vas a hacer, ahora debes realizar la consulta con
mysql_pconnect()
mysql_select_db()
mysql_query(,)
mysql_fetch_row()
mysql_free_result()
mysql_close()

Te recomiendo que leas un poco para que puedas tener la idea un poco mas clara:
http://cl2.php.net/mysql

Sin mas que decir te recomioendo que no expongas las variables directamente sobre la consulta mysql o tendrás graves problemas de seguridad, lee también sobre injección sql:
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL

Para evitar estas cosas lee sobre la función mysql_real_escape_string() y set_magic_quotes_runtime()

Código
  1. <?php
  2. /*  .. ..  */
  3.  
  4.  
  5. $servidor_bd = 'Localhost';
  6. $basededatos = 'nombre de la base de datos';
  7. $usuario_bd  = 'usuario de la base de datos';
  8. $pass_bd = 'contraseña del usuario de la base de datos';
  9.  
  10. if(!$conectar_sql = mysql_pconnect($servidor_bd, $usuario_bd, $pass_bd)){
  11. echo "No se puede conectar a la base de datos";
  12. exit(1);
  13. }else{
  14. if(!mysql_select_db($basededatos,$conectar_sql)){
  15.  echo "No existe la base de datos seleccionada";
  16.  exit(1);
  17. }
  18. }
  19.  
  20. $sql = "
  21. INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia)
  22. VALUES ('".
  23. mysql_real_escape_string($primero)."', '".
  24. mysql_real_escape_string($segundo)."', '".
  25. (int)$cantidad."', '".
  26. ";
  27.  
  28. if(mysql_query($sql,$conectar_sql)){
  29. echo "Datos insertados dentro de la base de datos.";
  30. }else{
  31. echo "No se pudo establecer los valores dentro de la base de datos.";
  32. }
  33.  
  34. /*  .. ..  */
  35. ?>
  36.  

http://cl2.php.net/manual/es/function.mysql-real-escape-string.php
http://cl2.php.net/manual/es/function.set-magic-quotes-runtime.php

Si después de todo esto todavía tienes preguntas puedes volver a hacerlas acá mismo.
4244  Programación / PHP / Re: Cuenta descarga en: 28 Septiembre 2008, 20:49 pm
En mysql solo bastaría con hacer una querye buscando la tabla donde se alojan las cantidades de descargas totales donde cuando alguien descarga algo entonces esa tabla se actualiza con UPDATE, hecha un vistazo a mi sistema filemanager aver si te da nuevas ideas, hasta podrías hacer tu propio sistema

https://sourceforge.net/projects/whkfilemanager/

Ahora de ti depende si el UPDATE lo haces antes o después de terminar la descarga, así solo tu sabes si el contador es por las descargas reales o con intentos frustrados nincluidos  :P
Ahi un ejemplo de como queda:

http://www.jccharry.com/descargas/

Recuerdo que un dia que puse un sistema prefabricado tube problemas ya que ese sistema traia fallas y debido a eso alguien pudo ingresar a mi servidor por lo cual me decidí a crear mi propio sistema para ya no tener mas problemas o por lo menos no confiar en sistemas que uno no conoce que tan seguros son.
4245  Programación / PHP / Re: multiples checkbox en php en: 28 Septiembre 2008, 19:49 pm
Código
  1. <form...>
  2. <?php
  3. foreach ($alumnos as $variable => $valor){
  4. echo '
  5. <input type="checkbox" name="'.$variable[$valor].'" value="1" />presente<br />
  6. <input type="checkbox" name="'.$variable[$valor].'" value="2" />atrasado<br />
  7. ';
  8. }
  9. ?>
  10. </form>
  11.  
Te sirve?
4246  Programación / PHP / Re: Manera mas segura de guardar una clave en BD en: 28 Septiembre 2008, 19:40 pm
Una forma que yo utilizo es la siguiente:

Código
  1. $sql = "
  2. SELECT `estado` FROM `paginas`
  3. WHERE `id`
  4. LIKE CONVERT(_utf8 '".mysql_real_escape_string($_GET[$variable_std])."' USING latin1)
  5. COLLATE latin1_swedish_ci
  6. LIMIT 1;";

Para Ingresar carácteres normales dentro de una query, base64 si es una buena idea, es mas, así lo hice yo en mi sistema filemanager pero lo malo es que después si quieres modificar la base de datos o crear un buscador será muy dificil.

Código
  1. $sql = "
  2. SELECT `sección` FROM `paginas`
  3. WHERE `id`
  4. LIKE CONVERT(_utf8 '".(int)$_GET[$variable_num])."' USING latin1)
  5. COLLATE latin1_swedish_ci
  6. LIMIT 1;";

Al preestablecer (int) antepuesto a una variable o constante estás declarando que solo se aceptarán datos numéricos evitando también una inyección sql como por ejemplo index.php?id=-1+union+all+select+1,2,3...
Y cuando hago un Select y necesito una sola columna siempre termino en LIMIT 1 para evitar posibles fugas.

mysql_real_escape_string() Esta función te permite evitar inyecciones sql siempre y cuando el valor esté encerrado dentro de comillas ya que desde acá no podrás escapar con ningún tipo de carácter.
Ahora también es bueno eliminar los slashses que agrega el apache de la siguiente forma:
Código

Eso es lo que se yo sobre seguridad básica cuando programas en php utilizando mysql.
4247  Programación / PHP / Re: Problema con php para web con usuer y password. en: 28 Septiembre 2008, 19:29 pm
Prueba con esto:
Código
  1. <?php
  2.  
  3. $user = $_POST["usuario"].":".$_POST["contraseña"];
  4.  
  5. switch($user){
  6. case "carlos:xxxx" :
  7.  $_SESSION["autentificado"]= "SI"; break;
  8. case "angel:atleti" :
  9.  $_SESSION["autentificado"]= "SI"; break;
  10. case "jluis:holaa" :
  11.  $_SESSION["autentificado"]= "SI"; break;  
  12. default :
  13.  $_SESSION["autentificado"]= "NO"; break;  
  14. }
  15.  
  16. if($_SESSION["autentificado"] == "SI"){
  17. header ("Location: 312.html");
  18. }else{
  19. header("Location: asdas.php?errorusuario=si");
  20. }
  21.  
  22. ?>

De todas formas te recomiendo no usar la variable "contraseña" debido a la letra "ñ" ya que es un carácter especial y a veces da problemas al momento de programar.
4248  Programación / PHP / Re: Incluir un php en todas las páginas? en: 16 Septiembre 2008, 00:43 am
Gracias a ambos, probaré con lo del php.ini primero porque no tengo la shell de mi servidor, si no resulta ahi veo que hago.
4249  Programación / PHP / Incluir un php en todas las páginas? en: 14 Septiembre 2008, 22:53 pm
Hola,
Necesito saber si alguien sabe como puedo incluir un archivo php en todas las demás páginas.. me explico..

La idea es que al hacer una petición GET a un php este comienze automáticamente incluyendo el archivo 1.php como cabecera y después que se ejecute el resto.

Habrá alguna configuración en htaccess para que haga esto? con el mod rewrite no puedo porque estoy utilizando permalinks en algunas partes de mi servidor y necesito que un sistema de logueo se encargue de filtrar todas las peticiones que pasen por ellas, blog, portal, todo. La idewa es no hacer un include a todo ya que hay páginas que no siempre son index.php y tendría que modificarlos cada ves que salga alguna actualización de ellos.

Algo así como lo hace iespana que cuando ves un archivo html te incrusta su publicidad arriba automáticamente sea cual sea la página si es html.
4250  Seguridad Informática / Nivel Web / Re: Posible inclusión remota de archivos en MKPortal en: 9 Septiembre 2008, 07:32 am
Referencia:
http://www.jccharry.com/fake/1.txt

Se sabe que el archivo está ahí por el error que arroja:
Citar
Warning: require_once(content/fuck.php) [function.require-once]: failed to open stream: No such file or directory in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/index.php on line 150

Fatal error: require_once() [function.require]: Failed opening required 'content/fuck.php' (include_path='.:/usr/local/lib/php') in /home/mkportal/domains/mkportal.es/public_html/mkportal/modules/docs/index.php on line 150

por lo cual el archivo que está tratando de incluir "show=fake" "content/fuck.php" falla, si hacemos un "show=copyright" entonces suponemos que está en "content/copyright.php"

Un null byte es un byte nulo, por ejemplo en un explordor se escribe %00 o simplemente un cero para bases de datos y en algunos casos proboca que un filtro no funcione adecuadamente ya que un byte nulo significa el término del buffer pero nosotros continuamos mas allá, te explico mejor...

"hola, como estás"
Para algunas funciones eso significa una palabra completa

"hola, %00 como estás"
Para algunas funciones la palabra termina hasta donde no haya bytes, o sea un byte nulo, eso significa que para la función la palabra termina después de la coma y no hay nada mas, eso significa que después de eso no es filtrado y podemos ejecutar sentencias mysql o de inclusiones debido a filtros diseñados con explode, eregi, preg, etc.

Estyo sucede muy a menudo al no deshabilitar el ingreso de bytes nulos desde el mismo script.

En la programación de visual basic se escribe "chr(0)", en C++ se escribe "\x00", en php, perl es lo mismo y en exploradores es en urlencode, o sea "%00".

http://www.google.cl/search?hl=es&q=null+byte+vulnerability&btnG=Buscar+con+Google&meta=
Páginas: 1 ... 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 [425] 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 ... 456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines