Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - Hu3c0

#1
Se puede considerar Xss persistente en el momento que se pueden crear elementos en el DOM...?
Me explico yo puedo insertar código Javascript en cualquier página web si refresco la página , se elimina el código.
Entiendo y comprendo que para que haya persistencia debería quedar plasmado en el DOM de forma permanente
¿Estoy en lo cierto....?
Que conste que es a título informativo y sin ánimo de hacer el mal a nadie, sólo me gusta practicar y aprender practicando nada más.
A quí muestro un Xss de underc0de creo que es reflected
#2
Hola Underc0ders, llevo tiempo dándole vueltas a mi vieja cabeza de si sí de si no..!, comenzar un thread que me gustaría fuera enriquecedor para todos los que en él participaramos.

En fín no sé como enfocarlo pero me gustaría crear un grupo de aprendizaje sobre SEO, ya que estoy últimamente muy interesado y soy novato totalmente.

¿Qué os parece la idea? en este thread pueden tanto participar diseñadores como experto y novatos en el área SEO me gustaría que juntos pudieramos aportar conocimientos , técnicas, tools , ideas.


Por ejemplo voy a comenzar:

¿Si crearamos juntos una SEO-Tool que herramientas serían vitales?


Aporto mi respuesta:

Una Tool que debería llevar seria un contador de palabras para título(70 caracteres max)  y descripción ( 156 caracteres max descripción).


Otra respuesta:

Ver la indexación a través del navegador.

El viejo Hu3c0 espera sus respuestas atentamente, ojalá fuera un hilo fructífero en el cual a podamos aprender cosas nuevas.






#3
Diseño UX/UI / Retoques imagenes solicitud Stuxnet
Septiembre 20, 2017, 09:33:42 AM
Buenos días, tardes o noches el compañero Stuxnet me solicito que le hiciera unas modificaciones a una imagen.

La verdad es que no soy muy bueno con photoshop pero como todo WebMaster es una facultad que hay que tener siempre disponible para realizar cualquier modificación, retoques a imágenes para insertarlas  en nuestras web.

El compañero me solicito que modificara esta imagen:


En sus requerimientos (Elimina el tatto XSS y brute de la camiseta insertando Stuxnet)

He utilizado hippoanimator es una maravilla no necesitas tener grandes conocimientos para poder obtener resultados excelentes lo aconsejo a todo el mundo tanto expertos como inexpertos.

[1]Lo primero que hice fue quitar con la goma de borrar el tatto XSS
[2]Lo segundo que realize añadí un shape cuadrado y superpuesto a brute copiando y pegando el  codigo hexadecimal de la camiseta para eliminar la palabra brute.
[3]Lo tercero que realicé fue  añadir un Text con el nombre  Stuxnet  aplicaqué  unas dimensiones de texto y he utilizado como fuente de  texto Harabara es una fuente muy agradable a la vista y está muy de moda No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Aquí tres modelos distintos que me he tomado la libertad de hacerle:







Fin de la historia espero os haya gustado la historia  un saludo a todæs

#4
En ningún momento pretendo ofender a nadie y me encanta la nueva apariencia del Foro y siempre pienso que hay que estar en constante cambio. Como dice el refrán:"Renovarse o morir".

Pero es cansina y me aburre  la ventana modal que aparece a abrir cualquier apartado del Foro ,tarda mucho en quitarse quizás sea problema mío o no..! no  lo sé  quizás seay por mis hábitos de navegación.

Os pregunto:

¿Alguien más tiene el problema de la ventana modal?

Repito no es crítica  ni que nadie se me ofenda pero si se puede mejorar o quitar mejor  Si no me aguantaré y cuando no pueda entrar en algún post pues no lo haré.

Saludos cordiales






#5
Diseño UX/UI / La bruja de Underc0de.org
Marzo 26, 2017, 03:14:16 PM
Hola a todos no siempre uno está picando código a veces hay que salir un poco de la rutina diaria
así que hoy he decidido crear la bruja de underc0de,org  espero  os guste.

#6
En estos día que he podido descansar mentalmente he codeado este javascript
Lo he llamado JAN que es el acrónimo de Javascript Anonimous Navigator.

Como su nombre indica es para navegar anónimamente a continuación os voy a
explicar como sacarle el 100% a la naranja

Primero desbéis instalar en vuestro navegador noscript esto es vital si no lo ha
céis navegaréis a un 30% de anonimato con JAN y no funcionará bien.

Una vez tengáis instalado noscript como pluguin debéis darle permiso local recor
dar que JAN es  un javascript y si lo bloqueáis no funcionará

Os pongo una captura para darle permisos locales.

   

Segundo JAN es web responsive con lo cual se puede ejecutar en PC,Tablets ,
phones con 320 px

Os pongo unas capturas

 

   

Tercero para su buen  y correcto uso se debe de introducir
la url de esta forma No tienes permitido ver los links. Registrarse o Entrar a mi cuenta o No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
podéis experimetar con https creo que también funciona.




Cuarto la prueba de concepto:




Quinto no debéis de instalar nada sólo copiais el código
lo pegáis en un archivo y guardáis como  queráis eso sí
debéis nombrarlo con terminación .html

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Sólo decir que es made in Casa que está fabricado todo por mi css
javascript  y que espero os guste.

Si tenéis alguna duda con gusto os la responderé abrazos cordiales
otra cosa que no me hago responsable del mal uso que le den

No me dedico a nada ilegal yo lo único que me interesa es aprender
y poder conseguir una meta que tengo estipulada

#7
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta os desea unas felices fiestas navideñas y un año 2017 cargado de bienestar para todos, que se cumplan todos vuestros deseos, que la sabiduría inunde vuestro cuerpo y mente, que el aprendizaje sea el menú principal de vuestro día a día, que la salud sea vuestro mejor acompañante.

Se lo deseo a tod@s;

<script type="text/javascript">
function FelizNavidad ()
{
var a="FELIZ NAVIDAD de parte de Hu3c0";

this.getFelizNavidad= function()
{return a;}
}

var b= new FelizNavidad ;
document.write(b.getFelizNavidad);
</script>


#8
Hola estimados amigos de underc0de vengo humildemente a preguntarles si conocen cómo realiza mi siguiente  requerimiento:

Necesito encontrar un Patrón que se repite muchas veces  en un archivo de texto sin conocer como es ese Patrón mi logica me
dice, como sé que ese Patrón es mayor a 6 cifras  sería colocar el pointer en el principio del archivo,coger 6 cifras y crear un
Regex,leer con un buffer el archivo y con un matcher encontrar el pattern creado osea el Patrón.

El siguiente paso sería colocar el pointer en el segundo byte y realizar exactamente la misma operación a medida que se vayan
encontrando Patrones ingresarlos en algún  tipo de  datos tanto el Patrón encontrado como las veces que  se repite.

No sé si es correcto mi algoritmo ohh seguramente habrán mejores formas de reaiizarlo evitando el consumo de recursos tanto
a  nivel  pc como en tiempo.

Si tienen conocimiento sobre lo que quiero realizar y pueden aportar algo de luz es bienvenidad $_gracias => por leer.
#9
Como el título indica estoy buscando un hosting para probar mis Java Web
a fecha actual el único que he probado es No tienes permitido ver los links. Registrarse o Entrar a mi cuenta este servicio te permite
probar con versiones 7 del jdk y del 6 jdk.
El problema es que a los 15 días se termina el plazo free si alguien tiene
conocimiento de alguno gratuito se lo agradecería eternamente.
Gracias compañeros
#10
Hola  tengo una duda. El otro día buscando un e-mail por WAN llegué hasta pastebin y mi sorpresa era
que había una lista de más de 300 correos electrónicos y entre ellos se encontraba  el mío.

¿Qué sentido tiene esto?

Puede ser que hayan defaceado esa Web en concreto y que hayan expuesto los  correos como trofeos..?

No sé no comprendo que sentido tiene esa lista de e-mails en pastebin, si alquien sabe el porqué o tiene
idea  le agradecería que comentara.

En esa lista de  e-mails he visto que hay algunos usuarios de aquí del Foro no quiero exponerlas porque
es evidente que pueden ser usadas para spammearlas.

A mí me dá lo mismo que este mi e-mail  en esa lista ,ya que es  correo basura ...!
#11
Bueno seguro que mucha gente ya lo sabe, pero este post está hecho para el que no lo  sabe.

¿Tenéis una cuenta  Gmail?

¿Quieres saber hasta dónde  guardan sobre tus hábitos de navegación?

Pues si ambas  preguntas  tienen como respuesta  ¡SI! entra aquí y lo comprobarás con tus propios ojos.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Yo lo que me deja con intriga es, esto es lo que sabemos que guardan de nosotros pero ¿Cuanto es lo que
no sabemos?

Salu2 community


#12
Base de Datos / Videos muy buenos sobre PL/SQL
Agosto 22, 2016, 07:35:06 PM
Como breve resumen PL/SQL  es un procedure language o un lenguaje de procecimientos  por bloques que a los aprendices como yo...! sobre gestión de base de datos nos lleva un poquitín de cabeza, jajaja ,así es que aporto 4 videos  de extraordinaria calidad didáctica de una hora aproximadamente de duración.

Una vez digieras  los cuatro videos comprenderás como crear procedimientos , funciones , triggers usando la sintaxis de PL/SQL , espero de verdad de corazón que os sirva de mucho como para mi lo han sido.

Cabe decir que se han de tener conocimientos DML(Date Manage Language) DDL (Date Data Language) DCL (Date Control Language )  o dicho en cristiano se deben de tener conocimientos sobre crear tablas, consultas Select,saber hacer Insert,update,delete para poder llevar a cabo este mini curso de PL/SQL con éxito.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Los Créditos son para ese extraordinario profesor que dedico su tiempo en la elaboración de los videos Pedro Camacho para nuestro deleite.

Espero que os guste y es mi pequeñito grano de arena para este Foro que quiero tanto y del que siempre me llevo un buen sabor de  boca.








#13
Hola estimados amigos de Underc0de estoy buscando información sobre como obtener un dump de memoria en Linux, en el camino de mi investigación privada he llegado hasta github LIME pero no he encontrado ningún tutorial de instalación.

Si alquien tiene conocimiento sobre el tema de esta u otra forma es decir como obtener el dump de memoria se lo agradecería, si se preguntan el porqué quiero el dump es porque estoy leyendo sobre volatility y quiero hacer mis experimentos para ello necesito obtener un archivo .raw  para posteriormente analizarlo.

Gracias de antemano  ( ͡° ͜ʖ ͡°)
#14
Java / [VIDEOTUTORIAL] Completo Curso de Java desde 0
Diciembre 27, 2015, 08:53:34 AM
Hola estimados amigos de Underc0de quiero aportar este excelente curso de java desde cero elaborado por "píldorasinformaticas" para todo aquel que quiera introducirse en este bonito mundo de la OOP.
Para mí es un curso extraordinariamente bien elaborado para todo tipo de público y de cualquier nivel cultural en este curso se explican:

Instalación de Eclipse y primeros pasos con el IDE.
Tipo de datos , variables
Operadores, operadores lógicos.
Bucles for , while, do while, switch, etc
Métodos estáticos.
Creación de Objetos y comprendiendo a fondo lo que son los Objetos.
Comprendiendo package  y estructura de un proyecto java
Aprenderéis a usar las Apis de oracle desde su página oficial.
Y  mucho mucho más.

Espero les sea de gran ayuda en sus caminos hacia el conocimiento y espero disfruten como lo estoy haciendo yo en este momento de mi vida.



créditos:pildorasinformaticas

#15
Java / Data image base64 [source] java
Diciembre 20, 2015, 08:09:17 PM
Hola comunidad últimamente dispongo de poco tiempo por los estudios, pero después de finalizar los exámenes he realizado este source en java y quiero compartirlo con ustedes.
Este código lo que hace básicamente en coger el Path de una imagen(jpeg, gif, png ) y lo encodea a base64 dando como resultado el siguiente código html.
Código: php
<html><body><img src="data:image/png;base64,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"></body></html>


Código: java

package file_uri_base;


import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Base64;

import java.util.Scanner;



public class File_Uri_Base {

   
    public static void main(String[] args) throws FileNotFoundException, IOException {
   
        Scanner sc = new Scanner(System.in);
        System.out.println("Introduzca el Path de la imagen por favor...");
        String inkey= sc.nextLine();
        File fl= new File (inkey);
        FileInputStream fis = new FileInputStream(fl);
        byte [] getbyte=JavaUtils.getBytesFromStream(fis);
        String encoded = Base64.getEncoder().encodeToString(getbyte);
        String outfile="<html><body><img src=\""+"data:image/png;base64,"+encoded+"\"></body></html>";
               
        File f = new File("//home//root/Download//image.html");
        try (FileWriter fw = new FileWriter(f)) {
            fw.write(outfile);
            fw.flush();
        }
           }
   
}


La función básica de este source es poder colocar nuestras imágenes en un html sin necesidad de linkear a enlaces externos,espero sea de su agrado.

Si lo quieren probar desde consolas introduzcan el Path correctamente con los dobles slash:

//home//root//Download//image.png

Saludos y Feliz Navidad a todo el Foro No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#16
Hola agradecería que me mostraran algún tutorial bien explicado sobre la normalización de una BD, hasta el momento comprendo hasta 1FN, la normalización se realiza para evitar la redundancia  y entre otras cosas hacer más fluida una BD.

Cuando se hace 1FN se eliminan aquellas columnas que producen la repetición de los datos creando una nueva tabla sin perder su referencia, hasta aquí todo bien pero 2FN y 3FN de momento salen fuera de mi comprensión por más que me he leído el texto.

En esta ocasión busco esas veces que alguien te lo explica de una forma sencilla sin tantos tecnicismos.
#17
Hola a todo el foro en esta  oportunidad tengo el gusto de compartir con todos ustedes mi interpretación del código que compartió Fudmario
de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta bypass.
Aquí aporto el source por si alguno quiere estudiarlo
Código: java


package adf_lydecode;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* @author Design<[email protected]>
*/
public class Adf_lyDecode {

    public static void main(String[] args) throws IOException {
        String cleanResponse;
        StringBuilder sb = new StringBuilder();
        StringBuilder sb1 = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        System.out.println("Give adf.ly url....");
        String url=sc.next();
       URL url1 = new URL(url);
       BufferedReader in = new BufferedReader(new InputStreamReader(url1.openStream()));
       String inputLine;
       StringBuffer response = new StringBuffer();

      while ((inputLine = in.readLine()) != null) {
      response.append(inputLine + "\n");
}

in.close();

      Pattern p = Pattern.compile("var ysmm = \'(.+?)\';");
        Matcher m = p.matcher(response.toString()); 


while( m.find() )
{   cleanResponse=m.group(1);
    System.out.println(cleanResponse+" Tiene "+cleanResponse.length());
   
    for (int i=0;i < cleanResponse.length();i+=2){
    sb.append(cleanResponse.substring(i,i+1));}
    System.out.println(sb.toString());
   
    for(int b=cleanResponse.length()-1;b>=0;b-=2){
    sb1.append(cleanResponse.charAt(b));}
    System.out.println(sb1.toString());
    System.out.println(sb.toString().concat(sb1.toString()));
    String bytesEncoded=sb.toString().concat(sb1.toString());
    byte[] valueDecoded= Base64.decode(bytesEncoded );
    System.out.println(new String (valueDecoded).substring(2));
   
  } 
   
     
       
    }
   
}


Aquí os pongo como me ha quedado compilado



Y Aquí por si alguien lo quiere desacargar ya compilado y totalmente funcional.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Espero que os guste en cuanto termine mis estudios os terminaré un programa que he tenido que dejar a medio terminar @Saludos
#18
Algo me está entorpeciendo en mi avance será una chorrada pero no doy con lo que es intentaré ser lo más explicito que pueda.

Utilizo Jsoup para extraer un contenido de una api en su retorno :

Código: java

dochtml =  Jsoup.parse(new URL(entradahtml).openStream(), "ISO-8859-1", entradahtml);
         
    Elements inhtml= dochtml.select("body");
    String cadenaatratar = inhtml.text();
    System.out.println(cadenaatratar.substring(3));
     System.out.println(inhtml.text());


Este código en netbeans me funciona a la perfección me extrae  del body el contenido que es un String y luego me lo muestra por consola.

Pues bien cuando coloco el código en android Studio a través de log.d  y debugeando el retorno es un String ilegible, llevo casi dos semanas estancado ¿Qué es lo que no veo o funciona en android? Debería pobrar con ansi  o unicode.

Dios quiera que me puedan mostrar el camino o hacerme ver un hilo por donde investigar porque ya no se por donde tirar como pueden apreciar lo que hago es parsear la html con openStream a un formato Iso y en netbeans me lo hace bien pero en android no me parsea.

Espero me comprendan o que alguien  este en onda con mi pregunta, gracias.


#19
Galería / Mi aplicación Android [Design]
Septiembre 13, 2015, 06:37:07 PM
Bueno gracias a mi estimado amigo graphix por haberme introducido en el mundo android ya estoy viendo el final de mi aplicación.
Os presento los diseños que he hecho para la aplicación, tengo ya finalizados los códigos para obtención de la ip y para su geolocalización, me queda crear una nueva Activity WebView en donde implementaré un googlemap para la interacción del usuario con los datos obtenidos de latitud ,longitud,espero poder terminarlo pronto y que no me den muchos problemas los continuos errores de android, ya que son un autentico castigo.








#20
Galería / Temas para la apk de underc0de
Agosto 31, 2015, 09:39:46 AM
Buenas estimados amigos de underc0de, os expongo tres .png elaborados por mí .Estos temas los voy a utilizar en una apk android que haré para underc0de con motivo de mi agradecimiento a este Foro.
El tema underdroid ira en un activity con información de la versión, los otros dos son launcher que he creado para la aplicación y es aquí donde os pido que me digáis cual os gusta para colocarlo como icon_launcher.





#21
Java / WebMasterHelper v_1.0 code by Hu3c0
Julio 04, 2015, 12:56:50 PM
Hola compañeros de Underc0de tengo el gusto de presentaros mi proyecto WebMasterHelper en su versión 1.0, con esta tool prentendo contribuir a esta comunidad que me ha acogido y formar parte activa de ella.

¿Qué es WebMasterTool y para que sirve?

WebMaster está diseñado para ayudar a los diseñadores gráficos y los WebMaster a acceder a recursos online gratuitos tipo (Css,javascript,Sonidos,iconos,etc).
De esta manera si estás desarrollando una aplicación tan sólo con dos clicks accedes de forma rápida a ellos evitando el memorizar,encontrar la url , abrir el navegador y pegar.
Este proyecto en sí no tiene una código java complejo , la complejidad de este proyecto ha sido la recolección de url y el diseño del proyecto, ya que he querido salirme de los standar de java personalizandolos a mi gusto.

Bueno sin más preámbulos aquí os muestro una captura :



Cabe decir que este proyecto está hecho para la comunidad No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, es de libre uso( podéis compartirlo si es de vuestro agrado respetando los créditos).

En el propio proyecto se encuentra un how to use, si alquien tiene alguna duda de como usarlo con todo el gusto del mundo le responderé .

Se abre el jform  principal y se selecciona los iconos a usar se pueden minimizar, una vez seleccionados se oculta el jform principal dando click en hide,
después se pueden ir abriéndol los jform secundarios  a medida que hagan falta

Espero que os guste y seguiré creando proyectos nuevos para poder seguir aprendiendo , evolucionando en este bonito mundo de la programación y doy las gracias a Antrax por haber compartido los enlaces

Descarga:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Password del rar:Blackdrake
#22
Hola estimados amigos de Underc0de, llevaba más de 8 meses sin programar nada en Java y ya saben ustedes lo que pasa !!.

He decidido hacer una Tool en java para No tienes permitido ver los links. Registrarse o Entrar a mi cuenta , su función es ayudar a los WebMaster y diseñadores gráficos haciéndole algo más fácil su tarea, básicamente he hecho una recolección de urls muy buenas (CSS,Javascript,ICO converters,Sounds,Html,Banners,etc).

Su funcionamiento básico es el siguiente:
Dirigir al webMaster o disenador  a las páginas adecuadas sin tener que hacer un copy paste, sin más preámbulos aquí les muestro una captura de la Tool , me que da mucho trabajo por realizar ya que lleva mucha elaboración las interfaces, de momento he terminado la primera fase de imagenes



Con  esta Tool podrán coseguir las imágenes, CSS,Sonidos,Javascript,etc de forma muy sencilla espero sea de su agrado, en cuanto la termine la compartiré,gracias por leerme
#23
Galería / Nuevo Diseño Intro Underc0de
Junio 25, 2015, 02:43:23 PM
Aquí les muestro otro diseño todo hecho con recursos online sin programas. espero sea de sus agrado, gracias por sus comentarios son los que nos hacen evolucionar

#24
Galería / Nuevo Diseño en Gif Underc0de.org
Junio 23, 2015, 07:30:55 PM
#25
Galería / Dedicado a la Comunidad.
Junio 21, 2015, 05:11:00 AM
Hola como te ha gustado  tengo el gusto de mostrarte como quedaría en video y te lo voy a mostrar de una forma muy peculiar

Te lo muestro en código html  copia el código pégalo y guárdalo con extensión html, después ejecútalo te va a encantar garantizado  porque está guapísimo.

Código: html5
<html>
<head>
<title>Underc0de IASTM</title>
</head>
<body>
<video src="http://www22.online-convert.com/es/descarga-fichero/8335aa1553971417551ea5a81c3aa7b4/converted-6121b6a5.mp4" poster="videotest.jpg" width="500" autoplay loop controls></video>

</video>
</body>
</html>




Aquí pongo el video de cómo ha quedado


Luego me cuentas hermano si te ha gustado o no!!! ;)
#26
Galería / Underc0de imagenes variadas de prueba
Junio 18, 2015, 05:45:44 PM
Hola amigos todo está en la Red de Redes es cuestión de saber llegar al sitio y utilizarlo, me encontré con un sitio interesante y utilicé sus recursos, espero que os guste.

Tengo que decir que a las imagenes que salen chicas les  podía haber colocado cualquier imagen pero como estaba de pruebas pues las dejé  default.

























#27
Zona Webmaster / KompoZer Portable Rev 3 0.7.10
Junio 18, 2015, 02:12:57 PM


Versión para llevar de KompoZer, un editor visual muy similar a Nvu

    Gratis (GPL)
    8/10
    Visuales WYSIWYG



Crea tu propia web con KompoZer, un editor HTML del tipo WYSIWYG ("lo que ves es lo que obtendrás"), es decir, un editor visual que te ayudará a publicar en web lo mismo que tú has creado en el editor.

Cuenta con interesantes herramientas de depuración, de gestión de estilos CSS y publicación automática a tu FTP.

Se le considera como una versión no oficial y libre de errores de Nvu (otro editor HTML de reconocido prestigio).

Features


Idioma:
    Inglés
Tamaño:
    7,4 MB

S.O.:
    Windows 95, Windows 98, Windows 98 SE, Windows ME, Windows 2000, Windows NT, Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8
Categoría:
    Editores > Visuales WYSIWYG

Descarga

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#28
Hola estimados compañeros, tengo una duda que me lleva tiempo circulando por mi mente y es la siguiente:
Yo tendo un Webpage de prueba en el que he metido dentro de un iframe una url externa, ¿Esto puede suponer una vulnerabilidad para mi Web?, me gustaría que comentaran y me dijeran si es vulnerable que medidas puedo tomar al respecto.
Gracias
#29
No sé si será descabellado lo que pregunto y de echo antes de preguntar he intentado de buscar, voy a ser lo más conciso posible en mi pregunta.
Si yo tengo un código html en un archivo .txt albergado en un host.
¿Es posible con javascript leer ese .txt y cargarlo como html en otro servidor?
Si la respuesta es sí serías tan amable de mostrarme el código javascript para estudiarlo y comprenderlo como funciona.
De antemano gracias
#30
Bugs y Exploits / Página para buscar exploits
Febrero 24, 2015, 04:30:48 PM
Hola compañeros de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, tengo el gusto de compartir esta página que de seguro alguno de ustedes ya conocerá.
Ponéis en el textbox la busqueda a realizar y os mostrará los exploits para esa determinada busqueda,ejemplo ponéis Android y al rato os muestra varios resultados.
Es un txt explicando la vulnerabilidad y si lo descargáis  veréis en su contenido al final del txt el exploit en su lenguaje correspondiente cortar y paste y a jugarrrrrrrrrr!.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (Sitio caido)

Espero sea de su agrado saludos
#31
Java / Identidad Falsa
Febrero 15, 2015, 06:33:24 PM
Hola compañeros de Underc0de, os presento un programa que he hecho en java para generar datos falsos, en realidad extrae los datos de una página web que los genera.

Recién he estado estudiando esta librería interesante No tienes permitido ver los links. Registrarse o Entrar a mi cuenta , bueno me puse a estudiarla y que mejor manera de estudiar una librería, que es haciendo un programa con ella.

Aquí os pongo el código porque a mí me gusta leer código para aprender y ver nuevas cosas:


Código: java
package identity_fake;

import java.awt.Color;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import javax.swing.JOptionPane;

/**
*
* @author Designer
*/
public class Identity_Fake extends javax.swing.JFrame {
    private static String pais=null;
    private static String sexo=null;
    private static int edad=18;
   
    public Identity_Fake() {
        initComponents();
        setLocationRelativeTo(null);
        setTitle("Fake identity Code by_Designer");
        getContentPane().setBackground(Color.black);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jComboBoxPaises = new javax.swing.JComboBox();
        jComboBoxSexo = new javax.swing.JComboBox();
        jSliderEdad = new javax.swing.JSlider();
        jTextFieldEdad = new javax.swing.JTextField();
        jButtonCrearId = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextAreaRecibido = new javax.swing.JTextArea();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setFocusable(false);
        setFocusableWindowState(false);
        setUndecorated(true);
        setResizable(false);

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/Tituloidentity.PNG"))); // NOI18N

        jButton1.setBackground(java.awt.Color.lightGray);
        jButton1.setText("X");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });

        jComboBoxPaises.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Alemania", "Argentina", "Australia", "Bolivia", "Belice", "Brasil", "Canada", "Colombia", "Costa Rica", "Chile", "Cuba", "Ecuador", "El Salvador", "España", "Estados Unidos", "Francia", "Guatemala", "Haiti", "Honduras", "Holanda", "Inglaterra", "Mexico", "Nicaragua", "Nueva Zelanda", "Panama", "Paraguay", "Peru", "Puerto Rico", "Rep.Dominicana", "Reino Unido", "Uruguay", "Venezuela", " " }));
        jComboBoxPaises.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxPaisesActionPerformed(evt);
            }
        });

        jComboBoxSexo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Masculino", "Femenino" }));
        jComboBoxSexo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxSexoActionPerformed(evt);
            }
        });

        jSliderEdad.setMajorTickSpacing(10);
        jSliderEdad.setMaximum(99);
        jSliderEdad.setMinimum(18);
        jSliderEdad.setPaintTicks(true);
        jSliderEdad.setPaintTrack(false);
        jSliderEdad.setValue(33);
        jSliderEdad.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jSliderEdadStateChanged(evt);
            }
        });

        jTextFieldEdad.setBackground(new java.awt.Color(183, 245, 248));
        jTextFieldEdad.setText("Edad=33");
        jTextFieldEdad.setOpaque(false);

        jButtonCrearId.setText("Crear Identidad");
        jButtonCrearId.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCrearIdActionPerformed(evt);
            }
        });

        jTextAreaRecibido.setColumns(20);
        jTextAreaRecibido.setRows(5);
        jTextAreaRecibido.setWrapStyleWord(true);
        jTextAreaRecibido.setOpaque(false);
        jScrollPane1.setViewportView(jTextAreaRecibido);

        jButton2.setText("Guardar en .txt");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("about");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jScrollPane1)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jComboBoxPaises, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(28, 28, 28)
                        .addComponent(jComboBoxSexo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(26, 26, 26)
                        .addComponent(jSliderEdad, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(55, 55, 55)
                        .addComponent(jTextFieldEdad, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButtonCrearId, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton1)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 36, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jSliderEdad, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jComboBoxPaises)
                            .addComponent(jComboBoxSexo)))
                    .addComponent(jTextFieldEdad, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(78, 78, 78)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButtonCrearId)
                    .addComponent(jButton2)
                    .addComponent(jButton3))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                       

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                     
        System.exit(0);
    }                                     

    private void jComboBoxPaisesActionPerformed(java.awt.event.ActionEvent evt) {                                               
         this.pais=jComboBoxPaises.getSelectedItem().toString();
         
         
    }                                               

    private void jSliderEdadStateChanged(javax.swing.event.ChangeEvent evt) {                                         
        jTextFieldEdad.setText("Edad ="+jSliderEdad.getValue());
        this.edad=jSliderEdad.getValue();
       
       
       
    }                                       

    private void jComboBoxSexoActionPerformed(java.awt.event.ActionEvent evt) {                                             
          this.sexo=jComboBoxSexo.getSelectedItem().toString();
         
    }                                             

    private void jButtonCrearIdActionPerformed(java.awt.event.ActionEvent evt) {                                               
        StringBuffer aknew = new StringBuffer();
        TransferDateToUrl tdurl = new TransferDateToUrl();
        aknew=tdurl.Retorno(pais, sexo, pais);
        jTextAreaRecibido.setText(String.valueOf(aknew.toString()));
       
               
   
   
         JOptionPane.showMessageDialog
        (null,"Okey you've got....!"
                ,"Información",JOptionPane.INFORMATION_MESSAGE);
       
       
    }                                             

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        File salida = new File(".");
        String rdnName= Long.toHexString(System.currentTimeMillis());
   
        BufferedWriter bw = null;
        try{
            String nameexit = salida.getAbsolutePath();
            bw =new BufferedWriter(new FileWriter(nameexit+"\\"+rdnName+".txt"));
            bw.write(jTextAreaRecibido.getText());
            bw.close();
        }
        catch (Exception e2){}
        jTextAreaRecibido.setText("");
        JOptionPane.showMessageDialog
        (null,"Okey you can do a new one...!"
                ,"Ready",JOptionPane.INFORMATION_MESSAGE);
    }                                       

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       this.setVisible(false);
       About openform =new About();
       openform.setVisible(true);
    }                                       

    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Identity_Fake.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Identity_Fake.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Identity_Fake.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Identity_Fake.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

       
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Identity_Fake().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButtonCrearId;
    private javax.swing.JComboBox jComboBoxPaises;
    private javax.swing.JComboBox jComboBoxSexo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSlider jSliderEdad;
    private javax.swing.JTextArea jTextAreaRecibido;
    private javax.swing.JTextField jTextFieldEdad;
    // End of variables declaration                   
}


Código: java
package identity_fake;

/**
*
* @author Designer
*/
import java.io.File;
import javax.swing.JOptionPane;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class TransferDateToUrl {
    private StringBuffer sB= new StringBuffer();
    TransferDateToUrl(){}
   
    public StringBuffer Retorno(String pais,String sexo,String edad){
     String url="http://www.datafakegenerator.com/generador.php";
        Document document= null;
        try{
          document=  Jsoup.connect(url)
                  .userAgent("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:2.0b10) Gecko/20110126 Firefox/4.0b10")
                  .data("pais",pais,"sexo",sexo,"de",edad,"hasta",edad,"generar","Generar")
                  .cookie("auth","token")
                  .timeout(4000)
                  .post()
                  ;
         
          int intfinal=41;
          for (int i =13;i<intfinal;i++){
           Element tr = document.select("tr ").get(i);
          Elements td =tr.select("td");
        sB.append(td.text());
         
         
          }
         
        }
        catch (Exception e){
         JOptionPane.showMessageDialog
        (null,"Okey your file was create with exit....!\n"
                +"Use by your Own risk && be god boy...!"
               ,"Información",JOptionPane.INFORMATION_MESSAGE);
        }
     
        return this.sB;
       
    }
}





#32
Java / Un simple file to hex string [source]
Febrero 10, 2015, 09:31:30 AM
En primer lugar gracias por arreglarme mi post anterior Chequino, en segundo  quiero compartir este source de un simple File to hexstring, espero sirva de ayuda a gente que quiere aprender como lo hago yo todos los dias de mi vida.

Quiero y tengo en mente, pero necesito tener tiempo libre, hacer un analizador uploadfile:
Consiste en crear un javaweb proyecto con un bonito index.jsp que será el uploader a través de getter setter quiero que analize el archivo y si va metido dentro de él código .php, o lo que es lo mismo un shell.php, deniege el upload y redireccione a un html bonito.

Sin más parafernalia este es mi código espero sea de vuestro agrado.

Código: java
package @huec0designer;

/**
     __  __     _____      ____     ____   ______          __         
   / / / /_  _|__  /_____/ __ \   / / /  / ____/___  ____/ /__  _____
  / /_/ / / / //_ </ ___/ / / /  / / /  / /   / __ \/ __  / _ \/ ___/
/ __  / /_/ /__/ / /__/ /_/ /  / / /  / /___/ /_/ / /_/ /  __/ /   
/_/ /_/\__,_/____/\___/\____/  / / /   \____/\____/\__,_/\___/_/     
                              /_/_/                               
*/
import java.io.*;
import java.util.Scanner;


public class EjercicioFileReaderFileWriteenHexadecimal {
    public static void main (String []args) throws FileNotFoundException, IOException{
       
Scanner sc1= new Scanner(System.in);
        FileReader flrd=null;
        FileWriter flwr=null;
        String putinHex=null;
        int caracterin;
        int caraterout;
        int contador;
    System.out.println("Bienvenidoa File to StringHex  code by_Hu3c0");
    System.out.println("Introduzca la ruta completa de su archivo..! ");
    String patharchivo=sc1.nextLine();
    String patharchivosalida=System.getenv("TEMP");
    String pathfinal=patharchivosalida.concat("\\Stringhexout.txt");
    flrd= new FileReader(patharchivo);
    flwr= new FileWriter(pathfinal);
   caracterin=flrd.read();
    try{
        while (caracterin != -1){
           
            putinHex="0x"+Integer.toHexString(caracterin)+", ";
            contador=putinHex.length();
                for (int i =0;i<contador;i++){
                char chrnuevo= putinHex.charAt(i);
                flwr.write(chrnuevo);
            }
            caracterin=flrd.read();
            }
         }
          catch(IOException  e){
    System.out.println("Something go wrong...!");}
    finally {
    System.out.println("Okey your file was create in %TEMP% folder....!")
     flwr.close();
        flrd.close();}
   
   
    }   
   
   
}


#33
Hola compañeros, podría alguien explicarme o mostrarme algún tutorial como funciona una Botnet.He buscado por internet y siempre he recibido los mismos resultados configuraciones de Botnet.

Que diferencias existen entre un Rat y una Botnet?

Digamoslo asi lo que recibe la señal del server.exe es la página Web Botnet y desde ahi se controlan los remotos?.

Cómo se infecta con un Bot? al estilo tradicional con programas infectados, infectando a través de url, como?.

Cómo realiza el spread?, perdonarme es solo por pura información nada más me gusta informarme de todo y aprender.

No logró comprender su funcionamiento por más que lo he buscado, Gracias comunidad por vuestro apoyo y ayuda.
#34
Hola comunidad, sé que mis preguntas son tontas, pero estoy empty al respecto:
Mi primera pregunta es tengo un form que introduce datos varios de usuarios, en el action pongo parabd.php,
entonces en este php para comunicarse con mi bd tiene como datos:
El nombre de la Bd

User y password para interaccionar con la BD.
Si un usuario lee el código de mi web, puede ver el action="parabd.php" , si este usuario se hace con un wget consigue  este php, entonces tiene los datos de BD, user y password. :-[

Como hago para que no se vean estos datos o como lo hacéis vosotros , por favor darme un poco de luz, estoy empezando en esto, y me gustaría estar protegido,gracias.

#35
Dudas y pedidos generales / Dudas sobre Apis
Noviembre 16, 2014, 05:57:07 PM
Hola amigos de Underc0de, tengo una duda sobre el termino que se usa a veces, por ejemplo, he visto que cuando se hace un programa tipo scan de malware.
Veo que se usa el termino "utiliza las apis de scan4you" o tal Api, entonces esta es mi duda, como puedo saber como utilizarlas o como conseguirlas?

#36
Hi underc0de, vengo con esta pregunta y es que me trae de cabeza, he intentado instalar la distro de kali de su pagina oficial.
El problema lo tengo por dos vertientes, la primera es.
Cuando llego a la parte que me detecta las interfaces de red, cuando le meto el essid , la password de mi red wifi, etc, entra en un bucle infinito, vuelve otra vez a hacerme las mismas preguntas sobre essid , passwd wifi.
Si apreto ESC, entro al menu de instalación y finaliza instalando kali  en el  disco.
Pero se queda congelado no me deja entrar a aplicaciones en networks no me detecta nada, no me deja abrir bash, no sé ya lo que hacer..
Sé que antrax tiene un Blog y estuve buscando info pero como os digo no he podido instalarlo.
Tambien creo que tengo problemas en el disco duro, existe algo para poder repararlo ya que tiene una arquitectura x64 pero siempre que descargo iso x64 me dice fallo en el disco duro.

Gracias de antemano
#37
Tengo un proyecto java, he creado un nuevo package llamado resources, en el cual tengo un archivo exe llamado JFS.exe.

Estoy intentando de que una vez compilado, cuando ejecute el .jar, encuentre el path dentro del archivo jar.

URL dir_url = ClassLoader.getSystemResource("/resources/JFS.exe");
File dir = new File(dir_url.toURI());

Sin compilar el archivo .jar si me encuentra JFS.exe, pero una vez compilo el proyecto y ejecuto el .jar, no lo encuentra el archivo.exe.

Espero que me entiendan.
#38
Hola amigos Underc0de podria alguien decirme por donde puedo o como aprender a utilizar el método post. submit.
Quiero crear una aplicación java webproxy, su función es utilizando un random escoge un webproxy ,sequidamente quiero que abra la url hasta aqui todo bien.
Pero me quedo estancado a la hora de interrelaccionarme con el form de la web, a la cual le quiero poner esto
http://www.google.fr  y que aplique el submit a traves del metodo post.
Le pido ayuda porque estoy aprendiendo y no se por donde investigar o si tienen ustedes algun ejemplo de source  para poder estudiarlo.
Espero que me hayan comprendido.
#39
Hola amigos,estoy en una situación en la que he comprendido, OOP (programación orientada a objetos) en concreto java.
Comprendo la utilización de:
Variables,metodos,Objectos,...etc.
Pero se que java tiene unas librerias ya hechas y me gustaria como saber cuando usarlas y como aprender de ellas,
me explico para la generación de un("servidor , cliente "), se tiene que utilizar cierta libreria y crear objetos de esas librerias
Por donde debo continuar mi aprendizaje de antemano gracias, el que no sabe es como el que no ve.
#40
Bueno no se si esta bien colocado aqui, pero, les doy mi mas enhorabuena a la comunidad undercode por todos sus contenidos, y al esfuerzo que ello conlleva.
La verdad es que os visito poco pero aqui hay calidad de sobra para aprender y por eso os muestro mi agradecimiento porque el conocimiento no tiene precio, y aqui se ofrece de manera desinteresada
Sin mas preambulos muchisimas gracias por ofrecer vuestros conocimientos