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 ... 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 [194] 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 ... 287
1931  Programación / Desarrollo Web / Dudas crawling, bot, extensiones, headless browsers en android o qué? en: 8 Agosto 2019, 06:46 am
Varias questiones acerca de crawling. No tengo idea del tema. Voy a intentar organizar bien las preguntas y contexto para no hacer sharing de mi cacao mental...

Cómo puedo detectar automáticamente si el sitio es crawling/scraping-friendly?

Se suele indicar en algún sitio de forma frecuente?

Me acuerdo de hace tiempo que iba a usar un crawler junto a un bot en este foro y leí por las normas del sitio que no estaba permitido. No sé ni en donde xD. No sabía ni que se solía prohibir esta actividad.
Básicamente como sé si se permite o no, o si voy a tener problemas xD?  Me gustaría abrirle la puerta al crawler para que salga a pasear por ahí como quien suelta un perro y le trae trufas. Jejeje.

Básicamente quiero usar el crawler principalmente para descargar contenido del sitio y de links apuntados por el sitio mientras me hecho la siesta o salgo de casa, desde el android, por eso del límite de velocidad de los datos e ir generando caché para cargar más rápido los sitios o poder verlos offline o no, obtener data para analisis...

Quiero programarlo a mano solo con javascript con la idea en mente de ejecutarlo directamente en el navegador pero no quiero usar ninguna tecnología que use node.js porque no puedo usarlo en X dispositivos y no quiero usar hosting de ningún tipo.

Entonces como me salto la politica de origen de un sitio random?
No quiero instalar extensiones de terceros.

Podría hacer yo una extensión para el navegador (chrome, mozilla) para saltarme la política con javascript vanilla?

Nunca hice una y ni idea de como va el tema, si teneis info dpm.
O me recomendais algún navegador headless directamente y de fiar para Android que no use node.js Aunque no tengo claro que me sirva para hacer lo que necesito.

Porque también quiero usar el crawler conjuntamente con un modulo que se coloca en local para interceptar y modificar respuestas http a páginas http only con javascript para crawlear páginas de acceso al router y obtener la pass. (No pregunteis porque quiero crawlear la página del router a parte de sacar la pass xD)
 Ahí también tengo problemas con la politica del mismo origen pero al estar en local y poder embeber la página con un iframe, tras interceptar la respuesta y eliminar la parte de la cabecera que hace Deny en X-frame antes de forward no tengo problema para crawlear en local no?
 
El iframe me sirve tambien para que el crawler obtenga todo el contenido de la web o al estar en un iframe o no se puede? (No tengo ni idea.)

Y sin poder interceptar las respuestas alguna alternativa para no tener que usar el script del server? Me crashea mucho, es una patata.

Estoy resumiendo todo mucho y estoy bastante perdido con algunas cosas más.
1932  Seguridad Informática / Hacking / Re: recuperar correo gmail robado ayuda plz llevo un mes en: 8 Agosto 2019, 04:45 am
Habla con el soporte. Dile que tienes acceso a todos los dispositivos con los que entraste al correo. Que te robaron la contraseña y necesitas que te la restablezcan.

Sabes como te la robaron? Igual tienen acceso a tu pc o te desconfiguraron el router entre otras posibilidades.

Desconecta el router. Formatea e instala el sistema operativo de 0. Enciende el router y resetéalo de fábrica. Conéctate desde el pc al router y cambia la clave del wi-fi, pon una contraseña larga. Cambia también el usuario y contrasela de administración del router. Actualiza tu sistema operativo. Contacta con el soporte para que restablezca tu contraseña del correo. Pon una nueva y bien larga. Puedes utilizar por ejemplo el número de tu dni+tu comida favorita, el título de un libro que lleve tiempo en casa y su número de páginas + la marca de la lavadora xD(usa otros datos menos comunes pero que recuerdes) para que no se te olvide. Nunca se la des a nadie y no utilices los links que te vengan en los correos para iniciar sesión en tu cuenta o recuperar contraseñas. No utilices la misma contraseña ni muy parecidas en el mismo sitio.
1933  Seguridad Informática / Hacking / Re: Experto en WhatsApp en: 8 Agosto 2019, 04:23 am
Se puede falsear toda la info que te envien y los números que te salen. Al igual que imágenes, etc.

1934  Programación / Desarrollo Web / ASCII a Base64 (encoder - javascript) en: 8 Agosto 2019, 03:58 am
Decoder https://foro.elhacker.net/desarrollo_web/base64_a_ascii_decoder-t498429.0.html
Cambiarle las etiquetas <js> y </js> por las correspondientes para añadir el javascript al html. Lo puse así para que el Cloudfare no me detecte los scripts y no me rediriga en bucle a captchas al publicar el código en el foro.

Podeis probarlo offline con un copia y pega, substituyendo las etiquetas y guardándolo con extensión html o htm con el bloc de notas o cualquier otro editor de texto dándole a "guardar como". Por ejemplo: cifradobase64.html

Podeis añadirlo a vuestra web o usarlo como querais y para lo que querais.

Características.
-La implementación es super sencilla de entender. Así quien no sepa como funciona exactamente el cifrado base64, buscándolo en wikipedia (o en el propio foro de criptografía se lo expliqué a un usuario) y mirando el código pueda entenderlo. A parte es fácilmente portable a cualquier otro lenguaje.
-Filtra todos los espacios y carácteres no contemplados en la tabla común del cifrado base64 del texto original. Se le añaden fácilmente si se desea.
-Facil cambiar la base de 64 a otra base.
-Solo cifra, no descifra. Le añadí el igual al texto cifrado (en caso de necesitarlo) para poder descifrarlo con cualquier herramienta online o implementar vosotros el decoder. Puede que lo haga yo y lo suba también cuando me aburra.


Código
  1. &#65279;<html>
  2. <head><title>Encoder Base64</title></head>
  3. <body>
  4. <js>
  5. var CadenaEnTexto;
  6. var CadenaEnTextoTamanho;
  7. var CadenaEnASCII = "";
  8. var CadenaDeBits6en6 = "";
  9. var CadenaDeBits6en6Tamanho;
  10. var RestoDeDividirEntre6 = 0;
  11. var ContadorNumDeCerosAnhadidos = 0;
  12. var mantenerseEnBucle = true;
  13. var TempBits6 = "";
  14. var x = 0;
  15. var z = 0;
  16. var CifradoFinal = "";
  17.  
  18.  
  19. CadenaEnTexto = prompt("Pon el texto");
  20.  
  21. CadenaEnTextoTamanho = CadenaEnTexto.length;
  22.  
  23. for (var i = 0; i < CadenaEnTextoTamanho; ++i)
  24. {
  25.   if (CadenaEnTexto[i] == 'A')
  26.   {
  27.   CadenaEnASCII += "01000001";
  28.   }
  29.  
  30. if (CadenaEnTexto[i] == 'B')
  31.   {
  32.   CadenaEnASCII += "01000010";
  33.   }
  34.  
  35. if (CadenaEnTexto[i] == 'C')
  36.   {
  37.   CadenaEnASCII += "01000011";
  38.   }
  39.  
  40. if (CadenaEnTexto[i] == 'D')
  41.   {
  42.   CadenaEnASCII += "01000100";
  43.   }
  44.  
  45. if (CadenaEnTexto[i] == 'E')
  46.   {
  47.   CadenaEnASCII += "01000101";
  48.   }
  49.  
  50. if (CadenaEnTexto[i] == 'F')
  51.   {
  52.   CadenaEnASCII += "01000110";
  53.   }
  54.  
  55. if (CadenaEnTexto[i] == 'G')
  56.   {
  57.   CadenaEnASCII += "01000111";
  58.   }
  59.  
  60. if (CadenaEnTexto[i] == 'H')
  61.   {
  62.   CadenaEnASCII += "01001000";
  63.   }
  64.  
  65. if (CadenaEnTexto[i] == 'I')
  66.   {
  67.   CadenaEnASCII += "01001001";
  68.   }
  69.  
  70. if (CadenaEnTexto[i] == 'J')
  71.   {
  72.   CadenaEnASCII += "01001010";
  73.   }
  74.  
  75. if (CadenaEnTexto[i] == 'K')
  76.   {
  77.   CadenaEnASCII += "01001011";
  78.   }
  79.  
  80. if (CadenaEnTexto[i] == 'L')
  81.   {
  82.   CadenaEnASCII += "01001100";
  83.   }
  84.  
  85. if (CadenaEnTexto[i] == 'M')
  86.   {
  87.   CadenaEnASCII += "01001101";
  88.   }
  89.  
  90. if (CadenaEnTexto[i] == 'N')
  91.   {
  92.   CadenaEnASCII += "01001110";
  93.   }
  94.  
  95. if (CadenaEnTexto[i] == 'O')
  96.   {
  97.   CadenaEnASCII += "01001111";
  98.   }
  99.  
  100. if (CadenaEnTexto[i] == 'P')
  101.   {
  102.   CadenaEnASCII += "01010000";
  103.   }
  104.  
  105. if (CadenaEnTexto[i] == 'Q')
  106.   {
  107.   CadenaEnASCII += "01010001";
  108.   }
  109.  
  110. if (CadenaEnTexto[i] == 'R')
  111.   {
  112.   CadenaEnASCII += "01010010";
  113.   }
  114.  
  115. if (CadenaEnTexto[i] == 'S')
  116.   {
  117.   CadenaEnASCII += "01010011";
  118.   }
  119.  
  120. if (CadenaEnTexto[i] == 'T')
  121.   {
  122.   CadenaEnASCII += "01010100";
  123.   }
  124.  
  125. if (CadenaEnTexto[i] == 'U')
  126.   {
  127.   CadenaEnASCII += "01010101";
  128.   }
  129.  
  130. if (CadenaEnTexto[i] == 'V')
  131.   {
  132.   CadenaEnASCII += "01010110";
  133.   }
  134.  
  135. if (CadenaEnTexto[i] == 'W')
  136.   {
  137.   CadenaEnASCII += "01010111";
  138.   }
  139.  
  140. if (CadenaEnTexto[i] == 'X')
  141.   {
  142.   CadenaEnASCII += "01011000";
  143.   }
  144.  
  145. if (CadenaEnTexto[i] == 'Y')
  146.   {
  147.   CadenaEnASCII += "01011001";
  148.   }
  149.  
  150. if (CadenaEnTexto[i] == 'Z')
  151.   {
  152.   CadenaEnASCII += "01011010";
  153.   }
  154.  
  155. if (CadenaEnTexto[i] == 'a')
  156.   {
  157.   CadenaEnASCII += "01100001" ;
  158.   }
  159.  
  160. if (CadenaEnTexto[i] == 'b')
  161.   {
  162.   CadenaEnASCII += "01100010";
  163.   }
  164.  
  165. if (CadenaEnTexto[i] == 'c')
  166.   {
  167.   CadenaEnASCII += "01100011";
  168.   }
  169.  
  170. if (CadenaEnTexto[i] == 'd')
  171.   {
  172.   CadenaEnASCII += "01100100";
  173.   }
  174.  
  175. if (CadenaEnTexto[i] == 'e')
  176.   {
  177.   CadenaEnASCII += "01100101";
  178.   }
  179.  
  180. if (CadenaEnTexto[i] == 'f')
  181.   {
  182.   CadenaEnASCII += "01100110";
  183.   }
  184.  
  185. if (CadenaEnTexto[i] == 'g')
  186.   {
  187.   CadenaEnASCII += "01100111";
  188.   }
  189.  
  190. if (CadenaEnTexto[i] == 'h')
  191.   {
  192.   CadenaEnASCII += "01101000";
  193.   }
  194.  
  195. if (CadenaEnTexto[i] == 'i')
  196.   {
  197.   CadenaEnASCII += "01101001";
  198.   }
  199.  
  200.  
  201. if (CadenaEnTexto[i] == 'j')
  202.   {
  203.   CadenaEnASCII += "01101010";
  204.   }
  205.  
  206. if (CadenaEnTexto[i] == 'k')
  207.   {
  208.   CadenaEnASCII += "01101011";
  209.   }
  210.  
  211. if (CadenaEnTexto[i] == 'l')
  212.   {
  213.   CadenaEnASCII += "01101100";
  214.   }
  215.  
  216. if (CadenaEnTexto[i] == 'm')
  217.   {
  218.   CadenaEnASCII += "01101101";
  219.   }
  220.  
  221. if (CadenaEnTexto[i] == 'n')
  222.   {
  223.   CadenaEnASCII += "01101110";
  224.   }
  225.  
  226. if (CadenaEnTexto[i] == 'o')
  227.   {
  228.   CadenaEnASCII += "01101111";
  229.   }
  230.  
  231. if (CadenaEnTexto[i] == 'p')
  232.   {
  233.   CadenaEnASCII += "01110000";
  234.   }
  235.  
  236. if (CadenaEnTexto[i] == 'q')
  237.   {
  238.   CadenaEnASCII += "01110001";
  239.   }
  240.  
  241.  
  242. if (CadenaEnTexto[i] == 'r')
  243.   {
  244.   CadenaEnASCII += "01110010";
  245.   }
  246.  
  247. if (CadenaEnTexto[i] == 's')
  248.   {
  249.   CadenaEnASCII += "01110011";
  250.   }
  251.  
  252. if (CadenaEnTexto[i] == 't')
  253.   {
  254.   CadenaEnASCII += "01110100";
  255.   }
  256.  
  257. if (CadenaEnTexto[i] == 'u')
  258.   {
  259.   CadenaEnASCII += "01110101";
  260.   }
  261.  
  262. if (CadenaEnTexto[i] == 'v')
  263.   {
  264.   CadenaEnASCII += "01110110";
  265.   }
  266.  
  267. if (CadenaEnTexto[i] == 'w')
  268.   {
  269.   CadenaEnASCII += "01110111";
  270.   }
  271.  
  272. if (CadenaEnTexto[i] == 'x')
  273.   {
  274.   CadenaEnASCII += "01111000";
  275.   }
  276.  
  277. if (CadenaEnTexto[i] == 'y')
  278.   {
  279.   CadenaEnASCII += "01111001";
  280.   }
  281.  
  282. if (CadenaEnTexto[i] == 'z')
  283.   {
  284.   CadenaEnASCII += "01111010";
  285.   }
  286.  
  287. if (CadenaEnTexto[i] == '0')
  288.   {
  289.   CadenaEnASCII += "00110000";
  290.   }
  291.  
  292. if (CadenaEnTexto[i] == '1')
  293.   {
  294.   CadenaEnASCII += "00110001";
  295.   }
  296.  
  297. if (CadenaEnTexto[i] == '2')
  298.   {
  299.   CadenaEnASCII += "00110010";
  300.   }
  301.  
  302.  
  303. if (CadenaEnTexto[i] == '3')
  304.   {
  305.   CadenaEnASCII += "00110011";
  306.   }
  307.  
  308. if (CadenaEnTexto[i] == '4')
  309.   {
  310.   CadenaEnASCII += "00110100";
  311.   }
  312.  
  313. if (CadenaEnTexto[i] == '5')
  314.   {
  315.   CadenaEnASCII += "00110101";
  316.   }
  317.  
  318. if (CadenaEnTexto[i] == '6')
  319.   {
  320.   CadenaEnASCII += "00110110";
  321.   }
  322.  
  323. if (CadenaEnTexto[i] == '7')
  324.   {
  325.   CadenaEnASCII += "00110111";
  326.   }
  327.  
  328. if (CadenaEnTexto[i] == '8')
  329.   {
  330.   CadenaEnASCII += "00111000";
  331.   }
  332.  
  333. if (CadenaEnTexto[i] == '9')
  334.   {
  335.   CadenaEnASCII += "00111001";
  336.   }
  337.  
  338. if (CadenaEnTexto[i] == '+')
  339.   {
  340.   CadenaEnASCII += "00101011";
  341.   }
  342.  
  343. if (CadenaEnTexto[i] == '/')
  344.   {
  345.   CadenaEnASCII += "00101111";
  346.   }
  347.  
  348. }
  349.  
  350. CadenaDeBits6en6 += CadenaEnASCII;
  351. CadenaDeBits6en6Tamanho = CadenaDeBits6en6.length;
  352.  
  353. RestoDeDividirEntre6 = CadenaDeBits6en6Tamanho % 6;
  354.  
  355. switch (RestoDeDividirEntre6)
  356. {
  357.   case 2:
  358.   {
  359.   CadenaDeBits6en6 += "0000";
  360.   ContadorNumDeCerosAnhadidos = 4;
  361.   CadenaDeBits6en6Tamanho += 4;
  362.   } break;
  363.  
  364.   case 4:
  365.   {
  366.   CadenaDeBits6en6 += "00";
  367.   ContadorNumDeCerosAnhadidos = 2;
  368.   CadenaDeBits6en6Tamanho += 2;
  369.   } break;
  370.  
  371.   default:
  372.   {
  373.  
  374.   } break;
  375. }
  376.  
  377.  
  378. do
  379. {
  380.  
  381. TempBits6 += CadenaDeBits6en6[z];
  382.  
  383. x++;
  384. z++;
  385.  
  386.  
  387.   if (x == 6 )
  388.   {
  389.  
  390.  
  391. if ( TempBits6 == "000000")
  392.       {
  393.       CifradoFinal += "A";
  394.       }
  395.  
  396. if ( TempBits6 == "000001")
  397.       {
  398.       CifradoFinal += "B";
  399.       }
  400.  
  401. if ( TempBits6 == "000010")
  402.       {
  403.       CifradoFinal += "C";
  404.       }
  405.  
  406. if ( TempBits6 == "000011")
  407.       {
  408.       CifradoFinal += "D";
  409.       }
  410.  
  411. if ( TempBits6 == "000100")
  412.       {
  413.       CifradoFinal += "E";
  414.       }
  415.  
  416. if ( TempBits6 == "000101")
  417.       {
  418.       CifradoFinal += "F";
  419.       }
  420.  
  421. if ( TempBits6 == "000110")
  422.       {
  423.       CifradoFinal += "G";
  424.       }
  425.  
  426. if ( TempBits6 == "000111")
  427.       {
  428.       CifradoFinal += "H";
  429.       }
  430.  
  431. if ( TempBits6 == "001000")
  432.       {
  433.       CifradoFinal += "I";
  434.       }
  435.  
  436. if ( TempBits6 == "001001")
  437.       {
  438.       CifradoFinal += "J";
  439.       }
  440.  
  441. if ( TempBits6 == "001010")
  442.       {
  443.       CifradoFinal += "K";
  444.       }
  445.  
  446. if ( TempBits6 == "001011")
  447.       {
  448.       CifradoFinal += "L";
  449.       }
  450.  
  451. if ( TempBits6 == "001100")
  452.       {
  453.       CifradoFinal += "M";
  454.       }
  455.  
  456. if ( TempBits6 == "001101")
  457.       {
  458.       CifradoFinal += "N";
  459.       }
  460.  
  461. if ( TempBits6 == "001110")
  462.       {
  463.       CifradoFinal += "O";
  464.       }
  465.  
  466. if ( TempBits6 == "001111")
  467.       {
  468.       CifradoFinal += "P";
  469.       }
  470.  
  471. if ( TempBits6 == "010000")
  472.       {
  473.       CifradoFinal += "Q";
  474.       }
  475.  
  476. if ( TempBits6 == "010001")
  477.       {
  478.       CifradoFinal += "R";
  479.       }
  480.  
  481. if ( TempBits6 == "010010")
  482.       {
  483.       CifradoFinal += "S";
  484.       }
  485.  
  486. if ( TempBits6 == "010011")
  487.       {
  488.       CifradoFinal += "T";
  489.       }
  490.  
  491. if ( TempBits6 == "010100")
  492.       {
  493.       CifradoFinal += "U";
  494.       }
  495.  
  496. if ( TempBits6 == "010101")
  497.       {
  498.       CifradoFinal += "V";
  499.       }
  500.  
  501. if ( TempBits6 == "010110")
  502.       {
  503.       CifradoFinal += "W";
  504.       }
  505.  
  506. if ( TempBits6 == "010111")
  507.       {
  508.       CifradoFinal += "X";
  509.       }
  510.  
  511. if ( TempBits6 == "011000")
  512.       {
  513.       CifradoFinal += "Y";
  514.       }
  515.  
  516. if ( TempBits6 == "011001")
  517.       {
  518.       CifradoFinal += "Z";
  519.       }
  520.  
  521. if ( TempBits6 == "011010")
  522.       {
  523.       CifradoFinal += "a";
  524.       }
  525.  
  526. if ( TempBits6 == "011011")
  527.       {
  528.       CifradoFinal += "b";
  529.       }
  530.  
  531. if ( TempBits6 == "011100")
  532.       {
  533.       CifradoFinal += "c";
  534.       }
  535.  
  536. if ( TempBits6 == "011101")
  537.       {
  538.       CifradoFinal += "d";
  539.       }
  540.  
  541. if ( TempBits6 == "011110")
  542.       {
  543.       CifradoFinal += "e";
  544.       }
  545.  
  546. if ( TempBits6 == "011111")
  547.       {
  548.       CifradoFinal += "f";
  549.       }
  550.  
  551. if ( TempBits6 == "100000")
  552.       {
  553.       CifradoFinal += "g";
  554.       }
  555.  
  556. if ( TempBits6 == "100001")
  557.       {
  558.       CifradoFinal += "h";
  559.       }
  560.  
  561. if ( TempBits6 == "100010")
  562.       {
  563.       CifradoFinal += "i";
  564.       }
  565.  
  566. if ( TempBits6 == "100011")
  567.       {
  568.       CifradoFinal += "j";
  569.       }
  570.  
  571. if ( TempBits6 == "100100")
  572.       {
  573.       CifradoFinal += "k";
  574.       }
  575.  
  576. if ( TempBits6 == "100101")
  577.       {
  578.       CifradoFinal += "l";
  579.       }
  580.  
  581. if ( TempBits6 == "100110")
  582.       {
  583.       CifradoFinal += "m";
  584.       }
  585.  
  586. if ( TempBits6 == "100111")
  587.       {
  588.       CifradoFinal += "n";
  589.       }
  590.  
  591. if ( TempBits6 == "101000")
  592.       {
  593.       CifradoFinal += "o";
  594.       }
  595.  
  596. if ( TempBits6 == "101001")
  597.       {
  598.       CifradoFinal += "p";
  599.       }
  600.  
  601. if ( TempBits6 == "101010")
  602.       {
  603.       CifradoFinal += "q";
  604.       }
  605.  
  606. if ( TempBits6 == "101011")
  607.       {
  608.       CifradoFinal += "r";
  609.       }
  610.  
  611. if ( TempBits6 == "101100")
  612.       {
  613.       CifradoFinal += "s";
  614.       }
  615.  
  616. if ( TempBits6 == "101101")
  617.       {
  618.       CifradoFinal += "t";
  619.       }
  620.  
  621. if ( TempBits6 == "101110")
  622.       {
  623.       CifradoFinal += "u";
  624.       }
  625.  
  626. if ( TempBits6 == "101111")
  627.       {
  628.       CifradoFinal += "v";
  629.       }
  630.  
  631. if ( TempBits6 == "110000")
  632.       {
  633.       CifradoFinal += "w";
  634.       }
  635.  
  636. if ( TempBits6 == "110001")
  637.       {
  638.       CifradoFinal += "x";
  639.       }
  640.  
  641. if ( TempBits6 == "110010")
  642.       {
  643.       CifradoFinal += "y";
  644.       }
  645.  
  646. if ( TempBits6 == "110011")
  647.       {
  648.       CifradoFinal += "z";
  649.       }
  650.  
  651. if ( TempBits6 == "110100")
  652.       {
  653.       CifradoFinal += "0";
  654.       }
  655.  
  656. if ( TempBits6 == "110101")
  657.       {
  658.       CifradoFinal += "1";
  659.       }
  660.  
  661. if ( TempBits6 == "110110")
  662.       {
  663.       CifradoFinal += "2";
  664.       }
  665.  
  666. if ( TempBits6 == "110111")
  667.       {
  668.       CifradoFinal += "3";
  669.       }
  670.  
  671. if ( TempBits6 == "111000")
  672.       {
  673.       CifradoFinal += "4";
  674.       }
  675.  
  676. if ( TempBits6 == "111001")
  677.       {
  678.       CifradoFinal += "5";
  679.       }
  680.  
  681. if ( TempBits6 == "111010")
  682.       {
  683.       CifradoFinal += "6";
  684.       }
  685.  
  686. if ( TempBits6 == "111011")
  687.       {
  688.       CifradoFinal += "7";
  689.       }
  690.  
  691. if ( TempBits6 == "111100")
  692.       {
  693.       CifradoFinal += "8";
  694.       }
  695.  
  696. if ( TempBits6 == "111101")
  697.       {
  698.       CifradoFinal += "9";
  699.       }
  700.  
  701. if ( TempBits6 == "111110")
  702.       {
  703.       CifradoFinal += "+";
  704.       }
  705.  
  706. if ( TempBits6 == "111111")
  707.       {
  708.       CifradoFinal += "/";
  709.       }
  710.  
  711.  
  712.   x = 0;
  713.   TempBits6 = "";
  714.   }
  715.  
  716.   if ( z == CadenaDeBits6en6Tamanho )
  717.   {
  718.   mantenerseEnBucle = false;
  719.   }
  720.  
  721. } while ( mantenerseEnBucle == true )
  722.  
  723.  
  724. switch (ContadorNumDeCerosAnhadidos)
  725. {
  726.   case 2:
  727.   {
  728.   CifradoFinal += "=";
  729.   } break;
  730.  
  731.   case 4:
  732.   {
  733.    CifradoFinal += "==";
  734.   } break;
  735. }
  736.  
  737. document.write(CifradoFinal);
  738. alert (CifradoFinal);
  739. </js>
  740. </body>
  741. </html>
  742.  

Comentarios del código:
Los 2 switchs es parte necesaria del cifrado base64. Básicamente lo que hago es usar el operador módulo (%) para obtener el resto de dividir el tamaño del texto que se quiere cifrar entre 6 (los bits, ceros y unos, se agrupan de 6 en 6 en el cifrado base64) Como puede ser que al agrupar de 6 en 6 te queden bits sueltos, es necesario añadirle el símbolo = por cada 2bits. Con un ejemplo se ve mejor:
Si tengo los bits 1 0 0 0 1 0 1 1 y los quiero agrupar de 6 en 6. Tendré dos grupos. 100010 y 11. Lógicamente me faltan bits en el segundo grupo para tener 6 bits en ambos grupos. Entonces le añado ceros hasta tener 6 bits: 11 -> 110000
Y los simbolos igual entonces para que?
Para identificar si al número se le añadieron ceros o el número ya era así, ya que si no usamos los iguales, no podrías diferenciar cuando el texto a cifrar fue 1 0 0 0 1 0 1 1 de cuando el texo a cifrar fue 1 0 0 0 1 0 1 1 0 0 0 0.
Al no poder diferenciar tendríamos un serio problema al descifrar el cifrado y por eso se añade un igual por cada grupo de 2 bits añadidos.

Y por qué por cada 2 bits 1 igual y no por cada bit un igual? Porque solo existen 2 posibilidades. Que falten 2 bits para llegar a tener los 6 bits, o que falten 4 bits para llegar a tener los 6 bits. No tendría sentido usar 2 iguales y 4 iguales cuando podemos representar lo mismo con 1 igual y 2 iguales.

Si te parece complejo en realidad es una tontería, leete la entrada sobre el cifrado en wikipedia y lo acabarás entendiendo. Yo aprendí a implementar el cifrado usando como único recurso la wikipedia y un cifrador online psra ver si lo estaba haciendo bien.
Cuando pone case 2 en el switch del resto significa que sobraron 2 bits, por eso hay que añadirle 4 bits más para llegar a los 6.

El código dentro del bucle do while lo único que hace es añadir bits a una variable y en cuanto tiene 6 bits guarda en otra variable ese número binario pasado a caracter usando la tabla comun de base64. 000000 = A, 000001 = B, etc.
Tras obtener la cadena, vuelve a tomar los 6 siguientes bits repitiendo este proceso hasta que no queden bits que tomar.

Pueden usarse arrays para la comparación y breaks en los if para mejorar el rendimiento y reducir drásticamente las líneas del código. Pero así es más visual y fácil de entender para newbies. Lo mismo con reducir el uso de variables, etc.

Si no entendeis algo comentarlo.
1935  Comunicaciones / Redes / Re: Significado de la terminología de redes en Windows 10 en: 7 Agosto 2019, 23:20 pm
Todo lo referente a Microsoft es blanco o negro. Soporte incluido. Vuelve a preguntarle un par de veces más a ver si te atiende alguien con cerebro. O te encuentras ***** cracks que te resuelven todo al milisegundo o retards a los que les preguntas acerca de uno de sus productos y te responde con que el producto no es ni fue nunca de microsoft. Nunca los escucharás decirte que no saben lo que preguntas ni como buscarlo.

Microsoft tiene un montón de cursos gratuitos básicos de programación(entre otros) y muy de vez en cuando sacan alguno al que te puedes inscribir gratuitamente y te dan un certificado. Algunos está muy bien planteados y otros son acumulacion de información inútil para alguien interesado en un curso de programación básica. También tienen alguna app para android con cursos y esas cosas. No suelen ser tampoco muy allá, pero todo lo que puedas poner en un currículum con el nombre Microsoft en grande, aunque sea un certificado que acredite que participaste, siempre influye algo para trabar para alguien que no tiene mucha idea jajaja
1936  Foros Generales / Foro Libre / Re: ¿QUE OPINAIS DE ESTO? en: 7 Agosto 2019, 22:08 pm
Opino que está en el top de mis ataques favoritos y que la gestión de Asus sobre este tipo de problemas no está al nivel de la calidad de sus productos con respecto al cliente. Tienen constancia del ataque casi desde el año pasado, y hay que esperar meses para que las medidas lleguen de alguna forma a los clientes. Esto tipo de empresas se gastan millones en publicidad pero después deciden ensuciar su imagen por no dejar de generar unos pocos millones. Pero como se suele decir, la publicidad buena o mala siempre es buena.
1937  Foros Generales / Dudas Generales / Re: ¿Que opinais de los Hackers que se anuncian en milanuncios? SON FIABLES? en: 7 Agosto 2019, 21:51 pm
Es una estafa. Se dedicará a hacer photoshop cutres, te manda imagen del documento "modificado" y en realidad no tiene nada, solo una imagen editada. Si me pasas una foto tuya con tus datos por ejemplo, me saco una foto con mi dni en la mano, pillo tus datos y los voy escribiendo con el paint pixel por pixel en el dni teniendo como referencia la fuente que se utiliza para este tipo de documentos. Te aseguro que no te das cuenta.
Lo hacia tiempo atrás en redes sociales para trollear a amigos xD.

Nadie te va a hackear nada a menos que sea un muy buen amigo. Para cometer el delito de hackear a alguien cometen el de estafarte que total ambos son delitos y se ahorran trabajo. Desiste de esas búsquedas.
1938  Comunicaciones / Redes / Re: Las VPN pueden Espiarte en: 7 Agosto 2019, 08:10 am
Es como si alguien te llevara en la cajuela del carro y te dejara en algún lado para que nadie sepa que saliste de la casa. Esa persona sabe que saliste de la casa.
Mindblowing  :o
En busca de anonimato siempre quedará acceder a ordenadores en cibercafés y bibliotecas disfrazado de árabe en el desierto :¬¬ Obviamente es mi modus operandi para ver tobillos en secreto y robarle habas a mi abuelo en el Truco Online. Cuando se acerca alguien hago Alt+Tab a páginas de C4, citas del Coran para pasar desapercibido. (Es humor)
1939  Foros Generales / Dudas Generales / Re: duda metasploit para atacar mi pc a 30km de distancia en: 7 Agosto 2019, 07:41 am
Wow! que cantidad de cosas tiras, si es posible, aunque usualmente la probabilidad es minima y en muchos casos en esa minima posibilidad requiere trabajo especializado, por otro lado hablas mas de metodos contra servidores publicos que de pc

Puedes proveer alguna fuente de informacion que muestre la primera afimacion como valida? (wifi a 30km donde el router sea un equipo casero) porque el problema a esa distancia ya ni si quiera es la potencia, es el ruido
Define probabilidad mínima. Define trabajo especializado. Jajaja.

Acerca de las antenas esta entrada está muy guay e interesante:
http://www.elladodelmal.com/2014/09/como-construir-antenas-wifi-de-gran.html?m=1

El asunto no es conocer la ip privada sino encontrar la forma de traspasar la NAT del router.

El secreto no es en sí como vulnerar la seguridad de una maquina para conectarse a 30 kilometros sino como lograr que la victima se conecte contigo en contra de su voluntad.

Es por eso que siempre que se hacen ataques fuera de la LAN por lo general siempre se utilizan métodos de ingeniería social. Por ejemplo al inducir a la maquina victima a ingresar a una conexión tipo p2p para evitar en enmascaramiento de IP, haciendo pishing, o haciendo que ejecute un malware con puerta trasera bien encodeado.

De lo contrario veo muy dificil que el firewall o el antivirus no bloquee la conexión.
Sí, ejemGOOGLE, es muy, ejemROUTER, difícil, ejemVULN, encontrar la, ejemHTTP, manera de ,ejemWAN vulnerar un router.

De todas formas hay muy pocos router vulnerables, y los que raramente son vulnerables suelen tener solo 1 o 2 bugs sin importancia https://www.digitaltrends.com/computing/83-percent-routers-vulnerable/?amp que requieren de grandes conocimientos técnicos. A parte los exploits no son públicos https://cxsecurity.com/exploit/ y a parte en caso de hacerse públicos los parchean inmediatamente antes de que absolutamente nadie se aproveche de la vulnerabilidad https://arstechnica.com/information-technology/2018/11/a-100000-router-botnet-is-feeding-on-a-5-year-old-upnp-bug-in-broadcom-chips/?amp=1 y menos mal que no hay documentación ni software público que facilite la tarea la tarea https://pro-hackers.com/exploit-a-router-using-routersploit/

Capacidades técnicas mínimas requeridas para explotar routers masivamente:
-Lectura nivel niño de 6 años.
-Descargar un programa.
-Seguir un manual de instrucciones aunque sea por suerte.
1940  Foros Generales / Dudas Generales / Re: duda metasploit para atacar mi pc a 30km de distancia en: 7 Agosto 2019, 02:35 am
Si puedes hackear con tan solo la IP pública y sucede de forma frecuente, métete en el log del firewall del router y verás la burrada de scanneres corriendo en busqueda de vulnerabilidades, servicios y equipos vulnerables que tu firewall bloquea.

 Cómo hacerlo? Todo pasa por bugs en el router, la info que puedas obtener con la IP como bases de datos y logs de servidores que estés monitorizando, de tu propiedad o a los que ganes acceso y en los que detectes la IP pública del tatget, configuraciones horribles, acceso a uno de los servidores que utilicen la IP, equipos y dispositivos vulnerables conectados a la red, etc.

La ip local no suele servir mucho sin tener acceso a la red en la que se encuentran. Un caso concreto en la que sería una info útil es si consigues acceso a un dispositivo que utiliza un protocolo que no requiera de authentificación para modificar la configuraciòn del router, sabes que el tarjet local es un servidor que está encendido y corriendo y decidieses abrir los puertos del router a traves del protocolo hacia esa ip local para poder acceder remotamente. Obviamente es un caso extremadamente concreto e improvable, pero es un buen ejemplo para saber que toda la info que puedas recabar del objetivo podría llegar a ser útil en algún momento. Si vas sumando info poco a poco, vas aumentando las probabilidades de conseguir acceso al objetivo.

Por cierto a 30 kilómetros de distancia se puede acceder mediante una antena wi-fi. Y los ataques a router mediante red local son muchísimo más sencillos, sobretodo de usuarios normales con configuraciones y tecnologías por defecto.

Algo que debes tener en cuenta es que si atacas tu propia red, la IP pública seguramente sea dinámica y puede que tu ISP te la cambie y acabes atacando a alguien pensando que es tu red y te metas en problemas. Usa ddns o haz un script que te haga ping cada minuto para saber cual es la IP pública del equipo remoto en todo momento.

Normalmente los ataques a usuarios que hacen uso muy básico del PC se hacen mediante redes wi-fi, webs, ingenieria social, descargas de archivos infectados, cambio de dns, phishing, thrashing, device drop, infección del navegador, etc. Son ataques más sencillos y frecuentes que usar la IP publica para hacer chorrocientos scans.
Páginas: 1 ... 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 [194] 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 ... 287
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines