用Nikto探测一个网站所用到的技术

时间:2023-02-27 23:49:17

Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过 625种服务器版本;超过230种特定服务器问题,包括多种有潜在危险的文件、CGI及其他问题,它可以扫描指定主机的WEB类型、主机名、特定目录、 COOKIE、特定CGI漏洞、返回主机允许的http模式等等。这是一款非常棒的工具,Nikto是网管安全人员必备的WEB审计工具之一。

当然,还可以用来探测目标网站究竟使用了什么技术。

Nikto最新版本为2.1.5版,官方下载网站:http://www.cirt.net/nikto2

Nikto是基于PERL开 发的程序,所以需要PERL环境。Nikto支持Windows(使用ActivePerl环境)、MacOSX、多种Linux 或Unix系统。在Windows平台下使用,需要使用ActivePerl环境,ActivePerl可以其官方网站上下载,下载地 址:http://www.activestate.com/activeperl

我这里用的是Linux,自带了perl,所以下载解压就能直接使用了。

wget https://cirt.net/nikto/nikto-2.1.5.tar.gz
tar -zxvf nikto-2.1.5.tar.gz
cd nikto-2.1.5 perl ./nikto.pl -h www.baidu.com [root@nowamagic nikto-2.1.5]# perl ./nikto.pl -h www.baidu.com
- ***** SSL support not available (see docs for SSL install) *****
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 115.239.210.27
+ Target Hostname: www.baidu.com
+ Target Port: 80
+ Start Time: 2015-02-20 18:25:34 (GMT8)
---------------------------------------------------------------------------
+ Server: BWS/1.1
+ Cookie BAIDUID created without the httponly flag
+ Cookie BAIDUPSID created without the httponly flag
+ Cookie BDSVRTM created without the httponly flag
+ The anti-clickjacking X-Frame-Options header is not present.
+ Uncommon header 'bduserid' found, with contents: 0
+ Uncommon header 'bdqid' found, with contents: 0xfc103f47000ce711
+ Uncommon header 'bdpagetype' found, with contents: 1
+ Server banner has changed from 'BWS/1.1' to 'Apache' which may suggest a WAF,load balancer or proxy is in place
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Server leaks inodes via ETags, header found with file /robots.txt, fields: 0x91e 0x50b02db060c00
+ File/dir '/shifen/' in robots.txt returned a non-forbidden or redirect HTTP code (200)
+ File/dir '/' in robots.txt returned a non-forbidden or redirect HTTP code (200)
+ "robots.txt" contains 103 entries which should be manually viewed.
+ Multiple index files found: index.php, index.htm, index.html
+ OSVDB-5737: WebLogic may reveal its internal IP or hostname in the Location header. The value is "http://www.baidu.com/search/error.html".
+ OSVDB-3092: /home/: This might be interesting...
+ OSVDB-3092: /tw/: This might be interesting... potential country code (*)
+ 6544 items checked: 28 error(s) and 15 item(s) reported on remote host
+ End Time: 2015-02-20 18:26:12 (GMT8) (38 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

在某些版本的Linux,可能会出现 -bash: ./nikto.pl: Permission denied 错误提示,可以用下面的命令试着用:

nikto -h www.baidu.com
./nikto.pl -h www.baidu.com
perl ./nikto.pl -h www.baidu.com

下面是 Nikto 的一些参数设置:

-c(config):使用指定的config文件来替代安装在本地的config.txt文件。
-C(Cgidirs):扫描包含指定内容的CGI目录。所包含的内容在-C后面指定。如-C /cgi/。
-D(Display):打开或关闭默认输出。输出选项:
1 显示重定向
2 显示获取的cookies信息
3 显示所有200/OK的回应
4 显示请求认证的URLs
D Debug输出
V 冗余输出
-dbcheck:检查数据库和其它重要文件的句法错误。
-e(evasion):使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:
1 随机URL编码 (非UTF-8方式)
2 自选择路径(/./)
3 过早结束的URL
4 优先考虑长随机字符串
5 参数欺骗
6 使用TAB作为命令的分隔符
7 使用变化的URL
8 使用Windows路径分隔符“\”
-f(findonly):只寻找HTTP或HTTPS端口,不进行完全扫描。
-F(Format):指定检测报告输出文件的格式,默认是txt文件格式(可以是htm、csv、txt或xml格式)
-h(host):指定目标主机,可以是IP或域名。
-H(Help):显示帮助信息。
-i(id):用于主机鉴定,其格式为:userid:password
-m(mutate):猜解更多的文件名:
1 检测根目录下的所有文件
2 猜测密码文件名
3 通过Apache(/~user 请求类型)枚举用户名
4 通过cgiwrap(/cgi-bin/cgiwrap/~user 请求类型)枚举用户名
-n(nolookup):不执行主机名查找。
-o(output):输出到指定文件
-p(port):指定使用的端口,默认为80。
-P(Pause):各项操作之间的延时时间。
-r(root):对所有请求优先考虑root的值,格式为:/目录名
-s(ssl):强制在端口上使用ssl模式
-S(Single):实行对单个目标的请求模式。
-t(timeout):超时时间,默认为2秒。
-T(Tuning):控制Nikto使用不同的方式对目标进行扫描
0 检查文件上传页面
1 检查Web日志
2 检查错误配置或默认文件
3 检查信息泄漏问题
4 检查XSS/Script/HTML问题
5 远程文件检索,从根目录检查是否存在可访问的文件
6 检查拒绝服务问题
7 远程文件检索,从任意文件检索是否存在可访问文件
8 代码执行-远程shell,检查是否存在系统命令执行漏洞
9 检查SQL注入漏洞
a 检查认证绕过问题
b 识别安装的软件版本
c 检查源代码泄露问题
x 反向链接选项
-u(useproxy):使用在config.txt中定义的代理。
-update:从cirt.net上升级数据库和插件。
-V(Version):显示插件和数据库的版本信息。
-v(vhost):虚拟主机(针对主机头)。

一些使用:

  • nikto.pl -h 10.100.100.10  #扫描主机10.100.100.10的80口上的WEB
  • nikto.pl -h 10.100.100.10 -p 443 -s -g  #扫描主机10.100.100.10端口443强制使用SSL模式 ???-g
  • nikto.pl -h 10.100.100.10 -p 80-90  扫描主机10.100.100.10 端口80-90 ,Nikto自动判定是HTTP还是HTTPS
  • nikto.pl -h 10.100.100.10 -p 80,443,8000,8080 扫描主机 10.100.100.10 端口 80 443 8000 8080
  • nikto.pl -h 10.100.100.10 -p 80 -e 167 -e 167使用IDS规避技术1 6 7

用Nikto探测一个网站所用到的技术的更多相关文章

  1. 输入一个网站地址到网站展现的过程以及APR协议(鬼知道中间经历了什么)

    以前只知道输入一个网站,然后看着返回琳琅满目的内容,其实中间经历的过程和步骤太多了.为了满足好奇心以及学习需要,特查阅了资料将其记录下来以备后续自己复习. 从我在地址栏输入www.zhihu.com ...

  2. Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识

    网站站点的背景调研 1. 检查 robots.txt 网站都会定义robots.txt 文件,这个文件就是给 网络爬虫 来了解爬取该网站时存在哪些限制.当然了,这个限制仅仅只是一个建议,你可以遵守,也 ...

  3. [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站

    原文: http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/ 原文的源代码在此 太多的教程教你些一个Hello, World!了, ...

  4. 一个网站的head和body是如何进行优化的

    我们知道任何一个网站都要被解析成html后,浏览器才能识别,换句话说,用任何一门技术做的网站,都是被浏览器解析成为html.因此我们必须懂得,一个html页面由三部分组成,那就是html的开始标签和结 ...

  5. 对于一个网站,如何禁止直接从浏览器Web browser中访问js文件

    比如有一个网站,https://testsystem.infotest.com 在这个网站的内容文件目录下面,有一个scripts文件夹,该文件夹中有一个js文件,比如lukeTest.js文件 这样 ...

  6. django局域网建一个网站

    之前总是运行的python manage.py runserver,用默认的在本机访问的127.0.0.1:8000,如果跟几个同学一起去开发一个网站来玩玩的话,可以这样: python manage ...

  7. 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)

    首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...

  8. 从零开始用 Flask 搭建一个网站(一)

    前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...

  9. 从零开始用 Flask 搭建一个网站(三)

    从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...

随机推荐

  1. WcfDataService with EntityFramework 6 的若干问题

    1.Microsoft.Data.Edm等NuGet包需要升级到5.6版本 2.SVC不要使用DataService基类 class WcfDataService1 : DataService< ...

  2. android在代码中四种设置控件(以及TextView的文字颜色)背景颜色的方法

      http://blog.csdn.net/fth826595345/article/details/9208771 主题 TextView 转载请注明出处: http://blog.csdn.ne ...

  3. windows 上执行python pywin32&period;exe

    大家熟知的python脚本可以在linux系统上直接运行,因为linux上会安装python编译器 然而windows不会安装,如果想要别人直接运行你发布的python脚本,一种方法是在他的windo ...

  4. git add 之后因为没提交正确文件需要撤销

    之后因为没提交正确文件需要撤销时,采用如下方法:git log //查看提交记录MT6592_L_2SIM_GIT$ git reset --hard 717af7c9664be098939cb266 ...

  5. &lpar;转&rpar;&period;net开发者对android第二周的学习体会

    这一周相对没有春节时这么闲了,白天也比较多的工作要做,每天晚上又要被我三岁的女儿折腾到十点, 实在没有多少时间学习.在前一周的基础上,这周我试着自己练习写了一个个人管理的android的程序,主要实现 ...

  6. Javascript的内容

    JS简介和变量 {JS的三种方式}            1 HTML中内嵌JS(不提倡使用)            <button onclick="javascript:alert ...

  7. JEESZ-Redis分布式缓存安装和使用

    独立缓存服务器: Linux CentOS Redis 版本: 3.0下面我们针对于Redis安装做下详细的记录:编译和安装所需的包:# yum install gcc tcl创建安装目录:# mkd ...

  8. PHP的AES加密类

    PHP的AES加密类 aes.php <?php /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

  9. 是否编码输出html字符

    template.config(name, value)方法用于更改引擎的默认配置. 其中字段escape,类型为boolean,默认为true. 首先,我们不修改配置信息输出一段带有html标签的字 ...

  10. hive添加UDF

    hive添加UDF 步骤如下: 函数分为永久和临时函数,后者会话退出则消失,前者不会 查看已有函数(创建好后也可以通过这个来查看是否成功) show functions; 写UDF的java文件,如: ...