【网络安全 | 指纹识别工具】WhatWeb使用详析

前言

WhatWeb 是一款用于识别 Web 应用程序和 Web 服务器的开源工具。它可以识别网站使用的编程语言、Web 框架、Web 服务器软件、Web 应用程序等信息,从而帮助安全测试人员快速了解目标网站的技术特征,发现可能存在的漏洞。

本文将对 WhatWeb 的使用方法进行讲解

文章目录

    • 前言
    • 正文
    • 扫描网站指纹
      • 实例
    • 设置扫描强度
    • 扫描内网网段
    • 批量扫描
    • 常用命令
    • 编写插件
    • 帮助

正文

Kali虚拟机自带whatweb工具,不需要安装、直接使用即可。

在这里插入图片描述

扫描网站指纹

  • 在终端或命令行中输入 whatweb 命令,加上要扫描的网站 URL 或 IP 地址,例如:whatweb example.com
  • WhatWeb 会自动识别目标网站的相关信息,并输出到终端或命令行中。
  • 可以使用 -v 参数来显示所有信息,例如:whatweb -v example.com

实例

whatweb www.alibaba.com

回显如下:

在这里插入图片描述
解释如下:

对于 http://www.alibaba.com:状态码(Status Code):301 Moved Permanently国家(Country):中国(CN)HTTP 服务器(HTTP Server):TengineIP 地址(IP):59.82.122.231由 Tengine 提供支持(Powered By Tengine)重定向地址(Redirect Location):https://www.alibaba.com/Tengine Web 服务器页面标题(Title):301 Moved Permanently不常见的头部信息(Uncommon Headers):timing-allow-origin、eagleid、server-timing对于 https://www.alibaba.com/:状态码(Status Code):200 OKCookies:ali_apache_id、cna、ug_se_c国家(Country):中国(CN)使用 HTML5 技术HttpOnly:ug_se_cIP 地址(IP):59.82.122.231Open Graph Protocol:site(100002227819697, 124207444332529)脚本类型:application/ld+json、text/javascript严格传输安全性(Strict Transport Security):max-age=31536000页面标题(Title):Alibaba.com: Manufacturers, Suppliers, Exporters & Importers from the world's largest online B2B marketplace不常见的头部信息(Uncommon Headers):render-policy、x-content-type-options、timing-allow-origin、eagleid、server-timingX-Frame-Options:DENYX-XSS-Protection:1; mode=block

加上-v可以显示详细的输出信息:

whatweb -v www.alibaba.com

在这里插入图片描述

设置扫描强度

加上-a可以指定扫描等级,WhatWeb有3种扫描级别,通过数字1、3、4选择

如:

whatweb www.alibaba.com -a 3

在这里插入图片描述

  • 1表示发送1次http请求
  • 3表示发送少量http请求
  • 4表示发送大量http请求

扫描内网网段

命令行:

whatweb --no-errors -t 255 内网网段

批量扫描

扫描多个不同网站时,将要扫描网站的域名或IP保存到文件(如1.txt)中,再使用-i参数来连接该文件即可,如:

whatweb -i "root/1.txt"

常用命令

  • whatweb [URL]:扫描指定的 URL,输出识别结果。
  • whatweb -v [URL] :以详细模式扫描指定的 URL,显示更多信息。
  • whatweb [URL] -a "User-Agent":指定自定义的用户代理进行扫描。
  • whatweb [URL] -t 10:设置超时时间为 10 秒。
  • whatweb [URL] -x "/path/to/exclude":指定要排除的目录或文件。
  • whatweb [URL] -p 80,443:指定要扫描的端口号,多个端口使用逗号分隔。
  • whatweb -iL [file.txt]:从文件中读取多个 URL 进行扫描。
  • whatweb --color=never:禁用彩色输出。

编写插件

whatweb对国内的网站识别并不友好,我们可以自己写插件,兼容更多国内的网站。

whatweb的官方模板:

Plugin.define "Plugin-Template" doauthor "Enter Your Name"version "0.1"description "Describe what the plugin identifies. Include the homepage of the software package"examples %w| include-some.net example-websites.com here.com |\# a comment block here is a good place to make notes for yourself and others \# There are four types of matches: regexp, text, ghdb \# Matches are enclosed in {} brackets and separated by commas matches [{:name=>"a brief description of the match, eg. powered by in footer",:certainty=>100, # 100 is certain, 75 is probably and 25 is maybe. if omitted, it defaults to 100. :regexp=>/This page was generated by http://www.genericcms.com\/en\/products\/generic-cms\/">Generic CMS<\/a>/ },{:name=>"title",:certainty=>75,:text=>"<title>Generic Homepage</title>" }]end

帮助

更多语法在帮助里可以找到,使用以下命令以获得帮助:

whatweb -h
WhatWeb - Next generation web scanner version 0.5.5.
Developed by Andrew Horton (urbanadventurer) and Brendan Coles (bcoles).
Homepage: https://www.morningstarsecurity.com/research/whatwebUsage: whatweb [options] <URLs>TARGET SELECTION:<TARGETs>                     Enter URLs, hostnames, IP addresses, filenames orIP ranges in CIDR, x.x.x-x, or x.x.x.x-x.x.x.xformat.--input-file=FILE, -i         Read targets from a file. You can pipehostnames or URLs directly with -i /dev/stdin.TARGET MODIFICATION:--url-prefix                  Add a prefix to target URLs.--url-suffix                  Add a suffix to target URLs.--url-pattern                 Insert the targets into a URL.e.g. example.com/%insert%/robots.txtAGGRESSION:
The aggression level controls the trade-off between speed/stealth and
reliability.--aggression, -a=LEVEL        Set the aggression level. Default: 1.1. Stealthy                   Makes one HTTP request per target and alsofollows redirects.3. Aggressive                 If a level 1 plugin is matched, additionalrequests will be made.4. Heavy                      Makes a lot of HTTP requests per target. URLsfrom all plugins are attempted.HTTP OPTIONS:--user-agent, -U=AGENT        Identify as AGENT instead of WhatWeb/0.5.5.--header, -H                  Add an HTTP header. eg "Foo:Bar". Specifying adefault header will replace it. Specifying anempty value, e.g. "User-Agent:" will remove it.--follow-redirect=WHEN        Control when to follow redirects. WHEN may be`never', `http-only', `meta-only', `same-site',or `always'. Default: always.--max-redirects=NUM           Maximum number of redirects. Default: 10.AUTHENTICATION:--user, -u=<user:password>    HTTP basic authentication.--cookie, -c=COOKIES          Use cookies, e.g. 'name=value; name2=value2'.--cookie-jar=FILE             Read cookies from a file.PROXY:--proxy                       <hostname[:port]> Set proxy hostname and port.Default: 8080.--proxy-user                  <username:password> Set proxy user and password.PLUGINS:--list-plugins, -l            List all plugins.--info-plugins, -I=[SEARCH]   List all plugins with detailed information.Optionally search with keywords in a commadelimited list.--search-plugins=STRING       Search plugins for a keyword.--plugins, -p=LIST            Select plugins. LIST is a comma delimited setof selected plugins. Default is all.Each element can be a directory, file or pluginname and can optionally have a modifier, +/-.Examples: +/tmp/moo.rb,+/tmp/foo.rbtitle,md5,+./plugins-disabled/./plugins-disabled,-md5-p + is a shortcut for -p +plugins-disabled.--grep, -g=STRING|REGEXP      Search for STRING or a Regular Expression. Showsonly the results that match.Examples: --grep "hello"--grep "/he[l]*o/"--custom-plugin=DEFINITION    Define a custom plugin named Custom-Plugin,Examples: ":text=>'powered by abc'"":version=>/powered[ ]?by ab[0-9]/"":ghdb=>'intitle:abc \"powered by abc\"'"":md5=>'8666257030b94d3bdb46e05945f60b42'""{:text=>'powered by abc'}"--dorks=PLUGIN                List Google dorks for the selected plugin.OUTPUT:--verbose, -v                 Verbose output includes plugin descriptions.Use twice for debugging.--colour,--color=WHEN         control whether colour is used. WHEN may be`never', `always', or `auto'.--quiet, -q                   Do not display brief logging to STDOUT.--no-errors                   Suppress error messages.LOGGING:--log-brief=FILE              Log brief, one-line output.--log-verbose=FILE            Log verbose output.--log-errors=FILE             Log errors.--log-xml=FILE                Log XML format.--log-json=FILE               Log JSON format.--log-sql=FILE                Log SQL INSERT statements.--log-sql-create=FILE         Create SQL database tables.--log-json-verbose=FILE       Log JSON Verbose format.--log-magictree=FILE          Log MagicTree XML format.--log-object=FILE             Log Ruby object inspection format.--log-mongo-database          Name of the MongoDB database.--log-mongo-collection        Name of the MongoDB collection.Default: whatweb.--log-mongo-host              MongoDB hostname or IP address.Default: 0.0.0.0.--log-mongo-username          MongoDB username. Default: nil.--log-mongo-password          MongoDB password. Default: nil.--log-elastic-index           Name of the index to store results. Default: whatweb--log-elastic-host            Host:port of the elastic http interface. Default: 127.0.0.1:9200PERFORMANCE & STABILITY:--max-threads, -t             Number of simultaneous threads. Default: 25.--open-timeout                Time in seconds. Default: 15.--read-timeout                Time in seconds. Default: 30.--wait=SECONDS                Wait SECONDS between connections.This is useful when using a single thread.HELP & MISCELLANEOUS:--short-help                  Short usage help.--help, -h                    Complete usage help.--debug                       Raise errors in plugins.--version                     Display version information.EXAMPLE USAGE:
* Scan example.com../whatweb example.com* Scan reddit.com slashdot.org with verbose plugin descriptions../whatweb -v reddit.com slashdot.org* An aggressive scan of wired.com detects the exact version of WordPress../whatweb -a 3 www.wired.com* Scan the local network quickly and suppress errors.whatweb --no-errors 192.168.0.0/24* Scan the local network for https websites.whatweb --no-errors --url-prefix https:// 192.168.0.0/24* Scan for crossdomain policies in the Alexa Top 1000../whatweb -i plugin-development/alexa-top-100.txt \--url-suffix /crossdomain.xml -p crossdomain_xml
  • TARGET SELECTION: 设置目标选择,可以输入URL、主机名、IP地址、文件名或CIDR格式的IP范围。
  • TARGET MODIFICATION: 目标修改选项,可以添加URL前缀或后缀,也可以将目标插入到URL中的指定位置。
  • AGGRESSION: 设置扫描侵入性级别,控制速度、隐蔽性和可靠性之间的平衡。
  • HTTP OPTIONS: 设置HTTP选项,如自定义User-Agent、添加HTTP头、控制重定向行为等。
  • AUTHENTICATION: 设置HTTP基本身份验证和cookie。
  • PROXY: 设置代理服务器,包括主机名、端口和身份验证信息。
  • PLUGINS: 插件相关选项,如列出插件、查看插件信息、搜索插件、选择插件等。
  • OUTPUT: 设置输出选项,如详细与简要输出、是否使用颜色、日志记录等。
  • LOGGING: 设置日志记录选项,包括日志文件格式和存储位置。
  • PERFORMANCE & STABILITY: 设置性能和稳定性选项,如线程数、连接超时时间等。
  • HELP & MISCELLANEOUS: 帮助和其他杂项选项,如显示帮助信息、调试模式、显示版本号等。
  • EXAMPLE USAGE: 示例用法,演示了几个常见的命令用法和参数组合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/582244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 如何将某个分支的某个提交复制到另外一个分支

请直接去看原文: 原文链接:git 如何将某个分支的某个提交复制到另外一个分支_gitlab里面的markdown文件可以复用其他分支的吗-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------…

GIT如何重新生成ssh密钥过程

GIT如何重新生成ssh密钥过程 一、生成密钥前需要把之前的密钥删除吆 第一步&#xff1a;重新配置用户名和邮箱&#xff08; Git Bash 或命令窗口&#xff09; 1、配置用户命令&#xff1a;git config --global user.name “xxxxx” 2、配置邮箱命令&#xff1a;git config …

【我与Java的成长记】之this引用和构造方法的使用详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、this的使用this引用的特…

Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍

这里不涉及到源码&#xff0c;只是根据网上的一些文章总结一下&#xff0c;目前不需要细究&#xff0c;只需要知道大概就好&#xff0c;除非你的工作是二次开发ES 一、​Term Index(词项索引)1、FSM&#xff08;Finite State Machine&#xff09;有限状态机2、FSA&#xff08;F…

力扣刷题记录(20)LeetCode:198、213、337

198. 打家劫舍 我们从第一个开始分析&#xff1a; dp[i]:i表示索引&#xff0c;dp表示当前索引可以拿到的最高金额 索引为0时&#xff0c;可以拿到的最高金额为1&#xff1b; 索引为1时&#xff0c;可以拿到的最高金额就是在索引[0,1]之间取&#xff0c;为2 索引为2时&…

雷军的最后一战,就这?

作者 | 魏启扬 来源 | 洞见新研社 2021年3月30日&#xff0c;小米官宣进军电动汽车赛道后的1003天&#xff0c;小米汽车亮相了。 由于是雷军“人生中最后一次重大的创业项目”&#xff0c;押上了雷军“人生所有积累的战绩和声誉”&#xff0c;小米对于造车极为重视&#xff…

性能手机新标杆,一加 Ace 3 发布会定档 1 月 4 日

12 月 27 日&#xff0c;一加宣布将于 1 月 4 日发布新品一加 Ace 3。一加 Ace 系列秉持「产品力优先」理念&#xff0c;从一加 Ace 2、一加 Ace 2V 到一加 Ace 2 Pro&#xff0c;款款都是现象级爆品&#xff0c;得到了广大用户的认可与支持。作为一加 2024 开年之作&#xff0…

【没有哪个港口是永远的停留~论文解读】Both Style and Fog Matter

Both Style and Fog Matter 原文&#xff1a;https://arxiv.org/pdf/2112.00484.pdf 解决问题&#xff1a;大雾、下雨、下雪天模糊场景 其他人做法&#xff1a; 1-去雾算法&#xff0c;人工干扰 2-合成的雾图像&#xff0c;不像真实的雾图像那样真实&#xff0c;也会扩大清…

12.27_黑马数据结构与算法笔记Java(补1)

目录 266 活动选择问题 分析 267 活动选择问题 贪心 268 分数背包问题 贪心 269 0-1 背包问题 贪心 270 斐波那契 动态规划 271 斐波那契 动态规划 降维 272 Bellman Ford 动态规划 分析 273 Bellman Ford 动态规划 实现1 274 Bellman Ford 动态规划 实现2 275 Leetco…

(12)Linux 常见的三种进程状态

&#x1f4ad; 前言&#xff1a;本章我们专门讲解进程的状态。我们先学习具体的 Linux 系统状态&#xff0c;再去介绍 OS 学科面对的概念如何理解 —— 运行态、终止态、阻塞态以及挂起态。 进程状态&#xff08;Process Status&#xff09; 什么是进程状态&#xff1f; 进程…

C语言—每日选择题—Day64

前言 两天没更新了&#xff0c;作者在复习期末考试&#xff0c;更新一波&#xff0c;祝大家都能顺利通过期末考试&#xff01;&#xff01;&#xff01; 指针相关博客 打响指针的第一枪&#xff1a;指针家族-CSDN博客 深入理解&#xff1a;指针变量的解引用 与 加法运算-CSDN博…

存储:双磁盘RAID0磁盘阵列搭建

磁盘介绍 固态磁盘分为SATA口和PCIE口&#xff0c;SATA单盘实测最高550MB/s&#xff0c; PCIE 4.0单盘写入实测最高2.2GB/s。以上均为缓内速度。 SATA口和PCIE口速度对比 准备工作 准备同型号的两个固态磁盘&#xff08;不同型号的磁盘组raid会以较低的速度和空间的raid为主…

JavaWeb——监听器Listener 过滤器Filter——韩顺平学习笔记

文章目录 JavaWeb 三大组件之监听器 ListenerListenerJavaWeb 的监听器ServletContextListener 监听器ServletContextAttributeListener 监听器其它监听器-使用较少HttpSessionListener 监听器HttpSessionAttributeListener 监听器ServletRequestListener 监听器ServletRequest…

idea中终端Terminal页面输入命令git log后如何退出

1、idea中Terminal输入命令git log后如何退出&#xff1f; 2、解决 输入q键会自动退出git log命令

反转链表算法及优化(leetcode第206题)

题目描述&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例…

Python 爬虫 小案例 之 快手下载视频

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 知识点: 动态数据抓包 requests发送请求开发环境: python 3.8 运行代码 pycharm 2022.3 辅助敲代码 requests pip insta…

vue3-富文本编辑器(vue-quill)

官网&#xff1a;VueQuill | Rich Text Editor Component for Vue 3 安装 pnpm add vueup/vue-quilllatest 使用 局部使用 先导包 import { QuillEditor } from vueup/vue-quill import vueup/vue-quill/dist/vue-quill.snow.css; 再使用 <QuillEditor theme"snow…

最新AI系统ChatGPT网站H5系统源码,支持Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

python 实现粒子群算法(带绘制)

本文章用python实现了粒子群算法&#xff0c; 标准PSO的算法流程如下&#xff1a; 初始化一群微粒&#xff08;群体规模为m&#xff09;&#xff0c;包括随机的位置和速度&#xff1b;评价每个微粒的适应度&#xff1b;对每个微粒&#xff0c;将它的适应值和它经历过的最好位…

C++day2作业

把课上strcut的练习&#xff0c;尝试着改成class #include <iostream>using namespace std; class Stu { private:int age;string sex;int hign; public:int soce;void get_information();void set_information(); }; void Stu::set_information() {static Stu s1;cout …