# 基于表单的暴力破解

# 过程

这里本质上还是利用字典来进行用户名和密码的暴力破解,不过对于 burp suite 这类比较全面工具来说,他自己自带的字典爆破的功能就相对简单了点,并没有字典内字符相互拼接的功能,只能简单的进行排列组合。

  1. 首先在框中随意输入字符,用 burp suite 进行数据包抓取

  1. 将数据包转发至 Intruder,选择爆破的位置,加入自己准备好的字典

  1. 开始攻击,完成后查看结果,通常此时成功所返回的数据包长度与失败的不同,所以一般只需要查看这些请求即可

这个时候可以看到这个请求包的长度有点问题,查看响应结果可知爆破成功

# 总结

这里的爆破还是较为简单的,不过后来查询数据库拥有的用户时发现实际上由三个账户可以登录,但实际上只爆破出来了一个,主要原因在于字典不够全,当然这里主要靠平时的测试积累,或者直接盲猜

# 验证码绕过(on server)

# 过程

  1. 与上一个实验相同,随意填入用户名和密码,正确填入验证码,点击登录,同时用 burp suite 进行抓包

  1. 将抓取数据包发送至重放器(Repeater),修改用户名或密码发送,分析回显信息,发现验证码在后端可以重复使用


  1. 那么将数据包内容发送至攻击器(Intruder),用类似的操作进行爆破

  1. 最后爆破成功

# 总结

这里测试能够成功原因在于登录平台后端对验证码的验证并不严谨,单一生成的验证码可以多次使用,这就留下了非常大的安全隐患。后期可以设置验证码的存活时间,以避免长线的字典爆破。

# 验证码绕过(on client)

# 过程

  1. 随意填入用户名与密码,正确填入验证码,点击登录,同时用 burp suite 进行抓包

  1. 将抓取数据包发送至重放器(Repeater),修改验证码字段,发现前端代码在验证码为空时依然能通过验证

  1. 于是将抓取数据包发送至攻击器(Intruder),进行类似的爆破操作即可

# 总结

这里最大的问题在于验证代码放在前端,并且存在隐患巨大的漏洞,不仅易于绕过,同时这样源代码也容易被窃取

# token 防爆破?

这段其实没有做出结果来,还是找的网上的过程学习之后再打出来的,但是个人认为网络上的通关过程也不是很好,在爆破的时候也只是对密码和 token 两个值进行爆破,并没有对用户名进行操作,而我当时则是同时对三个值进行爆破,折磨了一个下午也没有结果,最后按网络过程后才出了结果。

# 过程

  1. 首先将抓取的登陆数据包发送到攻击器(Intruder),设置 attack type 为 pitchfork,并选中密码和 token 作为爆破字段

  1. 根据顺序加载对应的 payload 集,如 payload 集 1 加载密码字典,payload 集 2 设置为 recursive grep

  1. 在 grep-extract 下添加 token 的抓取

  1. 由于涉及递归和重定向,需要新建线程数为 1 的进程资源,重定向选项设置为 always

  1. 随后直接进行攻击即可

# 总结

问题主要还是出在 token 出现在前端代码上,并且上一个登录所生成的 token 用作下一个登陆的 token,这样就留下了许多的操作空间。