'Analyze X-Powered-By header.'

def _check_x_power(self, fuzzable_request):

    response = self._uri_opener.GET(fuzzable_request.get_url(), cache=True)
    for header_name in response.get_headers().keys():
        for i in ['ASPNET', 'POWERED']:
            if ((i in header_name.upper()) or (header_name.upper() in i)):
                powered_by = response.get_headers()[header_name]
                self._x_powered = False
                pow_by_kb = kb.kb.get('server_header', 'powered_by')
                powered_by_in_kb = [j['powered_by'] for j in pow_by_kb]
                if (powered_by not in powered_by_in_kb):
                    desc = 'The    %s    header    for    the    target    HTTP    server    is    "%s".'
                    desc = (desc % (header_name, powered_by))
                    i = Info('Powered-by    header', desc, response.id, self.get_name())
                    i['powered_by'] = powered_by
                    i.add_to_highlight((header_name + ':'))
                    om.out.information(i.get_desc())
                    kb.kb.append(self, 'powered_by', i)
                    powered_by_in_kb.append(powered_by)
                    kb.kb.raw_write(self, 'powered_by_string', powered_by_in_kb)
