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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 408 409 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 ... 456
4221  Programación / PHP / Re: Como logra hacer esto los script de Google Publicidad ?? en: 16 Octubre 2008, 03:49 am
Citar
Tirale un echo... si el user no tiene o desactivo el js te las vas a pelar...
Claro, por ejemplo en el CMS de Freeze no me funciona ningún botón ya que todo funciona via javascript, lo que podrías hacer es implementar doble sistema, uno con javascript y otro sin javascript, por ejemplo..


Código
  1. <script>funciones();</script>
  2. <noscript>Si no navegas con javascript activado haz click <a href="index.php?accion=desactiva_js">ac&aacute;</a></noscript>
  3.  
  4. // .. .. ..
  5.  
  6. <?php
  7. // .. .. ..
  8.  
  9. if($_GET['accion'] == 'desactiva_js'){
  10. $_SESSION['scripts'] = 'false';
  11. }
  12.  
  13. // .. .. ..
  14.  
  15. if(!$_SESSION['scripts']){
  16. mostrar_acciones_con_js();
  17. }else{
  18. mostrar_acciones_sin_js();
  19. }
  20.  
  21. // .. .. ..
  22. ?>

Se entiende?  :P
4222  Programación / PHP / Re: fsockopen y host "maldito" en: 14 Octubre 2008, 15:23 pm
Está mal escrito el nombre del último servidor:
Código
  1. <?php
  2. function testport($url, $port)
  3. {
  4.  
  5. $servidor_checkport = fsockopen( $url  , $port  , $errno, $errstr, 1);
  6. if (!$servidor_checkport)
  7. {
  8.  
  9. $servertest= '<b><font color="#FF0000">Offline</font></b><br/>';
  10. echo $errno . $errstr;
  11.  
  12. }
  13.  
  14. else
  15. {
  16.  
  17. $servertest= '<b><font color="#339966">Online</font></b><br/>';
  18.  
  19. }
  20.  
  21. return $servertest;
  22.  
  23. }
  24.  
  25. $testingport = testport("www.web1.net",80);
  26. echo $testingport;
  27. $testingport = testport("www.web2.net",80);
  28. echo $testingport;
  29. $testingport = testport("ip shoutcastserver",80);
  30. echo $testingport;
  31. $testingport = testport("ip shoutcastserver",8010);
  32. $testingport;
  33. ?>

Fijate en 'ip shoutcastserver' recuerda que un nombre de dominio o DNS consta de carácteres consecutivos sin espacios en blanco.

Prueba con esto:
Código
  1. <?php
  2. // .. ..
  3.  
  4. /*
  5. Reemplaza ip.shoutcastserver por la ip real y
  6. asegurate que el protocolo sea TCP y no UDP
  7. */
  8.  
  9. testport("www.web1.net",80);
  10. testport("www.web2.net",80);
  11. testport("ip.shoutcastserver",80);
  12. testport("ip.shoutcastserver",8010);
  13.  
  14. function testport($url, $port){
  15. if(!$socket = fsockopen($url, $port, $error, $error_descripcion, 1)){
  16.  echo '<b><font color="#FF0000">Offline</font></b><br/>';
  17.  echo 'Error:['.$errno.$errstr.']<br />';
  18.  return false;
  19. }else{
  20.  fclose($socket);
  21.  echo '<b><font color="#339966">Online</font></b><br/>';
  22.  return true;
  23. }
  24. }
  25.  
  26. // .. ..
  27. ?>
4223  Programación / PHP / Re: Como logra hacer esto los script de Google Publicidad ?? en: 14 Octubre 2008, 05:41 am
Yo no le respondí porque no le había entendido XD pero viendo la respuesta así es, solo debe devolver el contenido puro del script sin anteponer <script> ni cerrar con </script> tal como aparece en el adsense de google... supongo que sopiaste el código y lo pegaste tal cual.

Si lo haces quedaría masomenos así:

Código
  1. contenido();

Algunos hacen esto para hacer un poco mas interactivos los scripts devolviendo mas de un ads e ir variando publicidades que son de un sitio a otro al igual que las hojas de estilo para hacer un theme mas interactivo como lo hace EYEOS.
4224  Programación / PHP / Re: [Proyecto] GreenCode-Coder V1.1.1 en: 13 Octubre 2008, 09:08 am
Hola IngAmc, gracias, ya lo puse.  ;D

También pienso crear dentro del mismo conversor un conversor de XSS  :P por ejemplo en buffer das lo siguiente:

Citar
<a href="http://$xss">test</a>

El sistema intentará escapar y te dará el resultado:

Citar
$xss = ">[XSS]

 :P Básico pero útil para gente que comienza en esto.
4225  Programación / PHP / Re: Pequeños trucos en PHP en: 13 Octubre 2008, 09:04 am
Transformación de Strings en múltiples formas

Código
  1. // Powered by GreenCode - WHK
  2. function codifica_base64_gz($buffer){
  3. $buffer = bin2hex(base64_encode(gzcompress($_POST['buffer'])));
  4. $separador = 16; // Editable, separador de 16 bytes.
  5. $separa = 0;
  6. for($cuenta=0;$cuenta<strlen($buffer);$cuenta+=2){
  7.  if($separa == 0){
  8.   $dump .= '"';
  9.  }
  10.  $dump .= '\x'.$buffer[$cuenta].$buffer[$cuenta+1];
  11.  $separa++;
  12.  if($separa == $separador){
  13.   $dump .= '"';
  14.   if($cuenta != (strlen($buffer))-2){
  15.    $dump .= '.'."\n";
  16.   }
  17.   $separa = 0;
  18.  }
  19. }
  20. if($dump[strlen($dump)-1] != '"'){
  21.  $dump .= '"';
  22. }
  23. return
  24. "\x3c\x3fphp\n// ...\n\n/* El retorno es tu buffer */".
  25. "\$str = gzuncompress(base64_decode(\n$dump\n));\n\n// ...\n\x3f\x3e";
  26. }
  27.  
  28. function ascii_a_png($buffer){
  29. return
  30. "\x3c\x3fphp\n// ...\n\n".
  31. "/* El retorno es una imagen */\n".
  32. "\$handle_img = imagecreate(".(int)(strlen($buffer) * 9).", 30);\n".
  33. "\$fondo = imagecolorallocate(\$handle_img, 255, 255, 255);\n".
  34. "\$color_texto = imagecolorallocate(\$handle_img, 0, 0, 255);\n".
  35. "imagestring(\$handle_img, 5, 0, 0, base64_decode(\"".base64_encode($buffer)."\"), \$color_texto);\n".
  36. "header(\"Content-type: image/png\");\n".
  37. "imagepng(\$handle_img);\n\n".
  38. "// ...\n\x3f\x3e";
  39. }
  40.  
  41. function sqlchr($buffer){
  42. for($cuenta=0;$cuenta<strlen($buffer);$cuenta++){
  43.  $dump .= 'char('.ord($buffer[$cuenta]).')';
  44.  if((strlen($buffer) - 1) != $cuenta){
  45.   $dump .= ',';
  46.  }
  47. }
  48. return $dump;
  49. }
  50.  
  51. function sqldword($buffer){
  52. return 'funcion(0x'.bin2hex($buffer).')';
  53. }
  54.  
  55. function urlencode_total($buffer){
  56. $buffer = bin2hex($buffer);
  57. for($cuenta=0;$cuenta<strlen($buffer);$cuenta+=2){
  58.  $dump .= '%'.$buffer[$cuenta].$buffer[$cuenta+1];
  59. }
  60. return $dump;
  61. }
  62.  
  63. function unescape_javascript($buffer){
  64. return '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">
  65. document.write(unescape("'.urlencode_total($buffer).'"));
  66. </SCRIPT>';
  67. }
  68.  
  69. function php_encode($buffer){
  70. $buffer = bin2hex(base64_encode(gzcompress($_POST['buffer'])));
  71. $separador = 16; // Editable, separador de 16 bytes.
  72. $separa = 0;
  73. for($cuenta=0;$cuenta<strlen($buffer);$cuenta+=2){
  74.  if($separa == 0){
  75.   $dump .= '"';
  76.  }
  77.  $dump .= '\x'.$buffer[$cuenta].$buffer[$cuenta+1];
  78.  $separa++;
  79.  if($separa == $separador){
  80.   $dump .= '"';
  81.   if($cuenta != (strlen($buffer))-2){
  82.    $dump .= '.'."\n";
  83.   }
  84.   $separa = 0;
  85.  }
  86. }
  87. if($dump[strlen($dump)-1] != '"'){
  88.  $dump .= '"';
  89. }
  90. return
  91. "\x3c\x3fphp\n// ...\n".
  92. "/*\nRecuerda que no debes anteponer '\x3c\x3f' ni terminar con '\x3f\x3e'".
  93. "Elimina este comentario.\n*/\n".
  94. "eval(gzuncompress(base64_decode(\n$dump\n)));\n\n// ...\n\x3f\x3e";
  95. }
  96.  
  97. function decodifica_base64_gz($buffer){
  98. $buffer1 = str_replace('"',' ',$buffer);
  99. $buffer1 = str_replace('.',' ',$buffer);
  100. $buffer1 = explode('\x',$buffer);
  101. $buffer1[0] = '';
  102. for($cuenta=0;$cuenta<count($buffer1);$cuenta++){
  103.  if(strlen($buffer1[$cuenta]) == '2'){
  104.   $buffer2 .= ' '.$buffer1[$cuenta];
  105.   $procesando = true;
  106.  }else{
  107.   if($procesando){
  108.    $buffer2 .= ' '.$buffer1[$cuenta][0].$buffer1[$cuenta][1];
  109.   }
  110.  }
  111. }
  112. $buffer2 = explode(' ',$buffer2);
  113. for($cuenta=0;$cuenta<count($buffer2);$cuenta++){
  114.  if(strlen($buffer2[$cuenta]) == '2'){
  115.   $buffer3 .= $buffer2[$cuenta];
  116.  }
  117. }
  118. return gzuncompress(base64_decode(hexa_a_str($buffer3)));
  119. }
  120.  
  121. function ascii_a_sha1($buffer){
  122. return sha1($buffer);
  123. }
  124.  
  125. function hexa_a_str($buffer){
  126. $buffer = preg_replace("/[^a-zA-Z0-9s]/", "", str_replace('\x',' ',$buffer));
  127. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  128.  $dump .= chr(hexdec($buffer[$cuenta].$buffer[($cuenta+1)]));
  129. }
  130. return $dump;
  131. }
  132.  
  133. function ascii_a_decimal($buffer){
  134. for($cuenta=0;$cuenta<strlen($buffer);$cuenta++){
  135.  $dump .= ord($buffer[$cuenta]).' ';
  136. }
  137. return $dump;
  138. }
  139.  
  140. function ascii_a_html_sin_s($buffer){
  141. $buffer = bin2hex($buffer);
  142. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  143.  $dump .= '&#38;#'.hexdec($buffer[$cuenta].$buffer[$cuenta+1]);
  144. }
  145. return $dump;
  146. }
  147.  
  148. function ascii_a_html_con_s($buffer){
  149. $buffer = bin2hex($buffer);
  150. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  151.  $dump .= '&#38;#x'.$buffer[$cuenta].$buffer[$cuenta+1].';';
  152. }
  153. return $dump;
  154. }
  155.  
  156. function generar_htpasswd_sha($user,$pass){
  157. return $user.':{SHA}'.base64_encode(sha1($pass, TRUE));
  158. }
  159.  
  160. function generar_htpasswd_md5($user,$realm,$pass){
  161. return $user.':'.md5($user.':'.$realm.':'.$pass);
  162. }
  163.  
  164. function hexadecimal_a_decimal($buffer){
  165. $buffer = preg_replace("/[^a-zA-Z0-9s]/", "", str_replace('\x',' ',$buffer));
  166. for($cuenta=0; $cuenta<strlen($buffer); $cuenta++){
  167.  if(ctype_xdigit($buffer[$cuenta].$buffer[$cuenta+1])){
  168.   $dump .= hexdec($buffer[$cuenta].$buffer[$cuenta+1]).' ';
  169.   $cuenta++;
  170.  }
  171. }
  172. return $dump;
  173. }
  174.  
  175. function octal_a_decimal($buffer){
  176. $buffer = preg_replace("/[^0-9 s]/", "", $buffer);
  177. $buffer = explode(' ',$buffer);
  178. for($cuenta=0; $cuenta<(count($buffer)-1); $cuenta++){
  179.  $dump .= octdec($buffer[$cuenta]).' ';
  180. }
  181. return $dump;
  182. }
  183.  
  184. function ascii_a_hexadecimal($buffer){
  185. return chunk_split(bin2hex($buffer),2,' ');
  186. }
  187.  
  188. function ascii_a_octal($buffer){
  189. $buffer = bin2hex($buffer);
  190. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  191.  $dump .= hexdec($buffer[$cuenta].$buffer[$cuenta+1]).' ';
  192. }
  193. $dump3 = explode(' ',$dump);
  194. for($cuenta=0; $cuenta<(count($dump3)-1); $cuenta++){
  195.  $dump2 .= decoct($dump3[$cuenta]).' ';
  196. }
  197. return $dump2;
  198. }
  199.  
  200. function debugger(){
  201. global $dump;
  202. if($dump){
  203.  echo htmlspecialchars($dump,ENT_QUOTES);
  204. }else{
  205.  if($_POST['buffer'] and $_POST['algoritmo']){
  206.  echo "No hay datos que devolver";
  207.  }
  208. }
  209. }
  210.  

Uso:

Código
  1. <?php
  2. // .. ..
  3. $dump = ascii_a_png('Hola Elhacker.net'); // Procesa el String.
  4. debugger(); // Imprime en pantalla el resultado evitando un XSS.
  5. // .. ..
  6. ?>

Debido a una incompatibilidad de SMF con carácteres HTML como & y # las dos funciones
ascii_a_html_sin_s()
ascii_a_html_con_s()
No se ven como debieran. Deben aparecer de la siguiente manera:

function ascii_a_html_sin_s($buffer){
 $buffer = bin2hex($buffer);
 for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  $dump .= '&#'.hexdec($buffer[$cuenta].$buffer[$cuenta+1]);
 }
 return $dump;
}

function ascii_a_html_con_s($buffer){
 $buffer = bin2hex($buffer);
 for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  $dump .= '&#x'.$buffer[$cuenta].$buffer[$cuenta+1].';';
 }
 return $dump;
}
4226  Programación / PHP / Re: XAMPP 1.6.3 como usarlo? en: 12 Octubre 2008, 20:36 pm
Xampp o Lampp es un pack donde vienen los servidores (apache, mysql, etc), el vbulletin es un sistema de foros en php, no tiene nada que ver.

Si quieres aprender a instalar vbulletin debes buscar vbulletin en google y encontrarás la web proncipal de ese sistema y por ahi debe aparecer como instalarse.
4227  Programación / PHP / Re: saber en que fila seleccione en: 12 Octubre 2008, 20:28 pm
Creo que ya estubo mas que claro en las primeras dos respuestas,

Citar
Pon el id en el link del boton y en tu php de eliminación haz un query delete where id=numero.
Citar
<?
while($row = mysql_fetch_array($que))
{
?>
<input type='button' value='eliminar' onclick="javascript:document.location.href='elimina.php?id=<? echo $row['codigo]']; ?>';">
<?
}
?>

Utilizar javascript no tiene nada de inseguro, la seguridad depende del programador para validar esa entrada, por ejemplo se supone que solo tu tendrás acceso a modificar aquellas filas o a quien tu designes con algún tipo de sesión, etc. Si quieres evitar alguna inyección de tipo SQL podrías establecer que la variable sea solo numérico (int)$id, el javascript que expuso haddes lo único que hace es una pequeña redirección para validar la entrada en metodo GET elimina.php?id=[id] y si alguien decide modificar ese ID podrá hacerlo desde el formulario de todas formas, la idea no es restringir desde el explorador sino desde el servidor si es que quieres evitar problemas de seguridad, todo esta en la buena programación php accediendo a eliminar la fila solamente si el usuario es permitido y/o el id realmente existe para evitar devolver valores nulos.

Piendo que lo que buscas está mas ayá de lo que expones.


Código
  1. <?php
  2. // .. ..
  3.  
  4. if($_GET['borrar']){
  5. $referer = @explode("?",$_SERVER[HTTP_REFERER]);
  6. if($_POST and !eregi($referer[0], "http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF])){
  7.  header("Ataque-detenido: XSRF");
  8.  header("location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  9.  exit(1);
  10. }
  11. if(verifica_eliminar()){
  12.  header('Estado: Columna eliminada');
  13.  header('location: http://'.$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  14.  exit(0);
  15. }else{
  16.  header('Estado: Sin acciones');
  17.  header('location: http://'.$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  18. exit(1);
  19. }
  20. }else{
  21. include('formulario.php');
  22. exit(0);
  23. }
  24.  
  25. function verifica_eliminar(){
  26. if($_SESSION['es_admin']){
  27.  $sql = 'DELETE FROM `database` WHERE `tabla`.`id` = \''.(int)$_GET['borrar'].'\';';
  28.  if(mysql_query($sql,$conectar_sql)){
  29.   return true;
  30.  }else{
  31.   return false;
  32.  }
  33. }else{
  34.   return false;
  35. }
  36. }
  37.  
  38. // .. ..
  39. ?>
4228  Programación / PHP / Re: XAMPP 1.6.3 como usarlo? en: 12 Octubre 2008, 20:05 pm
Busca xampp en google, el primer resultado te da la web del autor con el manual y todo:

http://www.apachefriends.org/en/xampp-linux.html

Citar
Pictures of XAMPP for Linux

Installation in 4 Steps

Step 1: Download
Step 2: Installation
Step 3: Start
Step 4: Test

Si no entiendes ingles usa el traductor de google:

http://translate.google.cl/translate?u=http%3A%2F%2Fwww.apachefriends.org%2Fen%2Fxampp-linux.html&sl=en&tl=es&hl=es&ie=UTF-8

Citar
Fotos de XAMPP para Linux

Instalación en 4 pasos

Paso 1: Descargar
Paso 2: Instalación
Paso 3: Inicie
Paso 4: Test
4229  Programación / PHP / Re: Sistema de usuarios con logueos unicos en: 12 Octubre 2008, 20:02 pm
Un par de post mas abajo aparece alguien con la misma duda y con la respuesta incluida:

http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html
4230  Programación / PHP / Re: [Proyecto] Codificador de múltiples algoritmos en: 11 Octubre 2008, 02:55 am
Listo  ;D

Código
  1. <?php
  2. // .. ..
  3. function decodifica_base64_gz($buffer){
  4. $buffer1 = str_replace('"',' ',$buffer);
  5. $buffer1 = str_replace('.',' ',$buffer);
  6. $buffer1 = explode('\x',$buffer);
  7. $buffer1[0] = '';
  8. for($cuenta=0;$cuenta<count($buffer1);$cuenta++){
  9.  if(strlen($buffer1[$cuenta]) == '2'){
  10.   $buffer2 .= ' '.$buffer1[$cuenta];
  11.   $procesando = true;
  12.  }else{
  13.   if($procesando){
  14.    $buffer2 .= ' '.$buffer1[$cuenta][0].$buffer1[$cuenta][1];
  15.   }
  16.  }
  17. }
  18. $buffer2 = explode(' ',$buffer2);
  19. for($cuenta=0;$cuenta<count($buffer2);$cuenta++){
  20.  if(strlen($buffer2[$cuenta]) == '2'){
  21.   $buffer3 .= $buffer2[$cuenta];
  22.  }
  23. }
  24. return gzuncompress(base64_decode(hexa_a_str($buffer3)));
  25. }
  26. // .. ..
  27. ?>

Si alguien intenta enviar datos inválidos entonces la función de base64 o gzuncompress devolverá un estado false por lo tanto devolverá el mensaje "No hay datos que devolver".

También se eliminó todo el buffer de salida con carácteres de escape html con htmlspecialchars y se procesó una sola ves en la función debugger()

Sistema actualizado.
Páginas: 1 ... 408 409 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 ... 456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines