classBurpy: def__init__(self): """ this is called from the start of PyRo4 service, so init webdriver here """ option = webdriver.ChromeOptions() option.add_argument('headless') self.driver = webdriver.Chrome(executable_path=chromeExec, chrome_options=option) self.driver.implicitly_wait(20) self.driver.get(url) self.k1 = '' self.k2 = '' self.k3 = ' h5 '
try: js = self._load_js() self.driver.execute_script(js) except Exception as e: print("Failed to load MouldueRaid JS") print(e) def__del__(self): self.driver.quit()
def_load_js(self): jsFilePath = r"/home/m0nst3r/tools/moduleraid.js" # jsFilePath = "E://moduleraid.js" with open(jsFilePath) as f: jsContent = f.read() return jsContent
defdecrypt(self, header, body): bodyjson = json.loads(body) self.k1 = bodyjson.get('K1') self.k2 = bodyjson.get('K2') DecRes = """return window.mR.findModule('encrypt')[0].decrypt(atob('%s'))""" % (self.k1) result = self.driver.execute_script(DecRes) print("Dec Res: ", result) nbody = result return header, nbody defencrypt(self, header, body): EncRes = """return btoa(window.mR.findModule('encrypt')[0].encrypt('%s'));""" % (body) result = self.driver.execute_script(EncRes) e = result + result[0:2] + result[int(len(result)/2)] + result[-2:] m = hashlib.md5() m.update(e.encode('utf-8')) self.k2 = m.hexdigest() resjson = {} resjson.update({"K1":result}) resjson.update({"K2":self.k2}) resjson.update({"K3":self.k3}) res = json.dumps(resjson) res = res.replace(" ","") print("Enc Res: ", res) return header, res