/*
bf3/mod/html.c
01.15.2010
bf3
Krakow Labs Development -> bf3
Browser Fuzzer 3
jbrown@KL
fuzz@krakowlabs:~# bf3.tar.gz
Associated Files & Information:
http://www.krakowlabs.com/dev/fuz/bf3/bf3
http://www.krakowlabs.com/dev/fuz/bf3/bf3.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/cli.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/core.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/gen.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/mut.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/oracle.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/rand.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/mod/css.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/mod/dom.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/mod/html.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/mod/js.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/mod/xml.c.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/core.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/oracle.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/random.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/mod/css.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/mod/dom.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/mod/html.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/mod/js.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/include/mod/xml.h.txt
http://www.krakowlabs.com/dev/fuz/bf3/Makefile.txt
http://www.krakowlabs.com/dev/fuz/bf3/media/bf3.jpeg
http://www.krakowlabs.com/dev/fuz/bf3/media/bf3.avi
http://www.krakowlabs.com/dev/fuz/bf3/samples/css/bmgsec.html.txt
http://www.krakowlabs.com/dev/fuz/bf3/samples/css/style.css.txt
http://www.krakowlabs.com/dev/fuz/bf3/samples/xml/index.html.txt
http://www.krakowlabs.com/dev/fuz/bf3/samples/xml/cd_catalog.xml.txt
http://www.krakowlabs.com/dev/fuz/bf3/doc/bf3_doc.txt
http://www.krakowlabs.com/dev/fuz/bf3/bf3.tar.gz
bf3/mod/html.c
*/
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
*/
#include "../include/core.h"
#include "../include/oracle.h"
#include "../include/mod/html.h"
void html(char *outp, int mod, int fzo, int rdn, int rsz)
{
char *tag = NULL;
int i, tagn, tatt;
if(fzo == 1)
{
generation(outp, tag, NULL, 0, 1, mod, 1, 0);
generation(outp, tag, NULL, 0, 1, mod, 2, 0);
for(i = 0; i <= HTMLTL; i++)
{
tag = htmltag[i];
tagn = i+1;
tatt = htmltagn[i];
generation(outp, tag, NULL, tagn, tatt, mod, 3, 0);
generation(outp, tag, NULL, tagn, tatt, mod, 4, 0);
}
}
if(fzo == 2)
{
rrandom(outp, mod, 0, rdn, rsz, NULL, NULL, 0);
}
}
void html_gen(char *outp, char *tag, char *attr, char *fuzz, int x, int o)
{
char data[x*2+512], fn[128], *modn = "html";
memset(data, 0, sizeof(data));
memset(fn, 0, sizeof(fn));
counter(&cnt);
snprintf(fn, sizeof(fn), "%s/%s%d.html", outp, modn, cnt);
if(o == 1)
snprintf(data, sizeof(data), "%s\n%s%s%d.html%s\n<%s %s = \"%s\">\n%s", HTMLA, REFRESHA, modn, cnt+1, REFRESHB, fuzz, HTMLDATAB, TESTDATA, HTMLB);
if(o == 2)
snprintf(data, sizeof(data), "%s\n%s%s%d.html%s\n<%s %s = \"%s\">\n%s", HTMLA, REFRESHA, modn, cnt+1, REFRESHB, HTMLDATAA, fuzz, TESTDATA, HTMLB);
if(o == 3)
snprintf(data, sizeof(data), "%s\n%s%s%d.html%s\n<%s %s = \"%s\">\n%s", HTMLA, REFRESHA, modn, cnt+1, REFRESHB, tag, attr, fuzz, HTMLB);
if(o == 4)
snprintf(data, sizeof(data), "%s\n%s%s%d.html%s\n<%s %s = %s>\n%s", HTMLA, REFRESHA, modn, cnt+1, REFRESHB, tag, attr, fuzz, HTMLB);
cli_eng(data, fn);
}