def __init__(self): super().__init__() self.opener = Request() self.aes = None # 用于aes加密传输的aes对象 self.private_key = None self.public_key = None
def __make_request(self): if self.__entry.text(): req = Request("GET", self.__entry.text()) res = req.get_api() if res: return self.__set_data(res) else: return else: Error('Enter country name') self.__data_label.setText("")
def __init__(self): super().__init__() self.options.add_option( 'password', 'You need use this password to connect webshell server.', True, 'c', check=r'[\w\-]+') self.options.add_option( 'password_type', 'Password type like GET, POST or HEADER.If not set, will use POST type to connect server(server must use this type).', default='POST', check=r'(?i)GET|POST|HEADER') self.opener = Request()
def __init__(self): super().__init__() self.options.add_option( 'password', 'You need use this password to connect webshell server.', True, 'c', check=r'[\w\-]+') self.options.add_option( 'new_version', 'Specifies whether the remote webshell is a new version.', default=1, type=int, check=r'0|1') self.opener = Request() self.aes = None # 用于aes加密传输的aes对象
async def test_repeated_login(): login = generate(20) user_old = User(login=login) user_old.save() request = Request(None, None, generate(), 2, 0) data = { 'user': generate_id(), 'login': login.upper(), } res = await handle(request, data) assert res.get('id') assert res.get('new') user_new = User.get(ids=res['id'], fields={'login'}) assert user_new.login != process_lower(login) assert user_new.id != user_old.id
def connect(self)-> bool: '''connect target and return True, or False if connect failed. ''' self.opener = Request() self._create_key() key = self.aes.algorithm.key pwd = hashlib.sha256(self.options.password.encode()).hexdigest()[:16].encode() self._create_key(pwd) data = base64.b64encode(self._encrypt(key)) try: with self.opener.post(self.options.target, data, timeout=10) as f: ret = f.read() except BaseException as e: logger.error(e) return False if ret.strip() != base64.b64encode(key): logger.error(f"The accepted number `{ret.decode(self.options.encoding, 'ignore')}` does not match the expected `{base64.b64encode(key).decode()}`") return False self._create_key(key) return True
async def test_repeated_login(): login = generate(20) user_old = User(login=login, password='******') user_old.save() assert user_old.id assert user_old.login == process_lower(login) request = Request(None, None, generate(), 2, 0, SIO()) data = { 'login': login.upper(), 'password': '******', } res = await handle(request, data) assert res.get('id') assert res.get('new') == False user_new = User.get(ids=res['id'], fields={'login'}) assert user_new.login == process_lower(login) assert user_new.id == user_old.id