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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16
81  Seguridad Informática / Hacking / [Iniciación]Explotación de vulnerabilidades teoria + práctica en: 3 Abril 2010, 17:30 pm
Hola amigos, porfin voy a contribuir a esta seción, se que habrá buenas y malas criticas (quizás mas malas  :-X) pero bueno:
Hace poco he abierto mi blog donde publico articulos de todo tipo relacionados con la informatica, he creado uno en concreto sobre vulnerabilidades de servicios remotos, funcionamiento del ataque y demás, teoria explicacion de un BoF y practica con metasploit.

Pongo el enlace al articulo en concreto puesto que no lo considero spam, al ser un articulo maquetado con html y otros que perderia valor sin este, si lo consideran spam borren el link, pero ya digo que no es ni mucho menos mi intención hacerlo:

http://www.0x81team.co.cc/?p=23


Espero que les sirva y que lo disfruten.

Saludos
82  Programación / ASM / Mi segundo programa en ASM en: 2 Abril 2010, 12:19 pm
Hola a todos, esta vez he querido leer un caracter de stdin pero hay segmentation fault, es porque alamaceno lo leido en esi y no soy capaz de derteminar la length de este para darselo al sys_write, es basicamente un programa de echo:

Código
  1. section .text
  2.   global _start ;parida que necesita el linker xD
  3.  
  4. _start: ;entry point
  5.        pop ebx
  6.        pop ebx
  7.        pop ebx
  8.        pop ebx
  9.        mov eax,5
  10.        add     ebx,ecx
  11. mov edx,len ;Longitud del mensaje
  12. mov ecx,msg ;Mensaje que vamos a escribir
  13. mov ebx,1 ;file descriptor (stdout)
  14. mov eax,4 ;llama de sistema numero 4 (sys_write)
  15. int 80h ;call al kernel para que ejecute las sentencias
  16.        pushad ;Guardamos registros
  17.        pushfd ;Guardamos flags
  18.        mov     eax, 3 ;sys_read(3)
  19.        mov     ebx, 0 ;stdin (0)
  20.        mov     ecx, esi ;Guardamos la string en esi
  21.        mov     edx, 1 ;nnumero de bytes a leer
  22.        int     80h ;llamada al kernel de linux
  23.        popfd ;re-establecemos flags
  24.        popad ;re-establecemos registros
  25.        ret ;retorno para llamar al procedimiento
  26.  
  27.        mov edx,length2 ;longitud del mensaje
  28. mov ecx,esi ;mensaje a escribir
  29.        mov ebx,1 ;file descriptor (stdout)
  30.        mov eax,4 ;llamada a sistema numero 4 (sys_write)
  31. int 80h ;linux esta aqui!
  32.        mov     eax,1 ;llamada a sistema numero 1 (sys_exit)
  33. int 80h ;llamada al kernel, linux acabará con la ejecución del proceso
  34.  
  35.  
  36.  
  37. section .data
  38.  
  39. msg db 'Hola mundo!',10 ;la primera cadena
  40. mensaje2 db 'a',10
  41. len equ $ - msg ;longitud de nuestra cadena
  42. length2 equ  $ - mensaje2
  43.  


Saludos
83  Programación / ASM / Mi primer programa en NASM en: 2 Abril 2010, 11:51 am
Hola a a todos, me va gustando esto del asm xD
Mirad he hecho mi primer code, muy sencillo un hi World clasico pero con unas cosillas mas:

Código
  1. section .text
  2.   global _start ;parida para tener al linker contento
  3.  
  4. _start: ;entry point
  5.  
  6. mov edx,len ;colocamos en edx como primer argumento de la llamada a sys_write len
  7. mov ecx,msg ;en ecx el segundo argumento que es una define double word (la cadena)
  8. mov ebx,1 ;el file descriptor, el out standard
  9. mov eax,4 ;llamada a sistema (sys_write)
  10. int 80h ;llamamos al kernel para que ejecute
  11.        jmp segundaLlamada ;salto incondicional a otra seción de codigo
  12.  
  13. segundaLlamada:
  14.  
  15.        mov edx,length2 ;lo mismo de antes
  16. mov ecx,mensaje2 ;lo mismo
  17. mov ebx,1 ;lo mismo
  18. mov eax,4 ;mas de lo mismo
  19. int 80h ;mas todavia
  20.        mov eax,1 ;llamamos a 1 (sys_exit)
  21.        mov ebx,0       ;codigo de salida, o eso he entendido
  22. int 80h ;otra vez mi querido linux
  23.  
  24. section .data
  25.  
  26. msg db 'Hola mundo!',10 ;cadena
  27. mensaje2 db 'Y buenos dias NASM',10
  28. len equ $ - msg ;cadena
  29. length2 equ  $ - mensaje2
  30.  

El problema es que ejecuta 3 veces el syswrite cuando solo deberian ser dos, debuggeo y me fijo en que hace el salto a segundaLlamada y despues de eso la vuelve a ejecutar.
Como es eso?

Otra duda, como es que no puedo poner el valor de salto de linea como ah? si es 0x0a porque no puedo poner ah tengo que poner 10 o 0xa no lo entiendo con 0x80 si me deja pues pongo 80h.

Saludos

Saludos
84  Seguridad Informática / Hacking / Posible ataque con ettercap a ip fuera de la red local? en: 1 Abril 2010, 19:41 pm
Hola a todos, empollandome la guia de MSF Unleashed he visto que usan el SET (Social Engineering Toolkit), y que hacen un ataque de phising con arp spoofing a distancia, usando ettercap, puesto que la ip que usan como ejemplo no es de una lan, miradlo aqui:
http://www.offensive-security.com/metasploit-unleashed/

No salgo de mi asombro :s

Saludos
85  Programación / ASM / Duda sobre OPCODE en: 1 Abril 2010, 17:06 pm
Hola a todos, estoy aprendiendo asm, y para comprenderlo mejor y llegar a hacer virguerias que se ven por ahi, he decidido leerme la teoria completa de los procesadores y CPU, y como se codifican las instruciones de asm a opcode para ejecutar, por ejemplo:
La instrucion que suma los registros EAX y EBX y almacena el resultado en EAX (es add si no me equivoco), como es que luego se codifica a:
03 c3
y presupongo que si hago por ejemplo un payload que haga esa operacion con los registros seria algo asi a injectar:

\x03\xC3 que vendria a ser 0x03 y 0xC3
como se hace esa transformación?
Osea que la equivalencia de los valores ASCII en hexadecimal que encuentro cuando abro un programa con Text plano son los opcode?
Perdonad si quizás este diciendo burradas, pero son cosas que he querido saber siempre.
Otra pregunta, el operador db para que sirve? deduzco que es para alamacenar en memoria, pero no lo se seguro.

Saludos
86  Programación / Java / Resolucion de sistemas de ecuaciones sencillos en: 31 Marzo 2010, 10:55 am
Hola a todos, ya tengo mi procesador de expresiones algebraico-aritmeticas, resuelve expreiones facilmente, ahora quiero dar el paso y conseguir hacerlo con expresiones de dos miembros, osease, ecuaciones con 1 o mas incognitas.

Tengo por ejemplo esta expresion:

Citar
5*49/2*a == 15
La evaluo, proceso y me pide un valor para a se lo doy y si no cumple la expresión, devuelve 0 (false) si la cumple devuelve 1 (true).
Ahora estoy planteando una manera de aislar la incognita en uno de los miembros de la ecuacion, para resolverla, añadirla ala expresion inicial y comprovar que es correcta.
La pregunta es como?

He imaginado 3 maneras posibles:

La primera, es haciendo el bestia, y usando puerza bruta, aunmentando la variable de 0,001 en 0,001 e ir probando pero será muy inexacto y es probable que en muchas ocasiones no lo encuentre, eso sin contar con el uso de memoria que requeriria un bucle de ese nivel.

La segunda es identificando el grado de la ecuacion, aislar las incognitas y aplicar la formula correspondiente.

La tercera es haciendolo literalmente, osea moviendo caracteres por la cadena, y detectando el simbolo que lleva para luego dejar la incognita sola y evaluar la expresión. Esto eliminando posibilidades puede resultar muy tedioso de programar, y quizas, que estoy seguro que habrá metodos mas sencillos que estos.

Un saludo
87  Programación / Java / [ACTUALIZADO FUNCIONAL]Analizador de expresiones numéricas [SOURCE] en: 30 Marzo 2010, 10:42 am
Hola a todos, tengo ya casi acabado el analizador de expresiones numéricas, le introduces una expresion aritmetica con variables inclusive, la analiza y resuelve, pero aun tiene un error que no he conseguido solucionar, os dejo el codigo y el error:

Código
  1. package main;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.math.BigDecimal;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9. import java.util.Vector;
  10.  
  11. import net.java.dev.eval.Expression;
  12.  
  13. public class principal {
  14. //Por cutre que parezca, si he metido el abecedario en una matriz para identificar incognitas...
  15. //xD
  16. public static char[] TokensVariables = {'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z'};
  17. public static int cuantasVariables = 0;
  18. public static Vector<Character> vectorOperandos = new Vector(10, 5);
  19. public static Vector<Character> vectorVariables = new Vector(10, 5);
  20.  
  21. public static void main(String args[])
  22. {
  23.  
  24.   String expresion = new String("2*x+b");
  25.  
  26.   System.out.println("\n"+Procesador(preProcesador(expresion), expresion)); //La recursividad es inutil aqui, o quizas lo soy yo...
  27.  
  28. }
  29. static int[] preProcesador(String argumento)
  30. {
  31. char[] TokensOperandos = {'+', '-', '*', '/', '^'};
  32.  
  33. char[] TokensVariables = {'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z'};
  34.  
  35. int countOperandos = 0;
  36. int countVariables = 0;
  37. /*BUCLE SEPARADOR DE OPERANDOS*/
  38.  
  39. /*-NOTA: ESTE ALGORITMO SE PUEDE MEJORAR, PUES EL BUCLE SOBRECARGA*/
  40. //                                        ^
  41. //                                        |
  42. //La pereza hace cosas muy malas...  -----|
  43. //Bucle que busca operandos y los distribuye en memoria
  44. for(int i = 0; i< argumento.length(); i++)
  45. {
  46. //Bucle para recorrer la matriz con los tokens
  47. for(int j = 0; j < TokensOperandos.length; j++)
  48. {
  49. char chVolatil = TokensOperandos[j]; //Un caprichito de programador idiota :P
  50. if(argumento.charAt(i) == chVolatil)
  51. {
  52. vectorOperandos.add(chVolatil);
  53. countOperandos++;
  54. }
  55. }
  56. }
  57. /*BUCLE PARA SEPARAR VARIABLES                                    */
  58. /*-NOTA: ESTE ALGORITMO SE PUEDE MEJORAR, PUES EL BUCLE SOBRECARGA*/
  59.    //                                        ^
  60. //                                        |
  61. //La pereza hace cosas muy malas...  -----|
  62. for(int i = 0; i < argumento.length(); i++)
  63. {
  64. //Bucle para recorrer la matriz con los tokens
  65. for(int j = 0; j < TokensVariables.length; j++)
  66. {
  67. char varVolatil = TokensVariables[j]; //Un caprichito de programador idiota :P
  68. if(argumento.charAt(i) == varVolatil)
  69. {
  70. vectorVariables.add(varVolatil);
  71. countVariables++;
  72. }
  73. }
  74. }//Que poco me gusta trabajar, y como se nota el copypaste de este fragmento...
  75. //Para que codearlo 2 veces? Es inutil hacerlo :P
  76. System.out.print("Estos son los " + vectorOperandos.size() + " operandos que hay en la expresion:\n" );
  77. System.out.print("[");
  78. for(int i=0; i<vectorOperandos.size(); i++){
  79. if(i == 0)
  80. {
  81.        System.out.print(vectorOperandos.elementAt(i));
  82. }else{
  83.    System.out.print(","+vectorOperandos.elementAt(i));
  84. }
  85.    }
  86. System.out.print("]\n");
  87.    System.out.println("/////////////////////////////////////////////////////////////////////////////// ");
  88.    System.out.println("############################################################################### ");
  89.    System.out.println("/////////////////////////////////////////////////////////////////////////////// ");
  90. System.out.print("Y aqui estan las " + vectorVariables.size() + " variables o incognitas de la expresion:\n");
  91. System.out.print("[");
  92. for(int i=0; i<vectorVariables.size(); i++){
  93. if(i == 0)
  94. {
  95.        System.out.print(vectorVariables.elementAt(i));
  96. }else{
  97.    System.out.print(","+vectorVariables.elementAt(i));
  98. }
  99.    }
  100. System.out.print("]");
  101. int[] salida = {countOperandos, countVariables};
  102. return salida;
  103. }
  104. static BigDecimal Procesador(int[] cuantos, String que)
  105. {
  106.  
  107. Expression exp = new Expression(que);
  108.     BufferedReader br = new BufferedReader(isr);
  109.  
  110. Map<String, BigDecimal> variables = new HashMap<String, BigDecimal>();
  111.  
  112. for(int j = 0; j < cuantos[1]; j++)
  113. {
  114. System.out.print("\nDame un valor para la variable " + vectorVariables.elementAt(j) + " :\n");
  115. try {
  116. String expresionVolatil = br.readLine();
  117.            variables.put(String.valueOf(vectorVariables.elementAt(j)), Procesador(preProcesador(expresionVolatil), expresionVolatil));
  118. } catch (IOException e) {
  119.           e.printStackTrace();
  120. }
  121. }
  122.     BigDecimal result = exp.eval(variables);
  123.  
  124. return result;
  125. }
  126. }
  127.  
  128.  
Y aqui la salida de la ejecucion del programita en cuestion:
OUT:

Ya depurado el programa hace su funcion especial solo tiene un pequeño fallo que no soy capaz de ver:
Citar
Estos son los 2 operandos que hay en la expresion:
[*,+]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 2 variables o incognitas de la expresion:
[x,b]
Dame un valor para la variable x :
5*3
Estos son los 3 operandos que hay en la expresion:
[*,+,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 2 variables o incognitas de la expresion:
[x,b]
Dame un valor para la variable b :
6*x
Estos son los 4 operandos que hay en la expresion:
[*,+,*,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 3 variables o incognitas de la expresion:
[x,b,x]
Dame un valor para la variable x :
15
Estos son los 4 operandos que hay en la expresion:
[*,+,*,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 3 variables o incognitas de la expresion:
[x,b,x]
120
Ese seria el desarrollo de la expresión 2*x+b

El problema es que cuando cuando un valor para una variable, si introduzco otra expresion que tenga otra variable y no es una de las que estaban en la principal no funciona, aqui os dejo para que lo veais con vuestros propios ojos:

Citar
Estos son los 2 operandos que hay en la expresion:
[*,+]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 2 variables o incognitas de la expresion:
[x,b]
Dame un valor para la variable x :
5*x
Estos son los 3 operandos que hay en la expresion:
[*,+,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 3 variables o incognitas de la expresion:
[x,b,x]
Dame un valor para la variable x :
7
Estos son los 3 operandos que hay en la expresion:
[*,+,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 3 variables o incognitas de la expresion:
[x,b,x]
Dame un valor para la variable b :
6*d  <----- Aqui introduzco una nueva variable, que teoricamente tendria que analizar y pedir un valor para esta
Estos son los 4 operandos que hay en la expresion:
[*,+,*,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 4 variables o incognitas de la expresion:
[x,b,x,d]
Dame un valor para la variable x :   <-------Sin embargo pide para X y no para d que es la que he pedido y como se aprecia abajo no tiene valor para d puesto que no ha pedido para esta, si no para X
1
Exception in thread "main" java.lang.RuntimeException: no value for variable "d"
   at net.java.dev.eval.Operation.evaluateOperand(Operation.java:128)
   at net.java.dev.eval.Operation.eval(Operation.java:107)
   at net.java.dev.eval.Expression.eval(Expression.java:161)
   at main.principal.Procesador(principal.java:123)
   at main.principal.Procesador(principal.java:118)
   at main.principal.main(principal.java:26)

Estos son los 4 operandos que hay en la expresion:
[*,+,*,*]
///////////////////////////////////////////////////////////////////////////////
###############################################################################
///////////////////////////////////////////////////////////////////////////////
Y aqui estan las 4 variables o incognitas de la expresion:
[x,b,x,d]

Haber si me pueden ayudar con este ultimo problema.
Saludos
88  Programación / Java / Añadir simbolos de operacion desde cadena y viceversa en: 29 Marzo 2010, 15:31 pm
Hola atodo, he codeado esto:
Código
  1. package equlator;
  2.  
  3. /**
  4.  *
  5.  * @author root
  6.  */
  7. public class Main {
  8.  
  9.    /**
  10.      * @param args the command line arguments
  11.      */
  12.    public static void main(String[] args) {
  13.        String operacion = new String("1+5");
  14.  
  15.        //procesador(operacion);
  16.  
  17.    }
  18.    public static int procesador(String proceso)
  19.    {
  20.        //Variable de instancia donde quedara definida la operacion convertida a string
  21.       int procesado = 0;
  22.       //Matriz de caracteres de toda la cadena procesada
  23.       char[] matrizCaracteres = proceso.toCharArray();
  24.        int[] bufferAritmetico = null;
  25.        System.out.println("Procesando expresion aritmetico-algebraica....");
  26.       for(int a = 0; a < proceso.length(); a++)
  27.       {
  28.           System.out.println(matrizCaracteres[a]);
  29.           if(Character.toString(matrizCaracteres[a]).equals("+") ||
  30.              Character.toString(matrizCaracteres[a]).equals("*") ||
  31.              Character.toString(matrizCaracteres[a]).equals("/") ||
  32.              Character.toString(matrizCaracteres[a]).equals("-"))
  33.           {
  34.             if(Character.toString(matrizCaracteres[a]).equals("+"))
  35.             {
  36.               bufferAritmetico[a] = +;
  37.             }else{
  38.  
  39.             }
  40.  
  41.  
  42.  
  43.  
  44.           }else{
  45.           bufferAritmetico[a] = Integer.parseInt(Character.toString(matrizCaracteres[a]).trim());
  46.           }
  47.           }
  48.           System.out.println(bufferAritmetico);
  49.       return procesado;
  50.    }
  51.  
  52. }
Mi problema es que no puedo pasar una expresion aritmetica que se recoje de forma String a int, he intentado hacer un pequeño procesador que analiza la cadena y va trasladando los valores a un array int, pero los simbolos de suma multiplicacion res y division no se traspasan.
Dentro del bucle logico del procesador he creado un encadenamiento de condiciones para determinar si el caracter o valor que se va analizar en ese loop es un caracter de operacion aritmetico.
Asi lo hago y si se cumple intento asignar el valor con su equivalente en Integer a la posicion de la matriz determinada por el loop y la variable instancia de este.

Espero que me puedan ayudar.

Saludos
89  Programación / Java / Duda variables JSP en: 21 Marzo 2010, 15:46 pm
Hola a todos, estoy haciendome una web usando el JSP, y he encontrado que a diferencia de mi querido PHP no puedo modificar variables a través de la url al estilo:
index.jsp?secion=1

Simplemente no cambia nada, os muestro el codigo:

Código
  1.  
  2. <head><title>Prueba JSP</title></head>
  3.  
  4. <%! public int secion = 0;%>
  5. <%
  6. out.println("Bienvenido a mi web<br/>");
  7.  
  8. out.println("<b>Pagina de ejemplo JSP</b>");
  9. out.println("<br/>");
  10. switch(secion)
  11. {
  12. case 0:
  13. out.println("Has cojido la uno!");
  14. break;
  15. case 1:
  16. out.println("Has cojido la dos!");
  17. break;
  18. }
  19.  
  20. %>
  21. <br/>
  22. Fecha actual: <%= new java.util.Date() %>
  23.  
  24.  
  25.  
  26. </body>
  27.  
  28. </html>

Tan moderno que es jsp y mira que no se podrá dividir en modulos xD

Saludos
90  Seguridad Informática / Wireless en Linux / Wifiway o Wifislax? en: 20 Marzo 2010, 14:06 pm
Hola a todos, estoy haciendo unas auditorias de mi red, en este momento, en concreto la de wireless, y no se que distro escojer.
Wifiway o wifislax? que diferencia hay? Cuala es mejor?

Saludos
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines