用Nikto探测一个网站所用到的技术
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 (Taiwan)
+ 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探测一个网站所用到的技术的更多相关文章
- 输入一个网站地址到网站展现的过程以及APR协议(鬼知道中间经历了什么)
以前只知道输入一个网站,然后看着返回琳琅满目的内容,其实中间经历的过程和步骤太多了.为了满足好奇心以及学习需要,特查阅了资料将其记录下来以备后续自己复习. 从我在地址栏输入www.zhihu.com ...
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
网站站点的背景调研 1. 检查 robots.txt 网站都会定义robots.txt 文件,这个文件就是给 网络爬虫 来了解爬取该网站时存在哪些限制.当然了,这个限制仅仅只是一个建议,你可以遵守,也 ...
- [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站
原文: http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/ 原文的源代码在此 太多的教程教你些一个Hello, World!了, ...
- 一个网站的head和body是如何进行优化的
我们知道任何一个网站都要被解析成html后,浏览器才能识别,换句话说,用任何一门技术做的网站,都是被浏览器解析成为html.因此我们必须懂得,一个html页面由三部分组成,那就是html的开始标签和结 ...
- 对于一个网站,如何禁止直接从浏览器Web browser中访问js文件
比如有一个网站,https://testsystem.infotest.com 在这个网站的内容文件目录下面,有一个scripts文件夹,该文件夹中有一个js文件,比如lukeTest.js文件 这样 ...
- django局域网建一个网站
之前总是运行的python manage.py runserver,用默认的在本机访问的127.0.0.1:8000,如果跟几个同学一起去开发一个网站来玩玩的话,可以这样: python manage ...
- 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)
首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...
- 从零开始用 Flask 搭建一个网站(一)
前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...
- 从零开始用 Flask 搭建一个网站(三)
从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...
随机推荐
- [转]curl_multi 实现准多进程发请求
FROM : http://blog.sina.com.cn/s/blog_515b90d00100jtnv.html curl_multi函数族:curl_multi_closecurl_multi ...
- Use CLR Profiler
Use CLR Profiler 第一次翻译对我而言比较长的E文,有很多不足之处,请见谅.(个人的习惯GC又做了名词又做了名词) 原文:http://msdn.microsoft.com/en-us/ ...
- slatsatck file模块2种写法及系统初始化
一 . lamp搭建 file2种写法 saltstack--一键yum lamp:---请注意重点: http://www.blogs8.cn/posts/WLjId80 知识点: 文件的2种写 ...
- vbs xml 解析
代码如下: Class clsGetProfile ' ルートドキュメント Private rootDoc ' xmlファイル名とセクション名をセットする ' 引数: 「1」ファイル名 NOT NUL ...
- MySql系列:中文写入数据库出现错误java.sql.SQLException: Incorrect string value: '\xE5\xxxx' for column 'xxxx' at row 1及其解决方法
在将kft-activiti-demo的数据库连接改为mysql之后,可以正常登陆,但是在新建请假流程的时候出现如下错误: Caused by: java.sql.SQLException: In ...
- iOS——数据安全性问题小结
在移动互联网快速发展的今天,iOS应用直接运行在用户的手机上,与运行在服务器后台服务相比,更有可能被黑客攻击. a.网络安全: 1.1 安全地传输用户密码 事先生成一对用于加密的公私钥,客户端登录的时 ...
- 结合php ob函数理解缓冲机制
对于一个刚刚入门的php程序员来说,php缓冲区是几乎透明的.在他们心目中,一个echo print_r 函数,数据便会‘嗖’的一声飞到浏览器上,显示出来.我也一直如此单纯地认为. 其实,在技术的世界 ...
- NFine框架的T4模板
1.前言 前段时间在网上看到一个开源框架很好的.开源:ASP.NET MVC+EF6+Bootstrap开发框架,写代码就是比较比较麻烦,分层比较多,对于我这种偷懒的人就想到了写一个T4模板.不了解框 ...
- [BZOJ 1052][HAOI2007]覆盖问题(二分答案)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1052 分析: 挺有想法的一道题,先二分答案ans,主要是判断的问题. 首先可以弄出把所 ...
- tomcat服务器上webapps里的文件名和项目名称不一样,修改方法
第一种方法:打开工程所在目录,找到一个 .mymetadata的文件,用记事本等打开,内容大致如下: <?xml version="1.0" encoding="U ...