前述:
前面学习了sqli-labs 和 DVWA,也算是初步涉足了web漏洞,了解了一些web漏洞的知识。所以在pikachu上面,会更加仔细认真,把前面没有介绍到的知识点和我一边学习到的新知识再补充进来。
概述:
暴力破解这也是pikachu的第一个板块,前面DVAW介绍过的这里就不再赘述了。
先要明确一下暴力破解的流程:
1.确认登录接口的脆弱性——尝试登录,抓包,察验证元素和response信息,判断是否存在暴力破解的可能 。
2.对我们用到的字典进行优化
3.熟练使用我们的抓包工具,令其自动化操作。
上面我们提到了字典,这里简单介绍一下。
字典的作用一个有效的字典可以大大提高暴力破解的效率,比如常用的用户名密码是大概什么类型的,你这里可以找相应的字典,当然字典里内容越是全面越容易爆破出用户名密码来。
比如:根据系统内容进行优化,注册时要求密码8位以上,我们就去掉少于8位的密码;爆破管理后台,账号是 admin / administrator / root 的可能是比较高,可以使用这3个账号进行爆破等等。
正文:
一、基于表单的暴力破解
我们在username和password上面随便输入一下,显示输入错误:
这里没有验证码等其他验证机制,抓包看看
发送到Intruder进行暴力破解(选中后右键单击就看到了,前面的DVWA随笔有过描述,接下来就不再赘述了)
因为是测试这里用的就是简单的字典了,两个参数要设置两遍
设置线程并发数等参数(这里用默认的就好)
接下来点击Start attack键进行爆破
根据返回的length的不同,可以看到爆破出来的结果
然后到网站进行登录实验,发现成功了
二、验证码绕过(on server)
验证码可以用来防止恶意注册、防止暴力破解。服务端验证码常见问题:
1.验证码在后台不过期,导致长期可以使用
2.验证码校验不严格,逻辑出现问题
3.验证码设计的太过简单和有规律,容易被猜解
我们先做个小测试,不输入、输入错误和输入正确三种情况:
不输入验证码的情况下会提示验证码为空,输入错误验证码的情况下会提示验证码错误,只有验证码正确的前提下才会提示账号或密码不存在。
我们抓包发现,服务器对验证码是有验证的。
我们先生成一个新的验证码,然后在BurpSuite中输入正确的验证码
那我们接着再输入一遍新的账号密码和原来的验证码抓包,把包发送到Repeater模块中,发现
正常来说应该是提示验证码错误的,但是他没有,说明这个验证码长期有效。
验证码生成逻辑:
当我们刷新页面的时候,我们会向后台发送一个请求,后台收到请求会生成一个验证码并在session中把验证码保存下来。
所以直接发送到Intruder中直接暴力破解就好了,跟上面的步骤一样,就不赘述了。
三、验证码绕过(on client)
这一关我们还是先输入后抓包发送到repeater模块
这里我们和上面一样,输入一边错的验证码试试,发现好像这个验证码不起什么作用,比上一关还简单。
结合这两次实验来看,说明这关是前端设置的验证码,如同虚设,后端不会对验证码进行验证。那么我们不用理会验证码,直接进行暴力破解就可以了。
不再赘述。直接给答案了
四、token防爆破
这个token放爆破在DVWA中演示过一遍,这里再详细说说这是个啥。。
我们可以打开网页源码看一下,也可以随便输入个账号密码抓包发送到repeater中看。
里面的数字就是我们的token,我的每次提交的请求都会有一个token值,后端会验证这个token值,产生的token每次以明文形式传到前端,就有了漏洞。
我们抓包后,发送到intruder中,步骤如图
我们把token设置变量,options的grep extract添加token:
token变量的type设置成recursive grep
把Number of thread 改成1, 一定要设置跟随重定向,方法如下:options->redirection设置为always
然后Start attack,值就出来了