暴力破解密码–token破解
一、实验环境
- 抓包工具:burp
- pikachu靶场
- 火狐浏览器及burp代理插件
二、实验原理
token防爆破的原理
- token是后端产生的一个字符串,并且会发给前端,每当前端发起一次登录请求时,就会把该token一起发给后端,后端在验证账号密码前会先验证token的值是否正确然后才会验证账号密码;后端每收到一次请求就会产生一个新的token,同时把token连同响应信息一起发给前端。
- 这样的验证的机制可以有效地防止重放爆破。
破解思路
- 利用抓包工具bp发起请求,同时截获后端发回的响应。
- 利用响应中的token发起下一次请求。
三、实验过程
验证是否有token防爆破
- 打开浏览器bp代理
- 在bp工具中开启抓包功能
- 在pikachu中的爆破登录界面随便输入账号密码,点击登录
- 在bp中把抓到的包发送给repeater重放模块
- 在repeater中连续点击两次send发送给后端服务器,查看response中的render内容
-
-
如图render所示的即代表确实有token防爆破功能
-
开始破解–这里假设账号已知为admin
-
重新开始抓取登录的请求包
-
鼠标右键把请求包发送到intruder攻击模块
-
- 攻击类型选择为Pitchfork
- 点击有右边的clear
- 选中请求内容中的password的值,点击右边的add
- 选择请求内容中的token的值,点击右边的add
-
- 选择options,设置Grep-Extract,选中方框,点击Add
-
- 点击Refetch response
- 在下面的搜索框搜索token
- 找到name为token的标签
- 选中token的值,然后点击ok
-
- 再设置optoins中的Redirection重定向为Always
-
- 在Resource Pool中新建一个pool
- 所有值都设置为1
- 表示一次只进行一次爆破
-
- 先设置密码的爆破值
- payload set =1表示设置第一个$的值(前面在positions中add的)
- 类型选择simple list
- 把可能值添加到 list 中
-
- 设置token的值
- payload set =2
- 类型选择Recursive grep
- 复制请求包中的token值粘贴到grep中的initial payload for first request中
-
点击start attack开始攻击
-
- 如图结果所示已成功破解admin的密码为123456