web_枚举
网页枚举
使用工具 gobuster,Nikto,WPScan
Gobuster
安装:sudo apt install gobuster
有用的全局标志
-t 线程 并发线程数(默认10)
-v 冗长 详细输出
-z 没有进展 不显示进度
-q 安静的 不打印多余的东西
-o 输出 将结果写入的输出文件
目录模式
gobuster dir 然后使用-u和-w添加url和单词表
例如
gobuster dir -u http://10.10.10.10/ -w direnum.txt
其他有用的标志
-c --cookies 用于请求的cookie
-x --extensions 要搜索的文件扩展名
-H --headers 指定http标头,-H 'Header1: val1' -H 'Header2: val2'
-k --no-tls-validation 跳过 TLS 证书验证
-n --no-status 不打印状态码
-P --password 基本认证密码
-s --status-codes 正面状态码
-b --status-codes-blacklist 负面状态码
-U --username 基本身份验证的用户名
DNS模式
gobuster dns 然后分别使用 -d 和 -w 选项添加域和词表
例如
gobuster dns -d mydomain.thm -w subdomains.txt
其他
-c --show-cname 显示 CNAME 记录(不能与“-i”选项一起使用)
-i --show-ips 显示 IP 地址
-r --resolver 使用自定义DNS服务器
虚拟主机模式
虚拟主机是基于 IP 的
gobuster vhost 然后需要分别使用-u和-w选项添加域和词表
例如
gobuster vhost -u http://example.com -w subdomains.txt
Kali Linux默认列表
/usr/share/wordlists/dirbuster/directory-list-2.3-*.txt
/usr/share/wordlists/dirbuster/directory-list-1.0.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/small.txt
/usr/share/wordlists/dirb/extensions_common.txt - 在对文件进行模糊测试时很有用!
或者sudo apt install seclists
示例
目录扫描
gobuster dir -u http://10.10.10.10/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 64
扩展名扫描
gobuster dir -u http://10.10.10.10/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x.html,.php,.conf
扫描虚拟主机
gobuster vhost -u webenum.thm -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -t 64
WPScan
WPScan 框架能够枚举和研究 WordPress 网站中存在的一些安全漏洞类别 - 包括 - 但不限于:
敏感信息披露(已披露漏洞或 CVE 的插件和主题安装版本)
路径发现(寻找错误配置的文件权限,即 wp-config.php)
弱密码策略(密码暴力破解)
存在默认安装(寻找默认文件)
测试 Web 应用程序防火墙(常见 WAF 插件)
更新:wpscan --update
--enumerate/-e 枚举 [option](要枚举的目标)
u 枚举用户名
wpscan --url http://cmnatics.playground/ --enumerate u
p 枚举插件
wpscan --url http://cmnatics.playground/ --enumerate p
t 枚举主题
wpscan --url http://cmnatics.playground/ --enumerate t
vp 结果中显示有漏洞的插件
wpscan --url http://cmnatics.playground/ --enumerate vp
执行密码攻击
wpscan –-url http://cmnatics.playground –-passwords rockyou.txt –-usernames cmnatic
调整 WPScan 的攻击性 (WAF)
--plugins-detection aggressive
Nikto
Nikto 能够对所有类型的网络服务器进行评估(并且不是特定于应用程序的,例如 WPScan。)。Nikto 可用于发现可能的漏洞,包括:
敏感文件
过时的服务器和程序(即易受攻击的网络服务器安装)
常见的服务器和软件错误配置(目录索引、cgi 脚本、x-ss 保护)
-host:扫描目标URL
-id:http认证接口
-list-plugins:列出所有可用的插件
-evasion:IDS/IPS逃避技术
-port:指定端口(默认80)
-ssl:使用SSL
-useproxy:使用HTTP代理
-vhost:当一个IP拥有多个网站时使用
-update:更新程序
-outfile:以文件形式输出扫描结果
-Format:规定输出文件的格式
-Version:显示插件和数据库的版本号
-Cgidirs:扫描相关CGI文件夹,传入单词“none”或者是“all”可以扫描所有CGI目录
插件介绍
通过使用-Plugin参数
apacheusers 尝试枚举 Apache HTTP 身份验证用户
cgi 寻找我们可以利用的 CGI 脚本
robots 分析 robots.txt 文件,该文件指示我们能够导航到哪些文件/文件夹
dir_traversal 尝试使用目录遍历攻击(即LFI)
例:nikto -h 10.10.10.1 -Plugin apacheuser
扫描的冗长程度-Display
1 显示 Web 服务器提供的任何重定向。
2 显示收到的任何 cookie
E 输出任何错误
web_枚举的更多相关文章
- Swift enum(枚举)使用范例
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...
- Objective-C枚举的几种定义方式与使用
假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...
- Help Hanzo (素数筛+区间枚举)
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000). (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...
- 枚举:enum
枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...
- .NET 基础一步步一幕幕[方法、结构、枚举]
方法.结构.枚举 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值,写void 方法名:P ...
- Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件
在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...
- 用枚举enum替代int常量
枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...
- c#编程基础之枚举
枚举的意义就在于限制变量取值范围. 当可以确定的几种取值时才可以用. 如果输入一个字符串需要进行判断是否是我们需要的字符串时,则一般需要这样写: using System; using System. ...
- golang枚举类型 - iota用法拾遗
在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...
随机推荐
- Scanner基础用法
Scanner基础用法 引入包java.util.Scanner 读一个单词 package charpter2; import java.util.Scanner; public class Sca ...
- SpringCloud Fegin 负载均衡
Spring Cloud Ribbon 和 Spring Cloud Hystrix 在微服务中实现了客户端负载均衡的服务调用以及通过断路器来保护微服务应用.这两者作为基础工具类框架广泛地应用在各个微 ...
- Treemap按key和value降序排序
Treemap是一种根据键排序的数据结构,可以通过重载它的比较器来按照值排序.要按键排序,可以使用默认的比较器,而要按值排序,可以创建一个自定义的比较器并将其传递给treemap的构造函数. 以下是按 ...
- VW
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js循环中reduce的用法简单介绍
reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当前元素值,当前索引 ...
- 数据文件的读写—R实现
数据文件的读写 在R语言中可以读写的最基本的数据格式就是text,以及csv文件.用read.table()或者read.csv函数就可以,相应的写入函数是write.table(),write.cs ...
- Visual Studio 2022 不支持 .NET Framework 4.5 项目的解决办法
概述 升级到Visual Studio 2022后,打开速度快了很多,开发体验也舒服很多.只是使用过程中遇到了一个比较尴尬的问题:默认Visual Studio 2022 不再支持安装 .NET F ...
- AtCoder Beginner Contest 236 E - Average and Median
给定一个序列,要求相邻两个数至少选一个,求选出数的最大平均数和最大中位数 \(\text{sol}\):二分答案. 二分平均数\(\text{mid}\),将每个元素减去\(\text{mid}\), ...
- kali linux 基本渗透测试流程
渗透测试流程 1. 信息收集阶段 网络拓扑结构分析 使用nmap扫描目标网络,获取目标主机IP地址和开放端口信息 使用whois查询目标域名的注册信息和DNS服务器信息 使用nslookup查询目标域 ...
- BAT 基础语法
命令 //功能 echo //标准输出命令 在CMD窗口中 显示echo 后的内容 @ //关闭当前行的 回显 回显:源代码在 CMD 窗口中再次显示 pasue // 暂停程序 的执行 ...