Ejemplo n.º 1
0
def test_get_analyze_with_categories():
    webpage = WebPage('http://example.com', '<html>aaa</html>', {})
    categories = {
        "1": {
            "name": "cat1",
            "priority": 1
        },
        "2": {
            "name": "cat2",
            "priority": 1
        }
    }

    technologies = {
        'a': {
            'html': 'aaa',
            'cats': [1],
        },
        'b': {
            'html': 'bbb',
            'cats': [1, 2],
        }
    }

    analyzer = Wappalyzer(categories=categories, technologies=technologies)
    result = analyzer.analyze_with_categories(webpage)

    assert result == {"a": {"categories": ["cat1"]}}
Ejemplo n.º 2
0
    def test_analyze_no_apps(self):
        analyzer = Wappalyzer(categories={}, apps={})
        webpage = WebPage('http://example.com', '<html></html>', {})

        detected_apps = analyzer.analyze(webpage)

        self.assertEquals(detected_apps, set())
Ejemplo n.º 3
0
def test_analyze_no_technologies():
    analyzer = Wappalyzer(categories={}, technologies={})
    webpage = WebPage('http://example.com', '<html></html>', {})

    detected_technologies = analyzer.analyze(webpage)

    assert detected_technologies == set()
Ejemplo n.º 4
0
 def GetFinger(self):
     print("正在获取网站指纹及技术!")
     try:
         finger=WebPage(self.url, self.rep).info()
         return finger
     except Exception as e:
         print(e)
         return "Unknow"
Ejemplo n.º 5
0
 def GetFinger(self):
     redispool.append("runlog", "正在获取{}网站指纹及技术!\n".format(self.url))
     print("正在获取网站指纹及技术!")
     try:
         finger = WebPage(self.url, self.rep).info()
         return finger
     except Exception as e:
         print(e)
         return "Unknow"
Ejemplo n.º 6
0
def test_analyze_with_versions_and_categories_pattern_lists():

    webpage = WebPage(
        'http://wordpress-example.com',
        '<html><head><meta name="generator" content="WordPress 5.4.2"></head></html>',
        {})

    categories = {
        "1": {
            "name": "CMS",
            "priority": 1
        },
        "11": {
            "name": "Blog",
            "priority": 1
        }
    }

    technologies = {
        "WordPress": {
            "cats": [1, 11],
            "html": [],
            "icon": "WordPress.svg",
            "implies": ["PHP", "MySQL"],
            "meta": {
                "generator": [
                    "Whatever123", "Whatever456",
                    "^WordPress ?([\\d.]+)?\\;version:\\1", "Whatever"
                ]
            },
            "website": "https://wordpress.org"
        },
        'b': {
            'html': 'bbb',
            'cats': [1, 2],
        },
        "PHP": {
            "website": "http://php.net"
        },
        "MySQL": {
            "website": "http://mysql.com"
        },
    }

    analyzer = Wappalyzer(categories=categories, technologies=technologies)
    result = analyzer.analyze_with_versions_and_categories(webpage)

    assert ("WordPress", {
        "categories": ["CMS", "Blog"],
        "versions": ["5.4.2"]
    }) in result.items()
Ejemplo n.º 7
0
    def test_get_analyze_with_categories(self):
        webpage = WebPage('http://example.com', '<html>aaa</html>', {})
        analyzer = Wappalyzer(categories={"1": "cat1", "2": "cat2"}, apps={
            'a': {
                'html': 'aaa',
                'cats': [1],
            },
            'b': {
                'html': 'bbb',
                'cats': [1, 2],
            },
        })

        result = analyzer.analyze_with_categories(webpage)

        self.assertEquals(result, {"a": {"categories": ["cat1"]}})
Ejemplo n.º 8
0
def wappalyze(rid):
    r = None
    url = None
    content = None
    headers = {}
    try:
        r = Resource.objects.get(pk=rid)
        if r.url:
            url = r.url.url
        if r.content:
            content = r.content.content
        if r.headers:
            h = ast.literal_eval(r.headers)
            for k,v in h.items():
                headers[k] = v
    except Exception as e:
        logger.error(str(e))
        #return None

    if url and content and headers:
        try:
            wappalyzer = Wappalyzer.latest()
            webpage = WebPage(
                url=url,
                html=content,
                headers=headers,
            )
            apps = wappalyzer.analyze(webpage)
            logger.debug(apps)
            for a in apps:
                webapp, created = Webapp.objects.get_or_create(
                    name = a,
                )
                r.webapp.add(webapp)
                r.save()
            #return r
        except Exception as e:
            logger.error(str(e))

    return rid
Ejemplo n.º 9
0
def GetWebPageApps(urlWebPage=''):
    try:
        response = WebPage.WebPage(urlWebPage)

        print(' Info '.center(40, '='))
        #print(response.headers)
        print('Url:', response.url)
        print('Title web page:', response.title)

        print(' Meta '.center(40, '='))

        for m in response.meta:
            print(m, '==>', response.meta[m])

        print(' Apps '.center(40, '='))

        #apps = dict(response.info())
        for i in list(response.apps):
            print(i)

    except Exception as e:
        print('Error:', e)
Ejemplo n.º 10
0
 def GetFinger(self):
     return WebPage(self.url, self.rep).info()