vs做网站好不好/百度广告推广电话
文章目录
- Pikachu漏洞练习平台
- 暴力破解
- 概述
- 基于表单的暴力破解
- 方法:
- 验证码绕过(on client——客户端)
- 验证码一般做什么?
- 验证码的认证流程:
- on client(只在前端处理,未在后端验证)常见问题:
- 方法:
- 验证码绕过(on server——服务端)
- on server常见问题:
- 方法:
- 解决验证码后台不过期的方法:
- token防爆破
- 防暴力破解的方法:
- 解题方法:
- 弊端:
Pikachu漏洞练习平台
暴力破解
概述
“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;
…
基于表单的暴力破解
方法:
1.使用burp suite
抓包,最下面一行即可看出我们输入的用户名和密码;
2.将拦截到的访问请求发送到Intruder
模块,可以看到Sniper
、Battering ram
、Pitchfork
、Cluster bomb
四种攻击模式。
Sniper
(狙击手):设置一个payload
,先将第一个第一个变量使用字典进行测试,然后再将第二个变量使用字典进行测试;
Battering ram
(冲撞车):设置一个payload
,所有的变量一起用字典内容替换,然后一起尝试;
Pitchfork
(草叉型):每个变量设置一个payload
,分别使用对应的对变量进行同时替换;
Cluster bomb
(焦束炸弹):为每个变量设置一个payload,分别使用字典内容组合对变量进行替换。
3.通过攻击,我们发现admin 123456这个组合响应后的结果长度与其他不同,即这个组合为正确的用户名和密码。
验证码绕过(on client——客户端)
验证码一般做什么?
1.登录暴力破解;
2.防止机器恶意注册。
验证码的认证流程:
1.客户端request
登陆页面,后台生成验证码:
①后台使用算法生成图片,并将图片response
给客户端;
②同时将算法生成的值全局赋值到SESSION
(当访问服务器某个网页的时候,会在服务器 端的内存里开辟一块内存,这块内存就叫做SESSION
)中。
2.校验验证码:
①客户端将认证信息和验证码一同提交;
②后台将提交的验证码与SESSION
里面的进行比较;
3.客户端重新刷新页面,再次生成新的验证码:
①验证码算法中一般包含随机函数,所以每次刷新都会改变。
on client(只在前端处理,未在后端验证)常见问题:
1.使用前端js
来实现验证码;
2.将验证码在cookie
(指某些网站为了辨别用户身份、进行 Session
跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理)中泄露,容易获取;
3,将验证码在前端代码泄露,容易获取。
方法:
直接使用上述“基于表单的暴力破解”的方法——使用burp suite
抓包,通过攻击输入正确的用户名和密码即可成功验证码。
验证码绕过(on server——服务端)
on server常见问题:
1.验证码在后台不过期,导致可以长期使用;
2.验证码校验不严格,逻辑出现问题;
3.验证码设计的太过简单和有规律,容易被猜解。
方法:
1.使用burp suite
抓包,将拦截到的请求发送到repeater
,使用正确的验证码,随便输入用户名和密码,点击“go”
,查看response
;
2.在repeater页面重新输入一组用户名和密码,同样的步骤,查看response
;
3.若两次执行的结果显示相同“用户名或密码不存在”,说明验证码在后台不过期,即可采用上一题的方法直接暴力破解。
解决验证码后台不过期的方法:
1.在后台源码showcode.php
文件夹中改变SESSION
的过期时间。
2.或者在bf_server.php
文件夹中添加源码使验证码用完即销毁,达到一次一用的目的。
token防爆破
防暴力破解的方法:
1.设计安全的验证码(安全的流程+复杂又可用的图形);
2.对认证错误的提交进行计数并给出限制,比如连续五次密码错误,锁定两小时;
3.必要的情况下,使用双因素验证(三种不同类型的证据,可以证明一个人的身份:秘密信息、个人物品、生理信息。双因素认证就是指,通过认证同时需要两
个因素的证据。银行卡就是最常见的双因素认证。用户必须同时提供银行卡和密码,才能取到现金)。
解题方法:
1.按F12打开开发者工具,点击“查看器”,找到源码中的token
(点开页面,后台发送请求,即可在后台生成一个token
);
2.输入用户名和密码后,后台同时验证用户名、密码以及token
,每登录一次,token
就会变一次。
3.攻击者在每次提交前,即可获取一个正确的token
存入字典中。
弊端:
token值输出在前端源码中,容易被获取,因此也就失去了防暴力破解的意义。