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 - phr4ckl0t

#1
Hey h4x0rs como la llevan? espero que bien. Me paso por acá con un pequeño problema que me tiene pensando, sucede que queria armar un pequeño entorno de desarrollo web para php+html5, pero no queria utilizar xampp ni mucho menos vagrant, etc. Así que le di la oportunidad a Docker ya que las imagenes pesan realmente poco y es bastante simple(curioso decirlo cuando tengo un problema jeje) y los contenedores son muy rapidos. El problema viene a la hora visualizar el contenido de index.php que esta en el contenedor en el directorio /app desde mi equipo host. Para configurarlo hice lo siguiente:

1. Descargué una imagen de alpine linux con php 7
    docker image pull jorge07/alpine-php

2.Creé el contenedor bindeando la carpeta donde tengo el index.php en mi host en modo lectura para el contenedor y manteniendolo corriendo en background
    docker container run -d --name miwebapp -P --mount type=bind,source=/home/phr4ckl0t/Documents/Codigo,target=/app jorge07/alpine-php

3. Para verificar el puerto random al que bindea el contenedor con mi host y mirar la IP del contenedor hice lo siguiente:
    docker container inspect miwebapp

4. Del paso 3 obtuve que la IP que era 172.17.0.2 y el puerto expuesto que era el 32774

5. En el web browser  de mi host pongo en la barra de direcciones:
    No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

El problema es que no logra conectar por lo que el navegador me tira un unable to connect al momento de visualizar el contenido de mi archivo index.php, según el tutorial en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en el terce enlace (simple web app) deberia bastar, e intentado otras cosas que he encontrado en la red como añadir el contenedor a la misma red del host con --network, he seteado los puertos manualmente con -p <host>:<container> etc..., probé con otra imagen que tuviera un apache dentro pensando que quizá era por que la que uso no tiene un web server escuchando en x puerto y el resultado es el mismo. Para asegurarme de que en realidad el archivo esta en el contenedor abro una consola con docker exec -it miwebapp /bin/sh y me desplazo hacia el directorio /app y efectivamente si está montado el contenido que comparto desde mi host.

Esta es mi docker info:

Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 3
Server Version: 17.09.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
seccomp
  Profile: default
Kernel Version: 4.13.5-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.61GiB
Name: robbie
ID: LOQC:2333:5VCJ:Z5EU:5NVM:VXRQ:3JII:XOWU:SWSO:2FR5:MCDJ:MOG5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: phr4ckl0t
Registry: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

y esta es la del container:

CONTAINER ID      IMAGE                     COMMAND             CREATED                  STATUS                   PORTS                              NAMES
bea5cc95f427        jorge07/alpine-php   "/sbin/tini -- /us..."   About a minute ago   Up About a minute   0.0.0.0:32774->9000/tcp   webapp


Cualquier ayuda es bien recibida, la agradezco demasiado. Seguiré investigando a ver si encuentro algo.
#2
Hey c0ders saludos una vez mas! paso esta vez con una pequeña duda, leyendo un libro "Java 9 recipes" me topé con un inciso que dice "Creating instaces of a class"  donde muestran brevemente un poco del patrón Factory Method, sucede que tengo una clase Player que es abstracta y de la cual heredan Forward, Goalkeeper y AllPlayer. También tengo la clase Factory que es la encargada de entregarme las instancias que necesito:

Código: java

public class Factory{

    public static Player getPlayer(String role){

        Player player;

        switch(role){
            case "Forward":
                player = new Forward();
                break;
            case "Goalkeeper":
                player = new Goalkeeper();
                break;
            default:
                player = new AllPlayer();
        }
        return player;
    }

}


En la clase main del programa yo creo una instancia de Forward haciendo su respectivo downcast, ya que Factory.getPlayer(), retorna objetos Player.

Código: java

public class Main{
    public static void main(String[] args){

        Forward delantero = (Forward) Factory.getPlayer("Forward");

        delantero.setName("Rolando")
            .setAge("24")
            .setDorsal("11")
            .setTeam("Deportivo tapita")
            .setPosition("DC");

    }
}


El problema viene a la hora de la compilación,  que dice que no encuentra el método setPosition() (clase Main linea 10), como si se tratase de la clase Player, hecho que me resulta muy curioso después de haber realizado el respectivo downcast (clase Main linea 4).

Acá el código de la clase Player y la de Forward

Código: java

public abstract class Player{
   
    private String name;
    private String age;
    private String dorsal;
    private String team;

    public Player(){
        this("", "", "", "");
    }

    public Player(String name, String age, String dorsal, String team){
        this.name = name;
        this.age = age;
        this.dorsal = dorsal;
        this.team = team;
    }

    public String getName(){
        return name;
    }

    public String getAge(){
        return age;
    }

    public String getDorsal(){
        return dorsal;
    }

    public String getTeam(){
        return team;
    }

    public Player setName(String name){
        this.name = name;
        return this;
    }

    public Player setAge(String age){
        this.age = age;
        return this;
    }

    public Player setDorsal(String dorsal){
        this.dorsal = dorsal;
        return this;
    }

    public Player setTeam(String team){
        this.team = team;
        return this;
    }

    @Override
    public String toString(){
        return String.format("Name: %s%nAge: %s%nNumber: %s%nTeam: %s%n",
            getName(), getAge(), getDorsal(), getTeam());
    }
}



Código: java

public class Forward extends Player{

    private String position; //EI, ED, DC
    private int scoredGoals;

    public Forward(){
        this("", "", "", "", "", 0);
    }

    public Forward(String name, String age, String dorsal, String team,
        String position, int scoredGoals){
            super(name, age, dorsal, team);
            this.position = position;
            this.scoredGoals = scoredGoals;
    }

    public String getPosition(){
        return position;
    }

    public int getScoredGoals(){
        return scoredGoals;
    }

    public Forward setPosition(String position){
        this.position = position;
        return this;
    }

    public Forward setSCoredGoals(int scoredGoals){
        this.scoredGoals = scoredGoals;
        return this;
    }

    @Override
    public String toString(){
        return String.format("%sPosition: %s%nScoredGoals: %d%n",
            super.toString(), getPosition(), getScoredGoals());
    }
}


Estaría de lujo un poquito de orientación con respecto a lo que sucede, son las cosas que pasan cuando se estudia solo jeje, muchas gracias de antemano.
#3
Saludos muchachos, tiempo sin pasar por aquí espero estén bien.
El día de hoy me ha surgido una pregunta con base a una frase que he leido en un libro de "Como programar en Java 10ma edición" de Deitel y Deitel, donde argumentan que no se deben implementar metodos sobreescribibles en los constructores de clase, ya que se pueden generar resultados indeseados. El punto es que si tengo una superclase cuyo constructor utiliza un metodo de instancia para validar un atributo a la hora de inicializarlo, y sobreescribo ese metodo en la subclase, el constructor de la subclase hará la llamada al constructor de la superclase, el cual usará la version sobreescrita del metodo que implementa en su cuerpo, se me ha dado por probarlo pero los resultados no son los que esperaba, de seguro no me ha quedado clara la idea, no haciendo mas esto fué lo que probé.
Código: java
public class B{
    private int a;

    public B(int a){
        setA(a);
    }

    public int getA(){
        return a;
    }

    public void setA(int a){
        this.a = 0;
    }
}


Código: java
public class A extends B{

    private int a;

    public static void main(String[] args){
        A a  = new A(5);
        System.out.println(a.getA());
    }

    public A(int a){
        super(a);
    }

    @Override
    public void setA(int a){
        this.a = 1;
    }
}


La idea era que al pasarle un argumento al constructor a la hora de instanciar a la clase A, este tomara la version sobreescrita del metodo setA() y me inicializara el atributo "a" con valor de 1, pero veo que está tomando la version de la superclase e inicializa el valor de "a" en 0, por lo que no se refleja lo que dice el libro, la verdad quiero saber como manejar esto para tener los conceptos claros, y digerir esta gota en el mar del conocimiento. Gracias de antemano.
#4
Saludos hax0rs, recien me inicio en Java y digamos que en programación en general y me topé con una pequeña duda que de seguro será facil para muchos de ustedes.

Código: java
Object myObject = new Object(); 


Se supone que al escribir la sentencia Object myObject estoy creando una refencia al objeto que posteriormente se creará con la sentencia new Object(), pero al crear la referencia(apuntador) la máquina reserva el espacio necesario para el objecto de tipo Object? o dicho espacio se reserva y seguidamente se utiliza al momento en que el compilador llega a  new Object()?

Es algo básico pero de verdad me gustaría tenerlo claro, un abrazo a todos :)
#5
Cordial saludo muchachos, he estado probando el modulo smtplib de python para un pequeño keylogger que tengo en mente, y todo de  va maravilla, he podido enviar textos y archivos adjuntos sin problema, pero hay un inconveniente, a la hora de enviar las credenciales al servidor SMTP, tengo que poner el usuario y el pass. y pues poner la contraceña y el usuario en plano no me parece correcto, he mirado la documentacion a ver si depronto acepta algun tipo de cifrado como base64 o que se yo, pero no lo mencionan, me gustaria saber si depronto alguno de ustedes conoce una forma de no hacer las credenciales legibles en el codigo y que el server la reconozca. Muchas gracias de antemano.

Código: python

USER = 'mi_usuario'
PASSWORD = 'mi_contraceña'
SMTP_SERVER = 'smtp.gmail.com'

conn = SMTP_SSL(SMTP_SERVER)
conn.set_debuglevel(1)
conn.login(USER,PASSWORD)
...
#6
Cordial salu2
He decidido reactivarme en la programación puesto que ya siento la necesidad, y he optado por retomar al poderoso c++,
y en un ejercicio de separación de interfaz-implementación de una clase he llegado a este punto:

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

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

controlador(main)
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

a lo que al parecer esta todo bien, basándome en los ejemplos del libro de Deitel y Deitel 9na edición.
Pero sucede que al intentar compilar la implementación y la clase main me salta esto...

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

el libro habla de compilar y enlazar la implementacion y la clase main, pero el compilador me dice que no hay funcion main
en la implementación por ende no deja compilar el codigo y por el otro lado a la hora de compilar el main del programa si no tengo idea
de que sucede con const, me especifican que debía ponerse tanto en la interfaz como en la implementación de las funciones que no
modificaran los atributos de la clase, por ende no entiendo a donde viene el error. Cabe destacar que el libro es de la versión 11 y según
tengo entendido c++ va por la versión 14 no se si quizá eso tenga que ver y haya cambiado algo.

Cualquier pista es bien recibida.
Gracias de antemano.
#7
Dudas y pedidos generales / [SOLUCIONADO] ARP Spoof
Septiembre 25, 2016, 09:03:21 PM
Cordial saludo estimados, sucede que he estado leyendo sobre el ARP Spoofing y entre mas leo mas dudas me entran, según entiendo que el switch(caso normal) pregunta en modo broadcast "quien tiene la IP No tienes permitido ver los links. Registrarse o Entrar a mi cuenta " y los host escuchan el mensaje pero solo responde el que tiene a IP que se necesita, mientras tanto los otros equipos también escuchan la respuesta y en caso de no tenerla registrada en su trabla ARP actualizarán su información.
Ahora la pregunta...a la hora de suplantarse una MAC como se logra engañar al resto de equipos cuando se supone que previamente debían tener registrada la MAC victima en tu tabla ARP...
Gracias de antemano.
#8
Hola muchachos una vez mas, espero estén bien.
Hoy vengo con una duda en bash sobre las funciones, sucede que estoy practicando y necesito manejar una lista de parámetros en el script.
Estoy haciendo un ejercicio que dice que al script le debo pasar un comando y el me retorna la ubicación del comando dentro de los directorios de $PATH, pero el problema es a la hora de pasarle varios parametros. Para tener una idea de como manejar el array con los comandos pasados estaba probando esto:

Código: bash
#!/bin/bash
buscar{
   vec=$@
   for i in ${vec [* ]};do
      echo $i
      done
}
buscar


A lo que me retorna esto:

Código: bash
./script uno dos ( lo que pongo yo en la terminal )

./script: línea 3: buscar{: orden no encontrada
uno
dos
./script: línea 9: error sintáctico cerca del elemento inesperado `}'
./script: línea 9: `}'

He probado poniendo function buscar () { ... , buscar(){ ... pero así ni siquiera imprime lo que yo le paso como parámetro
Una manito me sentaría muy bien jeje, disculpen las molestias.
#9
Buenas amigos, hoy vengo con una pequeña inquietud que me gustaría resolver, sucede que quiero imprimir un menú con echo:

echo -e "1) Hora y fecha \n2) Calendario del mes actual
            3) Calendario del año actual \n4) Calculadora de presicion arbitraria
            5) Lista de usuarios conectados\n6) Memora libre del sistema
            7) Carga del sistema \n8) Ocupacion de todo el sistema de ficheros
            9) Salir\n\nIntroduzca la opcion deseada>> \c "

Pero sucede que en la terminal me sale de esta manera:

1) Hora y fecha
2) Calendario del mes actual
   3) Calendario del año actual
4) Calculadora de presicion arbitraria
   5) Lista de usuarios conectados
6) Memora libre del sistema
   7) Carga del sistema
8) Ocupacion de todo el sistema de ficheros
   9) Salir

Introduzca la opcion deseada>>

Lo que intento es que todo quede alineado a la izquierda, he estado moviendo y probando pero no me sale jeje, si alguien me colaborara estaría agradecido, un abrazo.
#10
Dudas y pedidos generales / Hard Links
Septiembre 03, 2016, 08:17:50 PM
Que tal amigos, hoy vengo con una duda.
Pues resulta que vengo estudiando UNIX/Linux y pues me he encontrado con los Hard/Soft Links, el segundo lo he entendido perfectamente, ya que es un puntero al fichero que linkeamos, pero el primero no he logrado asimilarlo aun, se supone que lo que pase en uno de los archivos, pasará en el resto, sin embargo se supone también que los hard links NO son copias de un fichero, y si borro uno los otros quedan, por ende la información del sistema desaparecerá hasta cuando el ultimo de los ficheros sea eliminado.
Que son específicamente este tipo de enlace?
Agradecería una breve explicación para poder seguir creciendo en este basto mar de conocimiento.