def testDefaultValueWhenFuzzableBeforeMutation(self):
     fields = [String('a'), Container([Static('A'), String('B')])]
     default_container = Container(fields=fields, fuzzable=False)
     default_rendered = default_container.render()
     uut = self.get_uut(fields, fuzzable=True)
     uut_rendered = uut.render()
     self.assertEqual(default_rendered, uut_rendered)
 def testContainsAllDefaultMutations(self):
     fields = [String('a'), Container([Static('A'), String('B')])]
     default_container = Container(fields=fields)
     default_mutations = self.get_all_mutations(default_container)
     uut = self.get_uut(fields)
     uut_mutations = self.get_all_mutations(uut)
     for mutation in default_mutations:
         self.assertIn(mutation, uut_mutations)
 def testDefaultValueWhenFuzzableAfterReset(self):
     fields = [String('a'), Container([Static('A'), String('B')])]
     default_container = Container(fields=fields, fuzzable=False)
     default_rendered = default_container.render()
     uut = self.get_uut(fields, fuzzable=True)
     while uut.mutate():
         pass
     uut.reset()
     uut_rendered = uut.render()
     self.assertEqual(default_rendered, uut_rendered)
Exemplo n.º 4
0
def generate_fuzz_templates(parsed_url, upnp):
    for upnp_srv in upnp:
        service = upnp_srv['serviceType'].split(':')[-2]
        for function in upnp_srv['actions']:
            arguments = upnp_srv['actions'][function]
            upnp_payload = createPayload(service, function, arguments)
            headers = createHeaders(upnp_srv['controlURL'], parsed_url.netloc, upnp_srv['serviceType'])
            test_string = '{} {} {} {} {} {}'.format(service, function, arguments, upnp_srv['controlURL'], parsed_url.netloc, upnp_srv['serviceType'])
            template = Container(name='upnp_request', fields=[headers, upnp_payload])
            yield (test_string, template)
Exemplo n.º 5
0
def createHeaders(url, host, action):
    data = Container(name='http_header', fields=[
        HttpRequestLine(['POST'], url),
        TextField('Host', host),
        TextField('User-Agent', 'python-requests/2.21.0'),
        TextField('Content-Type', 'text/xml'),
        TextField('SOAPAction', action),
        IntField('Content-Length', 5000, end=True)
    ])
    return data