mirror of
https://github.com/leminlimez/Nugget.git
synced 2025-04-08 04:23:05 +08:00
fix last_domain not updating in concat_regular_file
This commit is contained in:
@@ -23,6 +23,7 @@ def concat_exploit_file(file: FileToRestore, files_list: list[FileToRestore], la
|
|||||||
# don't append the directory if it has already been added (restore will fail)
|
# don't append the directory if it has already been added (restore will fail)
|
||||||
path, name = os.path.split(file.restore_path)
|
path, name = os.path.split(file.restore_path)
|
||||||
domain_path = f"SysContainerDomain-../../../../../../../..{base_path}{path}/"
|
domain_path = f"SysContainerDomain-../../../../../../../..{base_path}{path}/"
|
||||||
|
new_last_domain = last_domain
|
||||||
if last_domain != domain_path:
|
if last_domain != domain_path:
|
||||||
files_list.append(backup.Directory(
|
files_list.append(backup.Directory(
|
||||||
"",
|
"",
|
||||||
@@ -30,7 +31,7 @@ def concat_exploit_file(file: FileToRestore, files_list: list[FileToRestore], la
|
|||||||
owner=file.owner,
|
owner=file.owner,
|
||||||
group=file.group
|
group=file.group
|
||||||
))
|
))
|
||||||
last_domain = domain_path
|
new_last_domain = domain_path
|
||||||
files_list.append(backup.ConcreteFile(
|
files_list.append(backup.ConcreteFile(
|
||||||
"",
|
"",
|
||||||
f"{domain_path}/{name}",
|
f"{domain_path}/{name}",
|
||||||
@@ -38,11 +39,12 @@ def concat_exploit_file(file: FileToRestore, files_list: list[FileToRestore], la
|
|||||||
group=file.group,
|
group=file.group,
|
||||||
contents=file.contents
|
contents=file.contents
|
||||||
))
|
))
|
||||||
return last_domain
|
return new_last_domain
|
||||||
|
|
||||||
def concat_regular_file(file: FileToRestore, files_list: list[FileToRestore], last_domain: str, last_path: str) -> str:
|
def concat_regular_file(file: FileToRestore, files_list: list[FileToRestore], last_domain: str, last_path: str):
|
||||||
path, name = os.path.split(file.restore_path)
|
path, name = os.path.split(file.restore_path)
|
||||||
paths = path.split("/")
|
paths = path.split("/")
|
||||||
|
new_last_domain = last_domain
|
||||||
# append the domain first
|
# append the domain first
|
||||||
if last_domain != file.domain:
|
if last_domain != file.domain:
|
||||||
files_list.append(backup.Directory(
|
files_list.append(backup.Directory(
|
||||||
@@ -51,7 +53,7 @@ def concat_regular_file(file: FileToRestore, files_list: list[FileToRestore], la
|
|||||||
owner=file.owner,
|
owner=file.owner,
|
||||||
group=file.group
|
group=file.group
|
||||||
))
|
))
|
||||||
last_domain = last_domain
|
new_last_domain = file.domain
|
||||||
# append each part of the path if it is not already there
|
# append each part of the path if it is not already there
|
||||||
full_path = ""
|
full_path = ""
|
||||||
for path_item in paths:
|
for path_item in paths:
|
||||||
@@ -61,20 +63,20 @@ def concat_regular_file(file: FileToRestore, files_list: list[FileToRestore], la
|
|||||||
if not last_path.startswith(full_path):
|
if not last_path.startswith(full_path):
|
||||||
files_list.append(backup.Directory(
|
files_list.append(backup.Directory(
|
||||||
full_path,
|
full_path,
|
||||||
last_domain,
|
file.domain,
|
||||||
owner=file.owner,
|
owner=file.owner,
|
||||||
group=file.group
|
group=file.group
|
||||||
))
|
))
|
||||||
last_path = full_path
|
last_path = full_path
|
||||||
# finally, append the file
|
# finally, append the file
|
||||||
files_list.append(backup.ConcreteFile(
|
files_list.append(backup.ConcreteFile(
|
||||||
full_path,
|
f"{full_path}/{name}",
|
||||||
last_domain,
|
file.domain,
|
||||||
owner=file.owner,
|
owner=file.owner,
|
||||||
group=file.group,
|
group=file.group,
|
||||||
contents=file.contents
|
contents=file.contents
|
||||||
))
|
))
|
||||||
return last_domain, last_path
|
return new_last_domain, full_path
|
||||||
|
|
||||||
# files is a list of FileToRestore objects
|
# files is a list of FileToRestore objects
|
||||||
def restore_files(files: list, reboot: bool = False, lockdown_client: LockdownClient = None):
|
def restore_files(files: list, reboot: bool = False, lockdown_client: LockdownClient = None):
|
||||||
|
|||||||
Reference in New Issue
Block a user