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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  Programación / Desarrollo Web / Programacion de un foro en: 15 Marzo 2017, 23:51 pm
hola que tal. lo que sucede es que estos dias se me ha dado por experimentar un poco con el desarrollo web. vengo de c/c++ y la verdad nunca me gusto el dise;o, asi que es lo que menos atencion le pongo. me estoy centrando en la programacion.

estoy programando un foro en php usando la base de datos mysql. no tengo problemas con la programacion ni el dise;o.

mi unica duda es que sospecho que la forma en la que estoy programando todo no es la manera correcta, o la indicada.

en un programa en C por ejemplo, lo organizo en varios ficheros fuente y de cabecera, que despues se compilan en un solo ejecutable.

en el caso del foro, solo tengo 3 archivos: index.php - estilo.css - config.php

en config.php tengo definidas ciertas variables como el nombre del foro, el nombre de los rangos, los datos de la conexion a mysql.

en estilo.css, bueno creo que es mas que obvio, tengo definidos todos los estilos de las clases y demas de los elementos html que hay en el archivo index.php

aca se viene lo que creo poco eficiente:

en index.php, tengo una parte fija que siempre se mostrara al usuario, esto incluye el header, el menu, el formulario de inicio de sesion (si es que no esta logueado) y el footer.

en el "medio digamos" es donde se pone el contenido variable.

ahi tengo una serie de if/elseif que lo que hacen es comparar el valor de la variable $_GET['accion'] para mostrar tal o cual contenido, segun el valor del parametro.
si ese parametro no esta seteado, se muestra la pagina principal.

esta idea la tome de SMF, no creo que sea una mala practica, pero lo que sucede es que TODO el contenido del foro, es decir, todas las posibles paginas se encuentran en el archivo index.php
incluso el formulario de registro.

la pregunta es, de que manera podria lograr "separar" todo el codigo en diferentes archivos php, asi por ejemplo, en el caso de que el parametro accion sea "perfil", se ejecute el codigo del archivo "perfil.php", pero si el usuario ingresa directamente a perfil.php le de error 404?
supongo que cambiando los permisos de ese archivo seria suficiente para que sea inaccesible desde afuera.

para ejecutar el codigo, bastaria con un include('perfil.php') y despues ejecutar una funcion dentro de ese archivo que se encargue de realizar las consultas necesarias a la db y mostrar el contenido html generado en el medio de la pagina entre el header y el footer?

gracias.


PD: les dejo una imagen de la home, a ver que opinan sobre el dise;o: (el header es una imagen al azar que venia con la libreria alpng)






2  Informática / Hardware / Problemas con laptop en: 10 Marzo 2017, 22:59 pm
la cuestion es que mi pc ultimamente esta consumiendo mucho CPU, o eso es lo que yo creo.
tanto en windows como en linux (probe varias distros, incluso booteando desde usb) hay momentos en los que el uso de CPU llega al 100%. siempre se soluciona cerrando algun proceso.
lo que me llama la atencion es el ruido que hace la maquina, cuando la compre era bien silenciosa, ahora se escucha el cooler trabajando como exigido.

incluso cuando entro al boot menu de la bios el cooler comienza a hacer mucho ruido como si la maquina estuviera trabajando a todo vapor.

la verdad no entiendo nada de hardware, pero lo unico que se me ocurre es algun problema de refrigeracion. que podra ser?
le saque la tapa para verla por dentro y parece estar todo limpio.
3  Programación / ASM / [DUDA] Pares de registros en: 4 Marzo 2017, 15:27 pm
hola, queria ver si alguien me podia aclarar esta duda.

estoy aprendiendo ASM x86, mas especificamente la sintaxis de intel. (utilizo NASM).

estuve viendo la instruccion MUL, que sirve para hacer operaciones de multiplicacion.

segun esta pagina: http://x86.renejeschke.de/html/file_module_x86_id_210.html

Opcode    Mnemonic    Description
F6 /4    MUL r/m8    Unsigned multiply (AX = AL * r/m8).
F7 /4    MUL r/m16    Unsigned multiply (DX:AX = AX * r/m16).
F7 /4    MUL r/m32    Unsigned multiply (EDX:EAX = EAX * r/m32).

para hacer una operacion de multiplicacion con un BYTE, tengo que mover el numero a multiplicar al registro AL, y me devuelve el resultado en AX.

Código:
    mov al, 5
    mul 5
    ; ahora ax = 25

para hacer una multiplicacion con un WORD, deberia mover el valor a AX:

Código:
    mov ax, 5
    mul 25
    ; ahora DX:AX vale 125

trabajando con DWORDS, seria:

Código:
     mov eax, 5
     mul 1000
     ; ahora EDX:EAX vale 5000

mi duda es, que significan esos pares de registros?
el resultado se aloja en el registro EDX o en el registro EAX?
o en ambos?
como hago para manipular el resultado, teniendo en cuenta que se guardan en pares de registros?

no logro entender cual es el significado de esas expresiones.
que seria un par de registros y cual es su utilidad?
si me podrian dar algun ejemplo.

gracias.

4  Programación / Programación C/C++ / enteros de 12 bits en: 2 Marzo 2017, 08:05 am
hola que tal. a ver si me pueden dar una mano con esto...

resulta que estoy programando una especie de driver para sistemas de archivos FAT12, basicamente es un programa en C al que le pasamos como parametro la imagen de un floppy y este se encarga de leer y escribir datos en el utilizando el formato FAT12.

como sabran, este formato cuenta con 2 FATS (File Allocation Table) donde se guarda la informacion de todos los clusters presentes en el disco, vendria a ser un array de digitos de 12 bits que puede representar los siguientes valores: cluster sin uso - cluster da;ado - siguiente cluster del archivo - ultimo cluster del archivo.

para leer la FAT lo que hago es calcular el inicio de esta y ir leyendo de a pedazos de 3 bytes (24 bits, 2 entradas de 12 bits). la idea ahroa es partir esos 3 bytes en 2 enteros de 12 bits que me van a dar la informacion de los 2 clusters que se guarda en esos 3 bytes. no hay ningun tipo de datos de 12 bit en C, asi que se me ocurrio usar dos enteros de 16 bits (uint16_t).

lo que necesito hacer es: en el primer entero, copiar la segunda mitad del segundo byte + todo el contenido del primero. en el segundo entero, copiar todo el contenido del tercer byte + la segunda mitad del segundo. esto me daria como resultado las 2 entradas que necesito leer de la FAT.

algo asi:
// (pongo una letra al inicio cada 4 bits para poder apreciar bien lo que neceisto hacer
a110 b011   // byte 0
c100 d100   //  byte 1
e101 f101   // byte 2

esos 3 bytes son los que leo de la fat, ahora neceisto partirlos en 2 enteros de 16 bits, quedando:

c100 a110 b011 0000 // primer entero
d100 e101 f101 0000 // segundo entero

la pregunta es, como puedo realizar esta operacion?

es decir, que operaciones binarias debo realizar?



5  Seguridad Informática / Bugs y Exploits / Explotando un Integer Overflow en: 24 Febrero 2017, 02:18 am
que tal. la cosa es asi.

descubri una vulnerabilidad (quizas?) en un programa que funciona como cliente.
este consiste en una lista de servidores que uno puede agregar o quitar especificando la direccion ip y el puerto de escucha.

programe un servidor que responde a las consultas de este cliente, como si fuese un servidor legitimo del programa, pero al responder la consulta envio un entero demasiado largo (long long) que produce que el cliente muestre el mensaje de "integer overflow" y se cierre (crash).

mi idea seria, reemplazar el instruction pointer ingresando la direccion de memoria de donde empieza el paquete, enviando al inicio del paquete una shellcode que realize X accion.

seria esto posible?
que requisitos se deben presentar para poder reemplazar el IP de manera exitosa con un integer overflow?

se me ocurria algo como esto:

char X[] = "adsjkhdsakljhdsajklhdsakljhdsajklhdsakjlsdahjklsdahjklsdahjklsdhjkldshkjdlashdasjlkhakjhlkjsadhaslkjhs\x56\x54\x53\x53";
long long overflow = *(long long*) &X;

es decir, castear el payload a long long para que al desbordarse el entero en el instruction pointer quede la direccion de memoria del inicio del paquete, funcionaria de la manera que yo creo?

gracias.
disculpen si hay algo que ignoro, todavia soy nuevo en esto de explotar vulnerabilidades.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines