Service 与 arg 说明

Service 说明

Service 是指对目标初步扫描后获取的指纹,是判断是否调用该插件的开关。在该参数位置填写 fingerprint.服务名

开发者可进入 已经上线的特征页面 查看已有的特征。如果没有该特征,需要按照特征命名规范来编写,之后需要提交特征。

" class="reference-link">Service 命名规范

  1. 命名选取, 优先使用英文名。如无英文名则使用官网顶级域名。若有多个产品,则需要使用下划线来区分。字母统一小写。

    示例:

    WordPress:fingerprint.wordpress
    禅道 项目管理软件:fingerprint.zentao
    用友 CRM:fingerprint.yongyou_crm
    用友 U8:fingerprint.yongyou_u8

  2. 如果名称中有空格-,统一使用 _

    示例:

    北京东方文辉 FSM-CMS: fingerprint.bjdfwh_fsmcms

  3. 如果名称是以数字开始的,则在数字前加一个 _

    示例:

    74CMS: fingerprint._74cms

" class="reference-link">Service 提交说明

Service 提交指纹内容分为两部分,第一部分为特征路径,第二部分为该路径的特征值。

尽量选取该应用特有的,其他 cms不可能有的。可以添加多个特征如 ecshop,任何一个特征命中就认为识别成功

  • 第一种:图片类

    .ico .gif .png .jpg,如 favicon.ico 等等

    图片类的特征值为其对应的 md5 值。要尽量选取多个版本都有,且 md5 值不会变化的。

    eg:

    1. 特征路径: favicon.ico
    2. 特征值: 89b932fcc47cf4ca3faadb0cfdef89cf
  • 第二种 文本型

    .js .css .htm .php,如 robots.txt 等

    文本类要尽量选取有 cms 特征,或者本身的字符串作为特征。

    eg:

    1. 特征路径: static/common/js/topic.js
    2. 特征值: startbbs

在提交特征时,至少提供 1 个图片特征,1 个文字特征,2〜3 个测试地址

phpwiki 特征样例

特征路径 特征值
favicon.ico 87B4E4C260FFB28A54FF5ACD15A45B6F
themes\default\Wikiwyg\Wikiwy\Phpwiki.js phpwiki
themes\default\phpwiki.css wiki

" class="reference-link">Service 对应 arg 说明

arg 对应的 Service 共同约定的参数。下表中给出了部分 Service 对应的 arg 说明。

service arg 例子
www 一个经过模糊过滤的链接 assign('www', 'http://www.test.com')
www_form 一个爬虫构造过的 form 表单的 dict 结构 见下方详细说明
ip IP地址 assign(fingerprint.ip, '127.0.0.1')
dns 新发现的域名 assign(fingerprint.dns, 'www.baidu.com')
ssh 开放 SSH 服务的 IP 地址 assign(fingerprint.ssh, '127.0.0.1')
ftp 开放 FTP 服务的 IP 地址 assign(fingerprint.ftp, '127.0.0.1')
mssql 开放 MSSQL 服务的 IP 地址 assign(fingerprint.mssql, '127.0.0.1')
mysql 开放 MySQL 服务的 IP 地址 assign(fingerprint.mysql, '127.0.0.1')
telnet 开放 Telenet 服务的 IP 地址 assign(fingerprint.telnet, '127.0.0.1')
vnc 开放 VNC 服务的 IP 地址 assign(fingerprint.vnc, '127.0.0.1')

应用(如: CMS)特征的 arg 一般都为域名,具体可在该特征详细信息界面查看

例如: assign(fingerprint.discuz, 'http://www.test.com/')

  • www_form arg 详细说明

    www_form 的 arg 为一个爬虫构造过的 form 表单的 dict 结构。

    比如有一表单如下:

    1. <form action="http://www.abc.com/login.asp" method="post">
    2. <input type="text" name="login" value="test">
    3. <input type="password" name="password" value="test">
    4. <input type="radio" name="graphicOption" value="maxmum" />
    5. <input type="radio" name="graphicOption" value="minimum" checked="checked" />
    6. <input type="submit" value="Submit" />
    7. </form>

    则其对应的 arg 为:

    1. {
    2. 'action': 'http://www.abc.com/login.asp',
    3. 'inputs': [
    4. {'type': u'text', 'name': u'login', 'value': 'test'},
    5. {'type': u'password', 'name': u'password', 'value': 'test'},
    6. {'type': u'radio', 'name': u'graphicOption', 'value': u'minimum'}
    7. ],
    8. 'ref': 'http://www.abc.com/',
    9. 'method': u'post'
    10. }