今天继续给大家介绍渗透测试相关知识,本文主要内容是pikachu靶场暴力破解绕过token防护详解。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、token防护详解
在有些站点的登录页面,为了防止用户进行暴力破解,经常会引用token。以pikachu靶场为例,token放爆破靶场如下所示:
我们查看页面源代码,如下所示:
从上图中可以看出,在上述页面中,除了表面上的用户名和密码的输入框外,还有一个隐藏的输入框,即token字段。
因此,我们在提交发送数据包时,会连同隐藏数据输入框中的token变量一起发送出去,发送的数据包如下所示:
我们来查看以下PHP页面源代码。html处token字段如下所示:
从上图中可以看出,token字段取值来自session中的值。
而当我们提交token后,后台会对我们提交的token进行检验,并且在下次请求token时,生成新的token,源码如下所示:
因此,token值在每次访问页面时,都会是变动的,我们只有提交了正确的token值,才能够进行用户名、密码的爆破。
二、Burpsuite爆破设置
BurpSuite支持此类爆破,其可以从返回的响应页面中提取指定的字段,并且放到下一次访问的payload中。
我们将登录的数据包抓取并发送到BurpSuite的Intruder模块后,首先设置Pitchfork模式,并选择用户名、密码以及token作为3个payload,如下所示:
接下来,我们需要分别设置username和password的字典,如下所示:
然后,在token字段处,我们选择Recursive grep,如下所示:
设置完成后,我们进入到Options下,在Grep Extract下选择Add,然后在弹出的页面中选择Refresh response,如下所示:
之后,我们找到对应的token值,点击后,BurpSuite会帮助我们自动生成包含该token值的正则表达式,然后点击OK按钮,如下所示:
这样,我们就设置好了抓取的token值了。设置好的页面如下所示:
最后需要注意的是,在这种模式下,由于后一个页面的token值紧紧依赖前一个页面的响应,因此BurpSuite不能工作在多线程模式下,单线程设置如下所示:
三、暴力破解实战
在完成上述设置后,我们就可以进行暴力破解实战了,点击“Start Attack”后,结果如下所示:
我们就可以根据结果的响应长度,筛选正确的用户名和密码了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200