[TOC]
## 暴力破解
暴力猜解简单来说就是将密码进行逐个推算,直到找出真正的密码为止
### 1、暴力破解注意事项:
1. 破解前一定要有一个有效的字典;
2. 判断用户账号和网站情况
是否设置了复杂的密码、网站是否存在验证码、尝试登录的行为是否有限制、网站是否双因素认证、Token值等等。
有些公司内网服务的密码是先统一默认密码给员工,再让他们自己更改,可也可能出现漏洞
>等保中对管理员后台有双因素认证要求,例如只允许某个IP访问,通过堡垒机,手机短信等
3. 对目标网站进行注册、改密、找密等流程
搞清楚帐号密码的一些限制,比如目标站点要求密码必须是8位以上,字母数字组合等
用户名修改密码新旧密码是不允许一样的,也可能出现漏洞
4. 确定要破解的账号是否存在
测试正确账号与错误账号的返回信息是否相同等,想办法先确定要破解的账号是存在的(特别是破解管理员账号时)
通过企业网站所留邮箱命名规则,也可以判断系统账号规则
4. 破解管理后台密码
可使用admin/administrator/root帐号机率较高,可以使用这三个帐号+密码字典进行暴力破解
### C/S架构和B/S架构
C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。
B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。
**C/S与B/S的结构区别:**
* 硬件环境不同
C/S通常是建立在专用的网络上,小范围的网络环境。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行;
* 安全要求不同
C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强;而B/S结构面向的范围广,所以安全性比较低;
* 系统维护不同
B/S结构维护升级比较简单,而C/S结构维护升级相对困难。
### 暴力破解分类
1. 基于表单的暴力破解
2. 基于验证码暴力破解
on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证码在前端源代码中泄露
on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解
3. 基于Token破解
由于token值输出在前端源代码中,容易被获取,因此也就失去了防暴力破解的意义,一般Token在防止CSRF上会有比较好的功效。
注意:线程数设为1;Grep-Extract设置好开始token" value=" 结束为" /> ;有郊载荷设为递归搜索
“token” value="
4. 基于系统、数据库、中间件等第三方服务破解
系统漏洞扫描器自带暴力破解、Bruter工具、hydra
## 验证码安全:
验证码是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试
### 验证码的原理:
1. 客户端发起一个请求
2. 服务端响应并创建一个新的SessionID同时生成一个随机验证码。
3. 服务端将验证码和SessionID一并返回给客户端
4. 客户端提交验证码连同SessionID给服务端
5. 服务端验证验证码同时销毁当前会话,返回给客户端结果,如果不销毁则默认24分钟
### 验证码可能会出现的问题
1. 客户端生成验证码
验证码由客户端js生成并且仅仅在客户端用js验证,通过抓包或禁用js,都可绕过
2. 验证码输出客户端
无论出于什么考虑,都不应该把验证码的内容发送到客户端cookie或输出到response headers的其他字段。
比如,写入验证码的MD5值、 Base64转码等,太容易被攻击者逆向破解,得到原值。
3. 验证码输出在cookie中
有些系统默认不显示验证码,而是在用户校验错误一定次数之后再出现。那如何判断用户已经错误几次了呢?没有经验的开发可能这样做:
①在cookie中写入一个标记,比如loginErr = 1,后续错误累加
②在session中写入一个标记,例如loginErr = 1,后续错误累加
问题在于,要是攻击者不带Cookie提交HTTP请求呢?或者是,攻击者不更新Cookie中loginErr的值反复提交呢?这样程序会因为无从获取Cookie/sessionID,会认为攻击者是首次访问。无论什么时候,验证码都不会出现!
4. 验证码不过期,没有及时销毁会话导致验证码复用(php默认有24分钟)
基本的认识是:一张验证码,只能使用一次。使用之后,立即过期,不可再次使用。
5. 没有进行非空判断
很多时候,我们会遗留掉了验证过程中验证码为空的情况,比如去掉cookie中的某些值或者请求中验证码参数。
6. 产生的验证码问题集内的答案非常有限
例如就4个选项ABCD,那么一直用同一个序号破解,总有25%的概率正确
7. 验证码太简单,容易被机器识别
例如使用pkav这款安全软件,就可以很容易的识别大部分简单验证码
## 暴力破解安全防范:
* 强制要求输入验证码或者手机otp,否则,必须实施IP策略。 注意不要被X-Forwaded-For绕过了!
* 验证码只能用一次,用完立即过期!不能再次使用
* 验证码不要太弱。扭曲、变形、干扰线条、干扰背景色、变换字体等。
* 大网站最好统一安全验证码,各处使用同一个验证码接口。
* 要求用户设置复杂的密码;
* 对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
* 采用了双因素认证;
- src导航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查询
- 备案信息查询
- 信用信息查询
- IP反查站点的站
- 浏览器插件
- 收集子域名信息
- 在线平台
- 工具枚举
- ssl与证书透明度
- DNS历史解析
- DNS域传送漏洞
- C段探测
- JS文件域名&ip探测
- 搜索引擎&情报社区
- google黑客
- 威胁情报
- 钟馗之眼
- 收集相关应用信息
- 微信公众号&微博
- APP收集&反编译
- 收集常用端口信息
- 常见端口&解析&总结
- 扫描工具
- 网络空间引擎搜索
- 浏览器插件
- nmap扫描
- 收集敏感信息
- 源码泄露
- 邮箱信息收集
- 备份文件泄露
- 目录&后台扫描
- 公网网盘
- 历史资产
- 指纹&WAF&CDN识别
- 指纹识别
- CDN识别
- 绕过CDN查找真实IP
- WAF识别
- 漏洞资源和社工
- 漏洞公共资源库
- 社会工程
- 资产梳理
- 各种对渗透有帮助的平台
- 扫描器
- 扫描器对比
- AppScan(IBM)_web和系统
- AWVS_web扫描
- X-Scan_系统扫描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_绿盟_web
- 安恒明鉴
- Nessus_系统
- nexpose_系统
- 启明天镜_web_系统
- SQL注入
- 常用函数
- sql注入步骤
- union注入和information_schema库
- 函数和报错注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解决方案
- Access数据库注入
- MSSQL数据库注入
- MYSQL数据库注入
- 神器SQLmap
- xss跨站脚本攻击
- xss原理和分类
- xss案例和修复
- xss绕过技巧
- xss案例
- 文件上传下载包含
- 常有用文件路径
- 文件上传漏洞
- 文件下载漏洞
- 文件包含漏洞
- upload-labs上传漏洞练习
- XXE、SSRF、CSRF
- SSRF原理基础
- SSRF案例实战
- CSRF原理基础
- CSRF案例及防范
- XXE之XML_DTD基础
- XXE之payload与修复
- XXE结合SSRF
- 远程命令执行与反序列化
- 远程命令和代码执行漏洞
- 反序列化漏洞
- 验证码与暴力破解
- 爆破与验证码原理
- CS架构暴力破解
- BS架构暴力破解
- WEB编辑器漏洞
- 编辑器漏洞基础
- Ewebeditor编辑器
- FCKeditor编辑器
- 其他编辑器
- web中间件漏洞
- 中间件解析漏洞
- Tomcat常见的漏洞总结
- Jboss漏洞利用总结
- Weblogic漏洞利用总结
- WEB具体步骤
- 旁注和越权
- CDN绕过
- 越权与逻辑漏洞
- WEB应用常见其他漏洞
- WEB登陆页面渗透思路
- 获取WEBshell思路
- 社工、钓鱼、apt
- 社工和信息收集
- 域名欺骗
- 钓鱼邮件
- 一些钓鱼用的挂马工具
- 代码审计
- 代码审计工具
- WAF绕过
- WAF基础及云WAF
- 各种WAF绕过方法
- 绕过WAF上传文件
- 系统提权
- windows系统提权
- linux系统提权
- 数据库提权操作系统
- 内网横向渗透
- 内网穿透方式
- 一些内网第三方应用提权
- ARP与DOS
- ARP欺骗
- DOS与DDOS
- 一些DOS工具