fate0/webanalyzer: WhatWeb + Wappalyzer in python

栏目: Python · 发布时间: 5年前

内容简介:usage:作为类库使用例子:

webanalyzer

安装

pip install -U webanalyzer

使用

命令行

webanalyzer -u "http://www.fatezero.org"

usage:

[*] webanalyzer --help
Usage: webanalyzer [OPTIONS]

Options:
  -u, --url TEXT                  Target  [required]
  -a, --aggression INTEGER RANGE  Aggression mode, 1 enable custom plugins
                                  aggression mode, 2 enable all plugins
                                  aggression mode
  -U, --user-agent TEXT           Custom user agent
  -H, --header TEXT               Pass custom header LINE to serve
  -r, --disallow-redirect         Disallow redirect
  -l, --list-plugins              List the plugins
  -v, --verbose INTEGER           Verbose level
  --help                          Show this message and exit.

类库

作为类库使用

import webanalyzer

w = webanalyzer.WebAnalyzer()

w.headers = {
    "User-Agent": "custom ua",
    "header-key": "header-value"
}

w.allow_redirect = True
w.aggression = 0
r = w.start("http://www.fatezero.org")

print(r)

规则编写

基础信息

例子:

{
    "name": "wordpress",
    "author": "fate0",
    "version": "0.1.0",
    "description": "wordpress 是世界上最为广泛使用的博客系统",
    "website": "http://www.wordpress.org/",
    "matches": [],
    "condition": "0 and 1 and not 2",
    "implies": "PHP",
    "excludes": "Apache"
}

描述:

FIELD TYPE DESCRIPTION EXAMPLE REQUIRED
name string 组件名称 wordpress true
author string 作者名 fate0 false
version string 插件版本 0.1.0 false
description string 组件描述 wordpress 是世界上最为广泛使用的博客系统 false
website string 组件网站 http://www.wordpress.org/ false
matches array 规则 [{"regexp": "wordpress"}] true
condition string 规则组合条件 0 and 1 and not 2 false
implies string/array 依赖的其他组件 PHP false
excludes string/array 肯定不依赖的其他组件 Apache false

规则信息

例子:

[
    {
        "name": "rule name"
        "search": "all"
    }
]

描述:

FIELD TYPE DESCRIPTION EXAMPLE
name string 规则名称 rulename
search string 搜索的位置,可选值为 all , headers , body , script , cookies , headers[key] , meta[key] , cookies[key] body
regexp string 正则表达式 wordpress.*
text string 明文搜索 wordpress
version string 匹配的版本号 0.1
offset int regexp 中版本搜索的偏移 1
certainty int 确信度 75
md5 string 目标文件的 md5 hash 值 beb816a701a4cee3c2f586171458ceec
url string 需要请求的 url /properties/aboutprinter.html
status int 请求 url 的返回状态码,默认是 200 400

返回信息

例子:

[
    {
        "name": "4images",
        "version": "1.1",
        "certainty": 100,
        "origin": "custom"
    }
]

描述:

FIELD TYPE DESCRIPTION EXAMPLE REQUIRED
name string 组件名称 wordpress true
version string 插件版本 0.1.0 false
certainty int 确信度 75 false
origin string 插件来源 custom false

检测逻辑

aggression
or

Q & A

  • WhatWeb 的规则如何转换成 webanalyzer 的规则?

可以看下 tools/whatweb.rb 代码,实际上我这并没有成功转换全部规则,依旧有部分 passive, aggressive 函数规则以及其他规则并没去转换, 不过成功转换比例占大多数。

  • Wappalyzer 的规则如何转换成 webanalyzer 的规则?

可以看下 tools/wappalyzer.py 代码,因为 Wappalyzer 的规则本来就是 json 格式,所以比较容易转换,但是依旧有部分字段我没有保留在我的规则中。

  • 为什么使用 json 作为规则格式?

更通用,即便更换编程语言,也可以继续复用本来的规则。

  • 和 WhatWeb、Wappalyzer 的区别?

WhatWeb 的规则使用 ruby 编写,在规则方面,其他编程语言很难复用,也只能通过子进程的方式调用 WhatWeb。 Wappalyzer 更多的作为一个浏览器插件使用。

  • 如何同步 WhatWeb、Wappalyzer 的规则?

可以看下 .travis.yml ,通过 travis-ci 达到每天自动同步规则,每周自动同步至 pypi 。

引用


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web协议与实践

Web协议与实践

克里希纳穆尔蒂 (KrishnamurthyBalachander) / 范群波 / 科学出版社 / 2003-7 / 46.0

本书全面论述了传输Web内容的系统和协议,重点讲述了Web中业已成熟和稳定的技术,如TCP/IP协议及DNS技术、HITP/1.0的设计及其与TCP之间的交互;深入阐述了Web高速缓存技术和多媒体流播技术的最新技术动态;分析了Apache Web服务器和Squid代理;还探讨了通信量的分析和测量技术。书中使用了大量示例、技术发展水平报告以及案例分析来阐述Web的工作原理和各个组件之间的交互。本书是......一起来看看 《Web协议与实践》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具