https://www.cnblogs.com/Rlins/articles/16369656.html
wed渗透:记录kali系统下扫描工具nikto的使用-优快云博客
nikto(初步了解)
简介
Nikto是一个开源的WEB扫描评估软件(网页服务器扫描器),可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI,超过230种特定服务器问题以及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。Nikto是基于PERL开发的程序,所以需要PERL环境。Nikto支持Windows(使用ActiveState Perl环境)、Mac OSX、多种Linux 或Unix系统。Nikto使用SSL需要Net::SSLeay PERL模式,则必须在Unix平台上安装OpenSSL。因为其软件本身并不经常更新,最新和最危险的可能会检测不到。
功能
Nikto 爬取目标站点并生成大量预先准备的请求,尝试识别应用中存在的危险脚本和文件。Nikto用来检查网页服务器和其他多个范畴内的项目:
* 错误的配置
* 默认文件和脚本
* 不安全的文件和脚本
* 过时软件
Nikto使用Rain Forest Puppy的LibWhisker实现HTTP功能,并且可以检查HTTP和HTTPS。同时支持基本的端口扫描以判定网页服务器是否运行在其他开放端口。 Nikto可以使用'update'选项从主版本站点自动更新,以应对新的弱点。 Nikto可以在启动时加载用户自定义的检测规则,当然前提是自定义检测规则已经放在了user_scan_database.db文件内(这个文件在插件目录下);即使使用-update选项升级,自定义的检测规则也不会被覆盖。Nikto也具有反入侵探测(IDS)功能。
Nikto 是 Kali 中的命令行工具,用于评估 Web 应用的已知安全问题,可以帮助我们对Web的安全进行审计,及时发现网站存在的安全漏洞,对网站的安全做进一步的扫描评估。
安装及更新
在kali中,nikto是自带的,想要下载其他的nikto,可以去网上搜索教程安装。
在kali中,输入nikto可以查看版本信息和其他基本信息
nikto -update 更新版本信息
这儿没有更新成功,重新输入
apt -get install nikto 下载完成更新版本信息
可以看见nikto的版本完成更新从2.1.6更新到了2.5.0
nikto基本使用语句
nikto -h 查看帮助和部分常用参数,如果要查看更详细的帮助信息,可以输入 man nikto
nikto -v 来查看工具版本和插件版本
nikto -h (url)/nikto -host www.baidu.com 扫秒目标主机,默认扫描端口是80
指定扫描端口:在后面加上-port “端口号”
nikto -h www.baidu.com -port 80/443....
同样的还可以指定SSL协议,进行https扫描
nikto -h www.baidu.com -ssl -port 443
扫描多个网址,可以先把多个网址放在一个txt文件里,例如放在url.txt里
nikto -h url.txt
扫描网站下的子目录可以使用参数-c进行目录爆破,扫描
nikto -h www.baidu.com -c /a
目前就学到了这些基础语句,之后学习渗透会进行更近一步的学习
PUT请求
之前在学习GET和POST的时候,也学到了PUT,但在写题的过程中一直没有遇到,逐渐也就忘记了,今天写题碰到了它,就再来重新学习一下。对请求方法还很模糊的,可以去看看这位大佬的博客HTTP 请求方法 GET/POST/PUT/DELETE_http put请求-优快云博客
HTTP的幂等性及POST、GET、PUT、DELETE的区别及请求方式HTTP的幂等性及POST、GET、PUT、DELETE的区别及请求方式_http delete请求-优快云博客
浏览器在发PUT请求前会先发OPTIONS请求进行预检,看服务端是否可以接受PUT请求,若可以就在响应头添加字段告诉浏览器可以继续发送PUT请求,说简单点就是PUT请求就是浏览器向服务端会发送两次请求,它跟POST类似,但两者实际上并不相同,在PUT请求中,如果请求的文件不存在,那么就会要求服务端根据请求创建资源文件,如果文件存在,那么就会覆盖原本的文件内容从而达到更新修改的目的。差不多就是这个意思吧,可能我说的也有错,请大佬多多指正。
[NSSRound#1 Basic]basic_check
打开环境后,看了各种请求头,也用dirsearch扫了,用BP抓了包,都没有什么发现,去搜了WP才发现需要用到nikto或者curl扫描,以及PUT请求。(今天又学到知识,脑子又长东西了!!!)
我们使用nikto对它进行扫描
nikto -h http://node4.anna.nssctf.cn:28875/
看到了这个/nikto-test-0voToHcf.html: HTTP method 'PUT' allows clients to save files on the web server. See: https://portswigger.net/kb/issues/00100900_http-put-method-is-enabled
这个报错信息表明,在对一个Web服务器进行nikto安全扫描时,nikto工具尝试使用HTTP PUT方法对一个文件进行了测试。HTTP PUT方法允许客户端向服务器上传文件。这个报错提示你的Web服务器配置不当,允许通过HTTP PUT方法上传文件,这可能导致安全隐患,因为这可能允许未授权的文件上传和代码执行。
发现了PUT请求,对他进行抓包,修改请求方式为PUT,并上传木马
可以看见s.php被创建了,然后我们放包,访问s.php进行GET传参cmd=cat /flag
得到flag
笔记
在写题过程中,在发送请求的时候,会出现204连接不成功的现象,不知道为什么,重新换一个全新php名称就解决了,但具体原因是什么不知道。另外,对nikto其实并不熟悉,也还没有完全掌握原理及使用,只是简单的用nikto扫描了一下网址发现了PUT请求,但对nikto的具体的使用,以及在渗透中的使用还不会,还有进行扫描后对它给出的结果没有完全理解,需要多去使用nikto和掌握他的原理、它给出的信息。还有一点,做到的这一题还可以使用curl进行扫描,但对curl还没有学习,还需要对curl进行学习以及使用。