暴力破解四种情况
字典爆破
前端绕过(验证码在本地检测)
后端绕过(验证码在服务器端检测)
web端每次收到用户的操作响应后会自动向服务器端发送包含上一次验证码的请求包,服务端收到后会发送包含新的验证码的响应包,由于验证码的更换在一次完整用户响应之后,所以可以进行后端绕过(验证码)
token绕过(服务器端token验证)
一个token只能使用一次,并且下一次的token在本次请求的响应里
我把实践爆破分为两类:
普通字典爆破:前端绕过、后端绕过、字典爆破(操作流程相同)
1.使用bp抓包
2.对相关参数进行爆破标记,选择爆破的方式(常用cluster bomb)
3.加载字典,开始爆破,查看结果
token绕过(操作流程较复杂)
1.bp抓包
2.选择pitechfork模式,对爆破参数进行标记
3.普通参数设置同上,token参数采用递归方式(Recursive grep)
4.在options中设置Grep-payload和Grep-Extract
5.在资源池(resources pool)中创建最大线程数为1的池子并选择它
6.开始爆破,查看结果
练习地点可以考虑pikachu靶场和dvwa靶场,这里用dvwa靶场进行实践
安全等级为low和medium操作是相同的,唯一的区别是中级安全可能限制了最大线程数,字典运行比较慢
安全等级 :low
对用户名和密码进行爆破,采用Cluster bomb模式
安全等级 medium
同样的字典爆破速度变慢,耗费时间变长,流程和low一样
安全等级 high
token绕过(第一个token一定是不对的,第一行密码可以设置成空格)
1.选用Pitchfork模式;对用户名、密码和token进行爆破;
2.加载用户名和密码的字典,用户名和密码的字典信息需要一一对应,token参数的攻击类型选择Recursive grep模式,这是递归调用模式;(递归初始值可以不设置(默认用请求token);也可以用响应包中的token值)
2.在Options里面设置Grep-Extract和Grep-Payloads两个位置;Grep-Extract目的是选择响应包里面的下次要用的token值;Grep-Payloads是启用替换和替换前的规则限制(如url编码等规则)
3.在线程池中创建最大线程数为1的请求池,选择该资源池进行攻击
4.开始爆破,对结果进行长度排序后通过不同长度的对比和对应响应包的结果来确认是否爆破到了正确的用户名和密码
10