渗透测试 ( 10 ) --- 扫描 web目录、文件 (dirb、wfuzz、wpscan、nikto)

当使用一个工具扫描完成后,如果没发现漏洞,可以再使用其他 web 扫描工具再扫描下,因为每个工具可能侧重点不一样,扫描出来的漏洞就不一样。

敏感文件目录探测方法大全

常用后台
工具扫描
wfuzz
dirseach
web 爬虫
搜索引擎
文件路径
查看源码
源码审计
漏洞利用
社会工程
专门的技术支持目录
旁站C段子域名

敏感文件目录探测

敏感文件、敏感目录挖掘一般都是靠工具、脚本来找,当然大佬手工也能找得到。

探测方法大全

敏感文件目录探测总结

:https://cloud.tencent.com/developer/article/1925s

敏感目录信息收集:https://www.cnblogs.com/lalalaxiaoyuren/p/14473786.html

常见敏感文件或目录

通常我们所说的敏感文件、敏感目录大概有以下几种:
后台
robots.txt
数据库log
sitemap.xml
mysql.sql
licence.txt
Git
hg/Mercurial
svn/Subversion
bzr/Bazaar
Cvs
WEB-INF泄露
备份文件泄露、配置文件泄露

常用后台

admin/
admin.后缀
admin/login.后缀
manage
webmanager 等等

工具扫描

需要专门的爆破字典。常用的工具有:
(1)御剑(真的很万能,文末附上全家桶)
(2)爬虫(AWVS、Burpsuite等)
(3)搜索引擎(Google、Github等)
(4)wwwscan
(5)BBscan(一位巨佬写的python脚本:https://github.com/lijiejie/BBScan )
(6)GSIL(也是一位巨佬写的python脚本:https://github.com/FeeiCN/GSIL )
(7)社交平台

wfuzz

github 地址:https://github.com/xmendez/wfuzz
Wfuzz 官网文档:https://wfuzz.readthedocs.io/en/latest/
Wfuzz初上手:https://gh0st.cn/archives/2018-10-28/1

dirseach

https://github.com/maurosoria/dirsearch

web 爬虫

利用 burpsuite、awvs 等软件爬行

搜索引擎

site:http://xxx.xxx system
site:http://xxx.xxx 内部
site:http://xxx.xxx 系统
site:目标 admin
site:目标 login
site:目标 管理员登陆
site:目标 后台
site:目标 中心
site:目标 登录
site:目标 登陆
site:目标 管理中心
等等很多,可以自行拓展

文件路径

查看网站图片,其中目录很可能包含管理目录,这里查看要躲在几个地方查看
1.首页
2.新闻中心
3.上传点 就是查看的图片要有不同上传点上传的图片,如果图片保存路径在后台的下级目录,那么这种方法屡试不爽。

查看源码

很多首页源码里就有定义后台路径,所以可以试试。

源码审计

假设你知道了网站的CMS,可以指定CMS渗透,拿源码,审计后台

漏洞利用

•利用IIS短文件漏洞爆破猜解目录和文件名
•SVN源码泄露漏洞
•目录遍历,备份文件
•可以插入任意图片URL的时候,可以利用referer钓后台
•XSS或注入得到后台
XSS学问很多,提醒了你可以通过XSS就可以了
注入也可以配合XSS,前提是没有转移,支持修改,并且需要插在留言表或后台可以输出的地方。SQL注入可以查看访问记录等。

社会工程

社工的话,事在人为了。
可以联系客服或管理员,骗取后台,理由可信,成功率没问题。CMS判断出来后,可以下源码看他的后台在哪(前提未修改),也可以百度此CMS后台。

专门的技术支持目录

比如是某一个CMS,或者是某一个建站公司建的网站有些网站底部,会有网站技术支持等信息,寻找尝试是否有专门的技术支持后台

旁站C段子域名

可能不在主站上,后台有可能在旁站C段子域名上。

实战

全网最详细的渗透测试靶机实操步骤——vulnhub靶机实战(六)covfefe [简单的利用缓冲区溢出提权]:https://blog.csdn.net/hyjcking/article/details/128129024

工具 集合


​github 更多工具:https://github.com/topics/dirb
github 上 fuzz 工具、字典:https://github.com/search?q=fuzz

dirsearch、dirmap:https://github.com/search?q=dirsearch

  • dirsearch:https://github.com/maurosoria/dirsearch
  • dirmap ( web目录扫描工具,功能将会强于DirBuster、Dirsearch、cansina、御剑 ):https://github.com/H4ckForJob/dirmap

御剑后台扫描:https://blog.csdn.net/qq_35599248/article/details/119396936

渗透利器-kali工具 (第二章-4) 信息收集之目录扫描

  • :http://t.zoukankan.com/xz25-p-12829315.html
  • :https://blog.csdn.net/m0_52341820/article/details/124145281

优秀的 web 目录扫描工具至少具备以下功能:

  • 并发引擎
  • 能使用字典
  • 能纯爆破
  • 能爬取页面动态生成字典
  • 能 fuzz 扫描
  • 自定义请求
  • 自定义响应结果处理...

src (安全应急响应中心) 、漏洞平台

大部分规模比较大的公司都有自己独立的 src,或者托管于 补天、漏洞盒子等众测平台

渗透师 导航:https://www.shentoushi.top/index

安全客 导航:https://www.anquanke.com/src/

托管于 补天 的 src ( 专属SRC 企业SRC 公益SRC ):https://www.butian.net/Reward/plan/2

关键字:公益src、众测

漏洞怎么挖 | 公益SRC上榜技巧:https://zhuanlan.zhihu.com/p/347961889

国外、国内 赏金平台

Bounty : 赏金

推荐使用国外平台,可以赚取美元。国内公司在上面发布赏金时,也会比国内高,因为是用美元支付的。国外平台小漏洞也会给钱。国内平台小漏洞不一定给钱。。。

大厂漏洞赏金会比较多,百度、腾讯、阿里、字节、拼多多、美团 等。。。

国外赏金平台列表

HackerOne 网址( 推荐 ):https://www.hackerone.com/
intigriti 网址:https://www.intigriti.com/
BugCrowd 网址:https://www.bugcrowd.com/
OpenBugBounty 网址:https://www.openbugbounty.org/
Cobalt
Bountysource 网址:https://bountysource.com/
Bounty Factory
Coder Bounty
FreedomSponsors
FOSS Factory
SynAck 网址:https://www.synack.com/
HackenProof
Detectify
YesWeHack 网址:https://www.yeswehack.com/

国内赏金

如何通过漏洞挖掘赚取一百万:认识六位百万黑客富翁
https://zhuanlan.zhihu.com/p/142548966

国外有什么网站可以赚美金?

https://www.zhihu.com/question/353079450

1、dirb 

dirb:Web Content Scanner。DIRB 是一个 Web内容扫描器。它查找现有(和/或隐藏)的 Web 对象。通过对 web 服务器发起基于字典的攻击并分析响应来工作的。可以参考:brain(x)

使用格式:dirb <url_base> <url_base> [<wordlist_file(s)>] [options]

选项:
       -a <agent_string>    指定 user-agent
       -b                   在给定的URL中,不进行压缩或合并 /../ 和 /./
       -c <cookie_string>   指定 cookie
       -E <certificate>     指定证书文件               
       -f                   NOT_FOUND(404)检测的微调。
       -H <header_string>   指定请求头
       -i                   不区分大小写进行搜索。
       -l                   找到后打印 "Location" 标题。
       -N <nf_code>         忽略指定的 HTTP code 的响应。               
       -o <output_file>     保存输出到硬盘文件
       -p <proxy[:port]>    指定代理               
       -P <proxy_username:proxy_password>  指定代理认证               
       -r                      不进行递归搜索
       -R                      交互式递归。(询问要扫描哪个目录)
       -S                      静默模式。不显示测试的单词。
       -t                      URL 不强制使用 / 结尾。
       -u <username:password>  指定用户名和密码
       -v                      显示不存在页面
       -w                      出现警告信息时不停止
       -x <extensions_file>    使用 指定的字典文件 扩大搜索。

                                         更好用的字典可以到网上去下载 svndigger
       -X <extensions>      使用指定的 扩展名 进行搜索
       -z <milisecs>          添加毫秒延迟,避免洪水攻击

基本使用

对目标进行基本扫描
        dirb http://192.168.186.131/
        dirb https://www.baidu.com  /usr/share/wordlists/dirb/big.txt
        dirb https://www.baidu.com/ -o output.txt /usr/share/wordlists/dirb/big.txt
        dirb https://www.baidu.com -X .php,.txt,.zip  /usr/share/wordlists/dirb/big.txt
        dirb https://www.fi11sm30.com/  -X .php,.txt,.zip
        dirb http://www.baidu.com/ -z 100  

-X参数 列举具有特定扩展名列表的目录,多个扩展名使用 逗号进行分割
dirb http://192.168.186.131/ -X .php    # .php 为要搜索的指定扩展名文件

-o 参数 将输出保存到磁盘文件
dirb http://192.168.186.131/ -o output.txt

-N参数 忽略不必要的状态码
dirb http://192.168.186.131/ -N 302  # 302为忽略的状态码

-z 参数 设置延迟,防止请求频繁,导致服务器反应不过来
dirb http://192.168.186.131/ -z 100    # 每次请求间隔100毫秒

不递归(-r)。dirb默认扫描是以递归方式扫描目录。它将扫描目录以及子目录。
但是在某些情况下,如果时间不足,我们会将Dirb设置为不递归扫描。
dirb http://192.168.186.131/ -r

显示不存在页面
404错误是HTTP状态代码,表示你尝试在其网站上访问的页面无法在其服务器上找到。
404 Not Found错误消息经常由各个网站定制。
在某些情况下,我们也需要找到404页。
默认情况下,dirb会跳过这些页面,而如果想要查找这些页面,就需要使用-v参数。
dirb http://192.168.186.131/ -v

不对网址(-t)强制使用结尾的 /
dirb 运行时,必须在 URL 的末尾添加一个正斜杠(/)以便 dirb 能接受我们给出的语句。
我们可以在命令中添加-t参数,即可不在URL的末尾添加一个正斜杠(/)。
dirb http://192.168.186.131 -t

HTTP授权进行扫描
HTTP身份验证/身份验证机制全部基于401状态代码和WWW身份验证响应标头的使用。
最广泛使用的 HTTP身份验证 机制是 Basic。
客户端将用户名和密码作为未加密的base64编码文本发送。
dirb http://192.168.186.131/login.php -u test_username:test_password 

-p 参数 设置代理
dirb http://192.168.186.131/ –p 192.168.1.108:3129

2、dirstalk

github 地址:https://github.com/stefanoj3/dirstalk

Dirstalk 是一个多线程应用程序,旨在暴力破解 Web 服务器上的路径。该工具包含类似于 dirbuster 和 dirb 提供的功能。

3、WebMap

github 地址:https://github.com/Anteste/WebMap

WebMap 是一个 Python 工具,可自动执行 Nmap、Nikto 和 Dirsearch,还用于在 Web 渗透测试期间自动生成报告

  • 使用 Nmap 执行网络扫描
  • 使用 Nikto 执行漏洞扫描
  • 使用 Dirsearch 执行目录破坏
  • 生成报告
  • 使用 WebMap 自动化 Web 渗透

Linux & Unix 安装:

$ git clone https://github.com/Anteste/WebMap.git
$ cd WebMap
$ ./install.sh
$ webmap

4、wfuzz ( Kali 自带 )

From:https://blog.csdn.net/weixin_45059752/article/details/122359921

GitHub地址:https://github.com/xmendez/wfuzz/
官方文档:https://wfuzz.readthedocs.io/en/latest/

关键字:fuzz_for_web

模糊测试 (fuzz testing, fuzzing)

模糊测试 (fuzz testing, fuzzing)是一种软件测试技术。其核心思想是:将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机系统的安全漏洞。

模糊测试最早由威斯康星大学的Barton Miller于1988年提出。他们的工作不仅使用随机无结构的测试数据,还系统的利用了一系列的工具去分析不同平台上的各种软件,并对测试发现的错误进行了系统的分析。此外,他们还公开了源代码,测试流程以及原始结果数据。

模糊测试工具主要分为两类,变异测试(mutation-based)以及生成测试(generation-based)。模糊测试可以被用作白盒,灰盒或黑盒测试。文件格式与网络协议是最常见的测试目标,但任何程序输入都可以作为测试对象。常见的输入有环境变量,鼠标和键盘事件以及API调用序列。甚至一些通常不被考虑成输入的对象也可以被测试,比如数据库中的数据或共享内存。

对于安全相关的测试,那些跨越可信边界的数据是最令人感兴趣的。比如,模糊测试那些处理任意用户上传的文件的代码比测试解析服务器配置文件的代码更重要。因为服务器配置文件往往只能被有一定权限的用户修改。

​九大模糊测试工具、AI 模糊测试工具:https://www.aqniu.com/tools-tech/65203.html

CTF-All-In-One 《CTF 竞赛入门指南》:https://firmianay.gitbooks.io/ctf-all-in-one/content/

持续 Fuzz:https://zhuanlan.zhihu.com/p/110188045

英文资料:

  • :https://github.com/secfigo/Awesome-Fuzzing
  • :https://www.fuzzingbook.org/

wfuzz --- web 扫描器

Wfuzz 是一款 Python开发的Web安全测试工具,它不仅仅是一个 web 扫描器:wfuzz能够通过发现并利用网站弱点/漏洞的方式帮助你使网站更加安全。wfuzz的漏洞扫描功能由插件支持。
wfuzz提供了简洁的编程语言接口来处理wfuzz或Burpsuite获取到的HTTP请求和响应。这使得你能够在一个良好的上下文环境中进行手工测试或半自动化的测试,而不需要依赖web形式的扫描器。

wfuzz -h  帮助

用法:wfuzz [options] -z payload,params <url>

        FUZZ, ..., FUZnZ 无论这些关键字放在哪里,wfuzz 都会将它们替换为指定有效负载的值。
        FUZZ{baseline_value} FUZZ 将被替换为baseline_value。
        这将是执行的第一个请求,可以用作过滤的基础。
选项:
        -h :       帮助
        --help :    高级帮助
        --version : 版本
        -e <type> :可用 encoders/payloads/iterators/printers/scripts 的列表

        -c : 输出颜色
        -v :详细信息。
        --interact : (beta) 如果选择,所有按键都会被捕获。这使您可以与程序进行交互。

        -p addr :使用 ip:port:type 格式的代理。重复使用各种代理的选项。
                                    如果省略,类型可以是 SOCKS4、SOCKS5 或 HTTP。
        -t N :        指定并发连接数(默认10)
        -s N :        指定请求之间的时间延迟(默认为 0)
        -R depth:     递归路径发现深度为最大递归级别(默认为0)
        -D depth :    最大链接深度级别(默认为 4)
        -L, --follow :跟随 HTTP 重定向

        -u url :    指定请求的 URL。
        -z payload :给每个关键字FUZZ指定有效负载,可使用的类型为:type,parameters,encoder。
                     可以使用编码器列表,例如 md5-sha1。编码器可以链接,即。 md5@sha1。
                     可以使用编码器类。 IE。
                     使用帮助作为有效负载来显示有效负载插件的详细信息(您可以使用 --slice 进行过滤)
        -w wordlist :指定一个字典文件(等价于 -z file,wordlist )。
        -V alltype :所有参数暴力破解(allvars 和 allpost)。不需要 FUZZ 关键字。
        -X 方法:    为请求指定一个 HTTP 方法,即 HEAD 或 FUZZ

        -b cookie :     指定 cookie
        -d postdata :  postdata (ex: "id=FUZZ&catalogue=1")
        -H header:     使用 header(例如:"Cookie:id=1312321&user=FUZZ")
        --basic/ntlm/digest auth : 格式为 "user:pass" 或 "FUZZ:FUZZ" 或 "domain\FUZ2Z:FUZZ"

        --hc/hl/hw/hh N[,N]+ :使用指定的 "代码/行/单词/字符" 隐藏响应(使用 BBB 从基线获取值)
        --sc/sl/sw/sh N[,N]+ :使用指定的 "代码/行/单词/字符" 显示响应(使用 BBB 从基线获取值)
        --ss/hs regex:        显示/隐藏 带有指定正则表达式 的 响应

wfuzz 本身自带字典,可以在 wfuzz 的安装目录下找到。

但相对 FuzzDB 和 SecLists 来说还是不够全面不够强大的,当然如果有自己的字典列表最好~

wfuzz 基本使用

目录遍历

就是对目录 ( 或者某个文件 ) 进行爆破,对已知的 url 进行目录 ( 或者某个文件 ) 猜解,达到获取到更多的可访问的目录(某个文件)信息,信息收集,扩大攻击面。

wfuzz -w wordlist URL/FUZZ.php     Wfuzz 爆破文件
wfuzz -w wordlist URL/FUZZ            Wfuzz 爆破目录

使用 -z 或 -w 参数可以同时指定多个 payloads,
这时相应的占位符应设置为 FUZZ, … , FUZnZ, 其中 n 代表了 payload 的序号。
--hc  可以过滤 http 状态码。
举例:wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -w /usr/share/wfuzz/wordlist/general/common.txt -w /usr/share/wfuzz/wordlist/general/extensions_common.txt --hc 404 http://testphp.vulnweb.com/FUZZ/FUZ2ZFUZ3Z

遍历枚举参数值
假如地址:http://127.0.0.1/getuser.php?uid=123  可获取 uid 为 123 的个人信息
uid 参数可以遍历,已知 123 为三位数纯数字,需要从 000-999 进行遍历,
也可以使用 wfuzz 来完成。使用 payloads 模块类中的 range 模块进行生成。
命令:wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ

Post 数据爆破

场景:发现一个登录框,没有验证码,想爆破弱口令账户。
请求地址为:http://127.0.0.1/login.php
POST请求正文为:username=&password=
使用 wfuzz 测试:wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php

-d 参数传输 POST 请求正文。

Cookie 测试

-b 参数指定 Cookie,多个 Cookie 需要指定多次,也可以对 Cookie 进行测试,仍然使用FUZZ占位符即可。
携带 Cookie 命令:wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ
 

http 的 Headers 爆破

HTTP Headers 测试
假如一个刷票的漏洞,这个漏洞需要伪造XFF头(IP)可达到刷票的效果,
投票的请求为GET类型,地址为:http://127.0.0.1/get.php?userid=666。
那么现在我想给userid为666的朋友刷票,可以使用wfuzz完成这类操作。
命令:wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666
-H 指定HTTP头,多个时,需要指定多次(同Cookie的-b参数)。

http 的 请求方法(Method)

测试一个网站 ( http://127.0.0.1/ ) 支持哪些 HTTP 请求方法。

命令:wfuzz -z list, "GET-POST-HEAD-PUT" -X FUZZ http://127.0.0.1/

-z list 参数 可以自定义一个字典列表( 在命令中体现 ),以 - 分割。因为这里要测试HTTP请求方法,所以 字典列表为 GET-POST-HEAD-PUT 

-X 参数 指定HTTP请求方法类型,后面的值为 FUZZ 占位符。

使用代理

命令:wfuzz -w wordlist -p proxtHost:proxyPort:TYPE URL/FUZZ
-p 参数指定主机:端口:代理类型,多个代理可使用多个-p参数同时指定
wfuzz 每次请求都会选取不同的代理进行。
如果想使用ssr 则命令为:wfuzz -w wordlist -p 127.0.0.1:1087:SOCKS5 URL/FUZZ

认证

测试 HTTP Basic Auth 保护命令:
wfuzz -z list,"username-password" --basic FUZZ:FUZZ URL
wfuzz 可以通过 --basec --ntml --digest 来设置认证头,
使用方法都一样:--basec/ntml/digest username:password

递归测试

-R 参数可以指定一个 payload 被递归的深度(数字)。
例如:爆破目录时,我们想使用相同的 payload 对已发现的目录进行测试,命令如下:
wfuzz -z list,"admin-login.php-test-dorabox" -R 1 http://127.0.0.1/FUZZ
如上命令就是使用了自定义字典列表:
admin
login.php
test
dorabox    
递归深度为 1,也就是说当发现某一个目录存在的时候,在存在目录下再递归一次字典。

并发、请求间隔

wfuzz 提供了一些参数可以用来调节 HTTP 请求的线程
假如想测试一个网站的转账请求是否存在HTTP并发漏洞(条件竞争)
请求地址:http://127.0.0.1/dorabox/race_condition/pay.php
POST请求正文:money=1
命令:wfuzz -z range,0-20 -t 20 -d "money=1" http://127.0.0.1/dorabox/race_condition/pay.php?FUZZ
这里使用 range 模块生成 0-20,填充的 FUZZ 占位符的位置,
使用 -t 参数 设置 并发请求,该参数默认设置都是 10。
使用 -s 参数 设置 每次发送HTTP的时间间隔。

保存 测试结果

wfuzz 通过 printers 模块来将结果以不同格式保存到文档中,一共有如下几种格式:
raw       | `Raw` output format
json      | Results in `json` format
csv       | `CSV` printer ftw
magictree | Prints results in `magictree` format
html      | Prints results in `html` format

使用 -f 参数,指定值的格式为输出文件位置,输出格式。

将结果以 json 格式输出到文件的命令:wfuzz -f outfile,json -w wordlist URL/FUZZ

Wfuzz 高阶功法

From:WFUZZ使用教程:https://www.fuzzer.xyz/2019/03/29/WFUZZ使用教程/

BurpSuite 的 Intruder 模块中 Attack Type 有:

  • Sniper(狙击手)
  • Battering ram(撞击物)
  • Pitchfork(相交叉)
  • Cluster bomb(集束炸弹)

wfuzz 也可以完成这样的功能,将不同的字典的组合起来,那就是 Iterators 模块。
使用参数 -m 迭代器,wfuz z自带的迭代器有三个:zip、chain、product,如果不指定迭代器,默认为 product 迭代器。

zip 命令

示例:wfuzz -z range,0-9 -w dict.txt -m zip http://127.0.0.1/ip.php?FUZZ=FUZ2Z

该命令的意思:设置了两个字典。两个占位符,
一个是range模块生成的0、1、2、3、4、5、6、7、8、9 10个数字,
一个是外部字典dict.txt的9行字典,
使用zip迭代器组合这两个字典发送。

zip迭代器的功能:字典数相同、一一对应进行组合,如果字典数不一致则多余的抛弃掉不请求,
如上命令结果就是数字9被抛弃了因为没有字典和它组合。

chain 命令

示例:wfuzz -z range,0-9 -w dict.txt -m chain http://127.0.0.1/ip.php?FUZZ

该命令设置了两个字典,一个占位符 FUZZ,使用 chain 迭代器组合这两个字典发送。
chain迭代器的功能:通过返回结果就能看出来chain迭代器的功能了,这个迭代器是将所有字典全部整合(不做组合)放在一起然后传入占位符FUZZ中。

product 命令

示例:wfuzz -z range,0-2 -w dict.txt -m product http://127.0.0.1/ip.php?FUZZ=FUZ2Z

该命令的意思:设置了两个字典,两个占位符,一个是range模块生成的0、1、2 3个数字,一个是外部字典dict.txt的3行字典,使用product迭代器组合这两个字典发送。

product 迭代器的功能:通过返回结果,知道了请求总数为9,请求的payload交叉组合:

Encoders

wfuzz 中 encoders 模块可以实现编码解码、加密,它支持如下图中所列转换功能:

使用 Encoders

使用 Encoders 的 md5 加密。
wfuzz -z file --zP fn=wordlist,encoder=md5 URL/FUZZ

这里简写了第一条命令,一般都使用这条命令来调用Encoders
wfuzz -z file,wordlist,md5 URL/FUZZ

使用 多个 Encoder

多个转换,使用一个-号分隔的列表来指定
wfuzz -z file,dict.txt,md5-base64 http://127.0.0.1/ip.php\?FUZZ

多次转换,使用一个@号分隔的列表来按照从右往左顺序多次转换
( 这里让传入的字典先md5加密然后base64编码 )
wfuzz -z file,dict.txt,base64@md5 http://127.0.0.1/ip.php\?FUZZ

Scripts

wfuzz 是支持插件的,其本身也有很多插件,插件大部分都是实现扫描和解析功能,插件共有两大类和一类附加插件:

  • passive:分析已有的请求和响应(被动)
  • active:会向目标发送请求来探测(主动)
  • discovery:自动帮助wfuzz对目标站进行爬取,将发现的内容提供给wfuzz进行请求

Wfuzz 默认自带脚本如下:

使用 Scripts

--script-help 参数查看关于模块的信息。示例:wfuzz --script-help=robots

自定义插件

使用 wfuzz 可以自己编写 wfuzz 插件,需要放在 ~/.wfuzz/scripts/ 目录下,具体如何编写可以参考已有的插件:https://github.com/xmendez/wfuzz/tree/master/src/wfuzz/plugins/scripts

技巧

Recipes
Wfuzz 可以生成一个 recipes 用来保存命令,方便下次执行或者分享给别人。

生成一个 recipes:
wfuzz --script=robots -z list,"robots.txt" --dumo-recipe outrecipe URL/FUZZ

使用某个 recipes:
wfuzz --recip outrecipe
 

网络异常

Wfuzz 扫描的时候出现网络问题,如DNS解析失败,拒绝连接等时,wfuzz会抛出一个异常并停止执行,使用 -Z 参数即可忽略这些错误继续执行。
出现错误的 payload 会以返回码 XXX 来表示,Payload 中还有出现的错误信息。

超时

使用 wfuzz 扫描会遇到一些响应很慢的情况,wfuzz 可以设置超时时间。
参数 --conn-delay 来设置 wfuzz 等待服务器响应接连的秒数。

参数 --req-delay 来设置 wfuzz 等待响应完成的最大秒数。

结合 BurpSuite

从 Burp 的 LOG 文件中获取测试的URL地址:

示例命令:wfuzz -z burplog,"1.burp" FUZZ

还有能够读取burpsuite保存的state:wfuzz -z burpstate,a_burp_state.burp FUZZ

过滤器

这里篇幅太长,建议综合参考 https://github.com/xmendez/wfuzz/blob/18a83606e3011159b4b2e8c0064f95044c3c4af5/docs/user/advanced.rst

字典

在这里贴出来自己搜集的字典!需要的可以自行下载

链接:百度网盘-链接不存在    提取码:j66f

使用示例:

5、wordpress 类型web站点 的 识别

wordpress 官网:WordPress.com:快速、安全的受管 WordPress 托管服务

cmseek --- 网站 指纹识别

命令:cmseek -u https://www.coolshell.cn

wpscan --- 专门的 wordpress 类型网站识别

6、nikto --- Web应用漏洞扫描

​nikto2 官网:https://cirt.net/nikto2
Nikto 完整文档:https://github.com/sullo/nikto/wiki
Web 漏洞扫描神器 Nikto 使用指南:https://zhuanlan.zhihu.com/p/124246499

Nikto 是一款开放源代码的、功能强大的 WEB 扫描评估软件,能对 web 服务器多种安全项目进行测试的扫描软件,去寻找已知有名的漏洞,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI 及其他问题,它可以扫描指定主机的 WEB 类型、主机名、特定目录、COOKIE、特定 CGI 漏洞、返回主机允许的 http 模式等等。

Nikto 使用 LibWhiske 库,但通常比 Whisker 更新的更为频繁。Nikto 是网管安全人员必备的 WEB 审计工具之一。

Nikto 是 perl 语言开发的,其特点扫描全面,速度快。

Nikto 是一个比较全面的网页扫描器。

nikto 参数

通过 nikto -H 、man nikto 查看更详细的帮助信息。

以下所有选项,凡是有带 + 号的代表后面需要跟一个值:

   选项:-ask+               询问是否更新yes   每次都询问 (默认)no    不询问,不发送auto  不询问,只发送-Cgidirs+           扫描 指定CGI目录: "none", "all", 或者类似 "/cgi/ /cgi-a/"-config+            使用指定的配置文件-Display+           打开/关闭 显示输出:1     显示重定向2     显示接受 cookie3     显示所有200/OK响应4     显示要求认证的URLD     调试输出E     显示所有HTTP错误							   P     打印处理进度到 STDOUTS     格式化输出IP地址和主机名V     详细输出-dbcheck           检查数据库和其他关键文件的语法错误-evasion+          编码技术: 对扫描包进行一些变形,绕过IDC检测。1    随机 URI 编码 (non-UTF8)2    使用相对路径 (/./)3    过早的 URL 结尾4    预先添加长随机字符串5    使用伪造的虚假参数6    使用 TAB 作为请求间隔7    更改 URL 的大小写8    使用 Windows 目录分隔符 (\)A    使用 回车符 (0x0d) 作为请求分隔符B    使用二进制值 0x0b 作为请求间隔-Format+           保存文件的格式 (-o):csv   csc  格式htm   HTML 格式nbe   Nessus的NBE格式sql   通用 SQL(请参阅架构文档)txt   文本xml   XML 格式如果不指定文件格式,将从 -output 获取文件扩展名-Help              帮助-host+             目标 主机/ URL-404code           忽略 HTTP code 的响应 (always). Format is "302,301".-404string         忽略response中包含string的响应 (always). 字符串可以使用正则表达式。-id+               主机使用的身份验证,格式是 ID:密码 或 ID:密码:领域-key+              客户端证书密钥文件-list-plugins      列出所有可用的插件,不执行测试-maxtime+          每个主机的最大测试时间 (e.g., 1h, 60m, 3600s)-mutate+           猜额外的文件名。变化猜测技术:1   测试所有的文件,所有的根目录2   猜测密码文件名3   通过Apache枚举用户名(/~user type requests)4   通过cgiwrap枚举用户名(/cgi-bin/cgiwrap/~user type requests)5   试暴力破解子域名,假设主机名称是父域名6   尝试从提供的字典文件中猜测目录名称-mutate-options    Provide information for mutates-nointeractive     禁用交互特性-nolookup          禁止 DNS 查找-nossl             禁止 SSL-no404             禁用 Nikto 尝试猜测404页-Option            覆盖 nikto.conf 中的选项,可以多次发出-output+           将输出写入到文件('.' 表示自动生成文件名)-Pause+            测试之间的停顿(秒,整数或浮点数)-Plugins+          列出正在运行的插件(默认:ALL)-port+             指定端口(默认80)-RSAcert+          客户证书文件-root+             为所有请求添加根目录 /,格式为 /directory-Save              保存响应到目录中('.' 表示自动命名)-ssl               强制SSL端口模式-Tuning+           扫描选项: 控制 Nikto 使用不同的方式来扫描目标。1 日志文件2 错误配置/默认文件3 信息披露。公开信息4 注入(XSS/脚本/HTML)5 Web Root 内的 远程文件检索6 拒绝服务7 服务器范围 内的 远程文件检索8 命令执行/远程Shell9 SQL注入0 文件上传a 身份验证绕过b 软件标识c 远程源包含d 网络服务e 管理控制台x 反向选择(即 选择指定之外的所有选项)-timeout+          请求超时时间 (默认 10 秒)-Userdbs           仅加载用户数据库,不加载标准数据库all   禁用标准 dbs,仅加载用户 dbstests 禁用 db_tests,加载 udb_tests-useragent         设置 useragent-until             Run until the specified time or duration-update            从 CIRT.net 更新 数据库和插件-url+              扫描的目标 host/URL (别名 -host)-useproxy          使用在 nikto.conf 定义的代理。或者使用参数 http://server:port-Version           打印插件和数据库版本-vhost+            Virtual host (for Host header)

Nikto 插件

Nikto 通过大量插件进行扫描,通过 nikto -list-plugins 来查看插件信息

通过 nikto -V 来查看工具版本和插件版本

nikto 基本使用

交互功能。在扫描期间,按下下面任意键,可开启或关闭相关功能,注意这些命令是区分大小写。

空格     报告当前扫描状态
v        显示详细信息
d        显示调试信息
e        显示http错误信息
p        显示扫描进度
r        显示重定向信息
c        显示cookie
a        显示身份认证过程
q        退出程序
N        扫描下一个目标
P        暂停扫描

使用

1. 最基本的 扫描。
    最基本的 nikto 扫描只需要指定目标的 host (通过 -h 参数指定),
    也可以指定要扫描的端口号 (通过 -p 来指定),默认是80
    nikto -h 192.168.0.1
    nikto -host/-h www.baidu.com -p 443 -ssl        // 针对 https 扫描

2. 多端口 扫描。
    # 扫描80,88,443三个端口
    nikto -h 192.168.0.1 -p 80,88,443
    # 扫描80~90共10个端口
    nikto -h 192.168.0.1 -p 80-90

3. 多 host 扫描
    -host 参数的值为一个文件,该文件存一系列的 host 或者 ip。
    文件格式要求是:每个host必须占一行,端口号放行末,
    端口号通过冒号或者逗号和host其他端口号区分开。
    nikto -host url.txt
    文件 url.txt 内容:
        192.168.0.1:80
        http://192.168.0.1:8080/
        192.168.0.3
4. 扫描 https
    nikto -host www.baidu.com -ssl -port 443
    ​nikto -h URL -useproxy http://127.0.0.1:1080
    nikto -host https://www.baidu.com -ssl -useproxy http://127.0.0.1:8080

5. 使用 LibWhisker 绕过 IDS 的检测
    nikto -host www.baidu.com -ssl -port 443 -evasion 1358

6. CGI扫描 -C 参数只能放在后面,应该可以指定相对目录。
    nikto –h 192.168.0.1 -c
    nikto –h 192.168.0.1 -c /phpbb
    数据库扫描 此参数也需要跟在后面
    nikto –h 192.168.0.1 -c -d
    猜测 apache 默认配制密码 前提需要目标服务器允许 guess
    nikto –h 192.168.0.1 -m
    报告输出指定地点
    nikto –h 192.168.0.1 -o result.txt

7. 扫描方式
    Tuning 选项控制 Nikto 使用不同的方式来扫描目标。
    -T 参数后的数字是隐藏的,可以灵活搭配使用
    nikto –h 192.168.0.1 -T 58
    nikto –h 192.168.0.1 -T 58x
    nikto –h 192.168.0.1 -T 默认不指定数字

8. 生成报告
    nikto -host xxxx -output result.html -F html

Nikto 的扫描结果还可以导出为 Metasploit在执行扫描时可以读取的格式,
这样就可以使用 msf 漏洞库快速配检索数据
nikto -host/-h http://www.example.com -Format msf+

完全点检测一个主机信息:nikto -h 192.168.0.1 -m -T -c -o 结果.txt

指定目录扫描

有时候只扫描网站下的某个子目录,可以使用 -c 参数 指定扫描的目录,
使用 -c all 可进行目录爆破,并扫描。
示例:nikto -h http://192.168.1.5 -c /dvwa

Nikto 在扫描过程中可以使用8种规则绕过IDS检测,参数是 - evasion,具体规则如下:

1,随机url编码
2,自选路径
3,提前结束url
4,优先考虑长随机字符串
5,参数欺骗
6,使用TAB作为命令分隔符
7,使用变化的url
8,使用windows路径分隔符

组件默认密码

nikto官网还发布了各大组件的默认密码,可以访问 https://cirt.net/passwords 进行查看。

Nikto 配合 Nmap 扫描

Nikto 支持配合 Nmap 进行扫描 ,运行命令:nmap -p80 x.x.x.x -oG - |nikto -host -

nmap 扫描开放 80 端口的 IP,并通过 oG 选项对扫描结果输出并整理,然后通过管道符 | 将上述扫描结果导入到 nikto 进行扫描。

示例:

在谷歌搜索 nikto reports 有了这样一份报告,就拿他来小试牛刀 
​http://www.ruben-alves.com/ficheiros/nikto-AT-localhost.html
提示:这是一份html格式的报告,生成命令为:nikto -h xxxx -o result.html -F htm
个人认为,html格式的报告比txt格式的报告好看,建议使用 html 报告格式

Nikto Scan Summary

Software DetailsNikto 2.00
CLI Options-host localhost -output nikto@localhost -F html
Hosts Tested1

首先,告诉了 nikto 的信息,使用的是 nikto 软件,版本号,命令行参数

localhost / 127.0.0.1

Target IP127.0.0.1
Target hostnamelocalhost
Target Port80
HTTP ServerApache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6
Start Time2007-11-14 0:09:00
End Time2007-11-14 0:09:00
Elapsed17 Seconds
Site Link (Name)http://localhost:80/
Site Link (IP)http://127.0.0.1:80/
Items Tested4342
Items Found8

上面的表格告诉我们的是目标服务器相关的信息,ip,域名,端口号,web服务器等等

InformationOSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging and should be disabled. This message does not mean it is vulnerable to XST.
OSVDB EntriesOSVDB-877
InformationPHP/5.2.3-1ubuntu6 appears to be outdated (current is at least 5.2.4)
OSVDB Entries
InformationApache/2.2.4 appears to be outdated (current is at least Apache/2.2.6). Apache 1.3.39 and 2.0.61 are also current.
OSVDB Entries
InformationPHP/5.2.3-1ubuntu6 appears to be outdated (current is at least 5.2.4)
OSVDB Entries

上述是针对服务器提出的几种建议。下面的表格厉害了,注意看description

URI/phpmyadmin/
( 这是相对于host的路径)
HTTP MethodGET
DescriptionphpMyAdmin is for managing MySQL databases, and should be protected or limited to authorized hosts.
(phpmyadmin是负责管理mysql数据库的页面,应该限制访问权限)
Test Linkshttp://localhost:80/phpmyadmin/
http://127.0.0.1:80/phpmyadmin/
OSVDB EntriesOSVDB-3092
URI/icons/
HTTP MethodGET
DescriptionDirectory indexing is enabled: /icons indexing
(目录遍历漏洞)
Test Linkshttp://localhost:80/icons/
http://127.0.0.1:80/icons/
OSVDB EntriesOSVDB-3268
URI/
HTTP MethodTRACE
DescriptionTRACE option appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details
Test Linkshttp://localhost:80/
http://127.0.0.1:80/
OSVDB EntriesOSVDB-877
URI/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
HTTP MethodGET
DescriptionPHP reveals potentially sensitive information via certain HTTP requests which contain specific QUERY strings.
(访问上面的url,我们发现其实是phpinfo页面啊,确实包含了很多敏感信息)
Test Linkshttp://localhost:80/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
http://127.0.0.1:80/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
OSVDB EntriesOSVDB-12184
URI/phpinfo.php
HTTP MethodGET
DescriptionContains PHP configuration information
Test Linkshttp://localhost:80/phpinfo.php
http://127.0.0.1:80/phpinfo.php
OSVDB EntriesOSVDB-3233
URI/server-status
HTTP MethodGET
DescriptionThis reveals Apache information. Comment out appropriate line in httpd.conf or restrict access to allowed hosts.
Test Linkshttp://localhost:80/server-status
http://127.0.0.1:80/server-status
OSVDB EntriesOSVDB-561
URI/readme
HTTP MethodGET
DescriptionThis might be interesting...
Test Linkshttp://localhost:80/readme
http://127.0.0.1:80/readme
OSVDB EntriesOSVDB-3092
URI/doc/
HTTP MethodGET
DescriptionThe /doc/ directory is browsable. This may be /usr/doc.
Test Linkshttp://localhost:80/doc/
http://127.0.0.1:80/doc/
OSVDB EntriesOSVDB-48

许多 Nikto 的警报会返回 OSVDB 序号。这是由开源缺陷数据库(http://osvdb.org/)所指定。可以在 OSVDB 上找出相关缺陷的深入说明。

同许多渗透测试工具一样,nikto提供给你的信息有局限性,如果nikto确定一个问题,很值得我们深究到底,因为全世界的每个黑客都可以轻易的找到相同的问题,另一方面,如果nikto什么也没找到,也不代表就不存在安全问题

随着你的安全测试变的成熟,从 nikto 的扫描中得到的收益将越来越少。

靶 机 演 练

登录到操作系统之后怎么办?

  • 查看敏感文件:ls -al、find / -name
  • sudo -l
  • 操作系统漏洞
  • history 命令

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

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

相关文章

AI当道,媒体会被机器牵着鼻子走?

来源&#xff1a;猎云网摘要&#xff1a; 现如今&#xff0c;社交媒体平台、搜索引擎和内容聚合商&#xff0c;在很大程度上控制了不同媒体内容的用户流向&#xff0c;从而直接影响了创作出来供大家消费的新闻内容。自此&#xff0c;有人认为&#xff0c;新闻媒体的未来再也无法…

MOON.ORM 3.5 MYSQL的配置及使用方法(最新版免费下载使用.欢迎加盟)

下载代码生成器 /Files/humble/Moon.ORM-3.6.zip配置大码生成器的配置文件.http://www.mysql.com/downloads/mirror.php?id406542 mysql 2.0下载地址通过代码生成器,生成你系统数据库中所有的实体.(编译Mode,然后在C盘找到 MoonDB.CS 或者 MoonDB.DLL,引入dll或者文件到你…

政府大数据应用的反思;大数据分析应用常见的困难

来源&#xff1a;网络大数据摘要&#xff1a;在智慧城市建设中&#xff0c;以支持政府决策为名的大数据中心建设如火如荼&#xff0c;但利用大数据改进决策的成功案例却鲜有&#xff0c;与大数据中心的投资不成比例&#xff0c;令人质疑大数据中心遍地开花模式的合理性。一、政…

thinkphp 官网教程

thinkphp 官网教程&#xff1a;https://sites.thinkphp.cn/1556331 thikphp5 框架详解 ​ThinkPHP5 - 从入门到实践&#xff08;完整版&#xff09;&#xff1a;https://www.bilibili.com/video/BV13a4y1E7dyThinkPHP5.0 框架全方位解读与实战&#xff1a;https://github.com/k…

中美研发创新支持政策比较及建议

来源&#xff1a;全球技术地图近40年以来&#xff0c;美国历届政府对科技创新和企业研发都高度重视&#xff0c;并通过税收优惠、研发资金支持等全方位支持企业创新&#xff0c;有效推动科技类产业发展。相比之下&#xff0c;我国的研发支持发展较晚&#xff0c;不过目前已经形…

uni-app 官网教程

官网&#xff1a;https://uniapp.dcloud.net.cn/ github &#xff1a;https://github.com/dcloudio/uni-app uni-app 入门教程&#xff1a;https://www.5axxw.com/wiki/content/41fkvm ​uniapp 可视化开发 --- 前端开发工具、组件库集合&#xff1a;https://blog.csdn.net/w…

量子计算时代更近了,未来可解决大规模计算的科学难题

来源&#xff1a;人民日报摘要&#xff1a;借助量子计算的并行性带来指数级的加速&#xff0c;将能远远超越现有经典计算机的速度。当量子计算时代到来时&#xff0c;利用GHz时钟频率的量子计算机求解一个亿亿亿变量的线性方程组&#xff0c;将只需要10秒钟。5光量子比特纠缠、…

2018五大人工智能趋势,你知道多少?

来源&#xff1a;网络大数据摘要&#xff1a;人类一直对机器人和人工智能(AI)的概念保持非常强的好奇心。好莱坞电影和科幻小说可能激发了一些科学家开始朝着这个方向努力&#xff0c;虽然人工智能泡沫已出现多次&#xff0c;但目前重大的发展和突破正在重新引起公众对这一领域…

学习世界模型,通向AI的下一步:Yann LeCun在IJCAI 2018上的演讲

来源&#xff1a;机器之心摘要&#xff1a;人工智能顶会 IJCAI 2018 的主要议程于昨日在瑞典首都斯德哥尔摩开始。昨天上午&#xff0c;Facebook 首席人工智能科学家、纽约大学教授 Yann LeCun 在会上发表了近一个小时&#xff0c;以《Learning World Models: the Next Step to…

什么是 vuex、如何使用 vuex ?

From&#xff1a;https://blog.csdn.net/m0_70477767/article/details/125155540 Vuex 官网文档&#xff1a;https://vuex.vuejs.org/zh/ 1、Vuex 是什么 ​Vuex 是一个专为 Vue.js 应用程序开发的 状态管理模式&#xff0c; 采用 集中式存储 管理应用的所有组件的状态&#x…

IJCAI 2018所有奖项出炉:AlphaGo获奖,中国人论文占46%,华人一作近2/3

来源&#xff1a;全球人工智能IJCAI&#xff08;国际人工智能联合会议&#xff09;是人工智能领域历史最悠久的学术会议&#xff0c;也是最重要和最顶级的学术会议之一。第一届IJCAI于1969年举办&#xff0c;是1956年达特茅斯研讨会的延伸&#xff0c;也是有史以来的第一次人工…

VUE 超级详细教程

From&#xff1a;https://blog.csdn.net/weixin_42371679/article/details/112408800 vue 源码阅读解析&#xff1a;https://zhuanlan.zhihu.com/p/419896443 深入理解vue底层原理&#xff1a;https://blog.csdn.net/dream2222222222/article/details/103256281 Vue 源码解读…

下一代脑电图可以帮助恢复失去的大脑功能

来源&#xff1a;IEEE电气电子工程师学会摘要&#xff1a;据悉&#xff0c;能源部SLAC国家加速器实验室和斯坦福大学正在开发的一种装置&#xff0c;可以通过测量大脑对电流刺激它的疗法的反应来帮助恢复失去的大脑功能。据悉&#xff0c;能源部SLAC国家加速器实验室和斯坦福大…

鼓吹海

此时此刻&#xff0c;我坐在海堤上&#xff0c;现在有一些渔民挑着担子&#xff0c;陆陆续续要回去了。空气中弥漫着鲜海的味道&#xff0c;来风习习。夏天里夜幕将临&#xff0c;灰灰的集美大桥上&#xff0c;有来来往往亮着尾巴的方盒子&#xff0c;有的高&#xff0c;有的矮…

2018人工智能行业创新情报白皮书

来源&#xff1a;PatSnap人工智能的定义非常广泛&#xff0c;随着时间的推进&#xff0c;文公智能也将不断进化&#xff0c;但其本质是机器模拟人类思考行为的能力。虽然人工智能经常被分作计算机 科学的一个分支&#xff0c;事实上智能站在自然科学和社会科学的交叉路口&#…

前沿|Google AI提新型神经网络,对神经元进行高精度自动重建

来源&#xff1a;AI科技大本营7 月 16 日&#xff0c; Google AI 发布了一篇博客称&#xff0c;Google Research 部门和 Max Planck 研究所合作提出了一种新型的递归神经网络&#xff0c;它可以提升连接组数据进行自动分析的准确性&#xff0c;相比先前深度学习技术的准确性是数…

机器传奇:全球13位科学家和他们的机器人“孩子”

来源&#xff1a;资本实验室摘要&#xff1a;自古以来&#xff0c;人们就幻想使用自动化机械来替代人类进行某项工作&#xff0c;中国、希腊和罗马都有关于自动化机械的传说或历史记载。聚焦前沿科技创新与传统产业升级自古以来&#xff0c;人们就幻想使用自动化机械来替代人类…

使用delphi 开发多层应用(十三)使用Basic4android 直接访问kbmMW server

由于目前delphi xe2 还不直接支持Android 的开发&#xff0c;因此kbmMW 客户端的功能也没办法直接在Android 上运行。 由于kbmMW 为了与java 应用程序通讯&#xff0c;在企业版里面提供了一个JavaClinet. 具体文件名为kbmMWClient.jar。 而在basci4android 可以直接使用这个jar…

赛灵思收购深鉴科技:收购额或将3-4亿美元 A轮投资方变收购方

来源&#xff1a;声学在线继去年5月宣布投资中国AI初创企业深鉴科技后&#xff0c;自适应和智能计算企业赛灵思公司Xilinx今日宣布已经完成对深鉴科技的收购。官方消息并未对外披露此次的具体交易财务条款。不过&#xff0c;据业内人士对声学在线透露&#xff0c;此次赛灵思收购…

探Button控件的Click事件发生始末

先贴结果图&#xff1a; 点击后&#xff1a; 页面代码&#xff1a; <html xmlns"http://www.w3.org/1999/xhtml"> <head runat"server"><title></title> </head> <body><form id"form1" runat"serv…