Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- POST parse,
- extrair campos do post e o action...
- para inline C em ruby para um projeto louco :-)
- by Cooler_
- c00f3r[at]gmail[dot]com
- */
- #include <stdio.h>
- #include <alloca.h>
- #include <stdlib.h>
- int main()
- {
- /*
- deve ser passado um form por vez...
- assim retorna "action,campo1.campo2..." depois soh
- executar um split...
- */
- char *form=" <form name=\"input\" action=\"html_form_action.asp\" method=\"get\">Username: <input type=\"text\" name=\"user\" />password: <input type=\"text\" name=\"senha\" /> <input type=\"submit\" value=\"Submit\" /> </form>";
- int *parse=(int *)alloca(2*sizeof(int ));
- parse[1] = *(int*)"name"; // extract name field
- parse[0] = *(int*)"acti"; // extract action field
- char *p;
- char *s=(char *)malloc(sizeof(char)*4098);
- int x=0,i=0,counter=8,z=0;
- p=form;
- do{
- x = *(int *)p;
- // parseia uma Ășnica vez o action
- if(!z)
- if(x == parse[z] && p[6]=='=')
- {
- p += counter;
- do{
- s[i] = *p;
- p++;
- i++;
- }while(*p != '"' && i < 4098-1);
- s[i] = ',';
- i++;
- counter=6;
- z=1;
- }
- if(x == parse[z] && p[4] == '=')
- {
- p += counter;
- do{
- s[i] = *p;
- p++;
- i++;
- }while(*p != '"' && i < 4098-1);
- s[i] = ',';
- i++;
- }
- p++;
- }while(p[counter] != '\0' && i < 4098-1);
- s[--i]=' ';
- // depois no ruby split em "," primeiro elemento o action ,demais campos para mandar payload...
- puts(s);
- free(s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment