pikachu靶场-暴力破解-token防爆破 – 作者:知非知非知非

1626135583_60ecdc1f25b386c067c55.png!small

老套路,BURP抓包

1626135589_60ecdc2506162e91ef788.png!small

发现提交的鉴别信息中出现了token字段,发送到REPEATER模块,看看回显!

1626135599_60ecdc2f1498e47d96db2.png!small

如果用户名和密码是正确的呢?会有什么样的回显呢?

1626135621_60ecdc451f1a6a96761b7.png!small

登录成功了!此时,我有了个想法,如果使用登录成功的token和错误的用户名或密码,会如何呢?

继续测试!!!!

发现回显是主页!!无登录错误信息和登录成功信息!

1626135630_60ecdc4e47287d53432a6.png!small

接下来,我们把修改的用户名和密码,改成正常的用户名和密码信息,发现还是无法正常登录,回显的界面还是无任何成功或者失败信息!

进而,推断,TOKEN信息无法复用,在加入TOKEN信息后,在无法猜测TOKEN的情况下,无法正常的进行暴力破解!!!!

但是,这只是我的想法,看了大佬的WP,我感觉自己TOO YOUNG TOO NAIVE!

接下来,我将由我自己推翻以上的,我自己的说法!!!!

先来补充一些小知识!!!!!

小知识:

token字段:token是由服务端生成的一串字符串,作为客户端向服务端请求的一个标识。在前端使用用户名/密码向服务端发送请求认证,服务端认证成功,那么在服务端会返回正确的token给前端,前端在每次请求时会带上服务端发来的token来证明自己的合法性。如果这个 Token 在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。

1、Token 完全由应用管理,所以它可以避开同源策略

2、Token 可以避免 CSRF 攻击

3、Token 可以是无状态的,可以在多个服务间共享

经过我的测试发现几个问题:

1、这个TOKEN是不断变化的,即使用户名和密码都对,每次返回的TOKEN也都不一样

2、当用户名和密码正确时,但是TOKEN不正确时,也无法登录。但是,在这种情况下,请求包对应的响应包中包含的TOKEN的VALUE,把这个VALUE值重新的放回构造的请求包中,重新发送,这个响应包回显中就提示登录成功。

3、这个思路即是递归思路,即构造变量,但是调用自身请示包的响应报中TOKEN中的VALUE值,即达到爆破的目标。

以下,即是正确的方式:

抓包后,传入INTRUDER模块,清除所有变量,

然后将PASSWORD和TOKEN两个字段设置为变量。

设置攻击类型为PITCHFORK,草叉类型,即两个变量同时修改。

PAYLOAD1,其中PASSWORD字段直接导入字典。

1626135648_60ecdc6043709548bb66b.png!small

接着,TOKEN字段需要通过在RESPONSE报文中获得,所以需要进行以下配置:

PAYLOAD2:类型设置为递归搜索:

1626135657_60ecdc6992332df14736e.png!small

然后,在OPTIONS-GREP-EXTRACT

TIPS:这些设置能被用于从响应报文中提取有用的信息到攻击结果表中。

1626135675_60ecdc7b320f55a8609ef.png!small

首先点击,获取回复的键:如右下图:

1626135685_60ecdc8546faf3215d988.png!small

设置正则匹配:设置开头以及结尾匹配出TOKEN字段:点击OK

1626135737_60ecdcb9cebefac4c6610.png!small

接着点击开始攻击:

错误提示如下:

1626135747_60ecdcc3c816dca2a058e.png!small

上面的信息为:递归查找的PAYLOAD无法用于多个请示线程,所以这里需要将线程,修改为1。

1626135755_60ecdccb68265cfeee64c.png!small

成功:

1626135765_60ecdcd59607c5543c71b.png!small

来源:freebuf.com 2021-07-13 08:23:23 by: 知非知非知非

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论