【好靶场】卷非己有
登录后有4个卷可以领取但是每次都只能领取1个卷这里我尝试使用yakite的并发功能进行并发领取yakite监听的端口是8083yakit切换到手动劫持然后点击领卷尝试Yakite的并发功能CtrlR发送到Web Fuzzer设置并发参数然后打开重定向可以发现并发没有用后面都是400的状态码可以使用别的账户的优惠卷这里我们把账号1的卷都领取了然后使用掉重新注册一个账户2把卷都领取了然后我们试试看账户2领取的卷账户1能不能用发现可以用的账户1可以使用账户2领取的优惠卷那么我们就可以注册200个账户然后批量领取卷统一个账号1使用这里就要使用到yakit的序列功能首先我们分别抓取注册账户、登录账户、领取优惠卷、使用优惠卷的功能攻击思路是这样的先批量注册200个账户-批量登录账户获取凭证-批量领取优惠卷-将领取到的卷都给账户1批量使用由于yakit的爆破功能不太会用这里我先到burp的intruder注册200个账户Yakit的序列功能使用我们点击侧边栏的【序列】然后把登录账户的数据包加入并且添加数据提取器提取登陆后返回的session值调试发现可以正常获取在email中我们写入{{int(1-5)}}表示分别登录1test.com、2tet.com...的账户并获取返回的session在领取优惠卷的数据包中我们输入{{p(data_0)}}就是上个数据包提取的数据测试发现可以正常领取这里我们同样添加一个数据提取器提取优惠卷的码调试可以正常提取这里使用卷的数据包是1test.com的账户的最后我们登录1test.com即可接下来添加使用优惠卷的数据包以同样的方式添加提取到的优惠卷码把第一个数据包的id换成10-200的开始批量使用但是登录后发现没有变化看来不能全自动化这里我yakit批量获取优惠卷之后手动通过burp进行爆破使用还是一样先批量获取优惠卷然后导出数据通过下面的代码提取导出数据中的data_1数据即优惠卷的码import json def extract_data_1(json_file_path): 从指定的JSON文件中提取ExtractedResults里的data_1对应值 Args: json_file_path (str): JSON文件的路径 Returns: list: 所有提取出的data_1值的列表 # 存储提取的data_1值 data_1_list [] # 读取JSON文件 with open(json_file_path, r, encodingutf-8) as f: data json.load(f) # 遍历每个请求记录 for record in data: extracted_results record.get(ExtractedResults, ) # 分割data_1部分 if data_1: in extracted_results: # 先按data_1:分割取后半部分 data_1_part extracted_results.split(data_1:)[1] # 再按|分割取前半部分并去除首尾空格 data_1_value data_1_part.split(|)[0].strip() # 【关键修改】只有不为空的时候才添加 if data_1_value: data_1_list.append(data_1_value) return data_1_list # 示例使用 if __name__ __main__: # 替换为你的JSON文件路径 file_path yakit-output-1106913799-2026_04_22-12_22_36.json results extract_data_1(file_path) # 打印提取结果 print(提取的data_1值) for value in results: print(value)然后使用burp的inturder功能批量使用优惠卷payload设置为simple list将刚刚复制的优惠卷码直接粘贴开始批量使用成功集起了100个碎片兑换flag