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


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Aporte] Herramienta para transformar a ascii web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte] Herramienta para transformar a ascii web  (Leído 1,063 veces)
DaniekL

Desconectado Desconectado

Mensajes: 14



Ver Perfil
[Aporte] Herramienta para transformar a ascii web
« en: 19 Junio 2013, 13:25 »

Buenas, he hecho una pequeña tool en C para transformar una cadena ascii a hexadecimal.

Es practicamente inutil, pero la idea es automatizarlos  ;D ;D

La idea es usarlo en cosas como el XSS en webs que filtran las cadenas, pero no los valores hexadecimales.

Por ejemplo, el típico XSS ("><script>alert(42);</script>) se vería asi:

Código:
%22%3e%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%34%32%29%3b%3c%2f%73%63%72%69%70%74%3e

El código es este (vale tanto para Unix como para Windows  :D)

Código
  1. //A tool for transforming an ascii string to web hex
  2. //IE: "test" == %74%65%73%74
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. int main(void) {
  7.  
  8.  char str[1024];
  9.  int i;
  10.  const char percent = 0x25;
  11.  printf("Enter the text\n");
  12.  scanf("%s", &str);
  13.  for(i = 0; i < strlen(str); i++) {
  14.    printf("%c%02x",percent, str[i]);
  15.  }
  16.  printf("\n");
  17.  
  18. #ifdef __WINDOWS__
  19.  printf("\n\n");
  20.  system("pause");
  21. #endif
  22. }

Espero que os guste este aporte y que os sea útil.  :rolleyes:


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [Aporte] Herramienta para transformar a ascii web
« Respuesta #1 en: 20 Junio 2013, 02:13 »

No es necesario utilizar la función strlen ya que basta con verificar si el carácter a procesar es el '\0' (ello indica el fin de la cadena) y para imprimir con printf el carácter '%' basta con doblarlo:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.   char str[1024];
  6.   int i;
  7.  
  8.   puts("Enter the text");
  9.   scanf("%1023[^\n]", str);
  10.  
  11.   for (i = 0; str[i] != '\0'; i++)
  12.      printf("%%%02x", str[i]);
  13.   putchar('\n');
  14.  
  15.   return 0;
  16. }

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [Aporte] Herramienta para transformar a ascii web
« Respuesta #2 en: 20 Junio 2013, 03:14 »

No es necesario utilizar la función strlen ya que basta con verificar si el carácter a procesar es el '\0' (ello indica el fin de la cadena)
.......................

 
Código
  1. for (i = 0; str[i] != '\0'; i++)
     

Y tampoco hace falta explicitarlo, con esto es suficiente:


Código
  1. for (i = 0; str[i]; i++)

 Saluditos!
   
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines