feature: web: save project

This commit is contained in:
Dobin
2024-03-07 18:50:24 +00:00
parent c80dadd4d9
commit 1fe18c4c64
3 changed files with 21 additions and 12 deletions
+8 -2
View File
@@ -12,14 +12,18 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<!-- a bootstrap dropdown to select one of the log files --> <!-- a bootstrap dropdown to select one of the log files -->
<div class="col-md-3"> <div class="col-md-3">
<form method="POST" enctype="multipart/form-data" action="/add_project"> <form method="POST" enctype="multipart/form-data" action="/add_project">
<div class="row row-cols-lg-auto g-3"> <div class="row row-cols-lg-auto g-3">
<input type="text" name="project_name" class="hidden form-control" value="{{project_name}}"
placeholder="Projekt" aria-label="PROJECTNAME" aria-describedby="basic-addon1">
<select class="form-select" name="shellcode" aria-label="SHELLCODE"> <select class="form-select" name="shellcode" aria-label="SHELLCODE">
{% for shellcode in shellcodes %} {% for shellcode in shellcodes %}
@@ -80,6 +84,8 @@
{% endfor %} {% endfor %}
</select> </select>
<button class="btn btn-primary" type="submit" value="save">Save</button>
</div> </div>
</form> </form>
+12 -10
View File
@@ -63,7 +63,6 @@ def project(name):
@views.route("/add_project", methods=['POST', 'GET']) @views.route("/add_project", methods=['POST', 'GET'])
def inject(): def inject():
if request.method == 'POST': if request.method == 'POST':
config.load() config.load()
settings = Settings() settings = Settings()
@@ -88,15 +87,19 @@ def inject():
inject_style = request.form['inject_style'] inject_style = request.form['inject_style']
settings.inject_style = InjectStyle[inject_style] settings.inject_style = InjectStyle[inject_style]
print(str(settings)) if storage.get_project(project_name) != None:
project = storage.get_project(project_name)
project = Project(project_name, settings) project.settings = settings
project.settings = settings else:
storage.add_project(project) project = Project(project_name, settings)
project.settings = settings
settings.project_name = project_name
storage.add_project(project)
storage.save_data() storage.save_data()
return render_template('project_add_post.html') return redirect("/project/{}".format(project_name), code=302)
else:
else: # GET
exes = [] exes = []
for file in os.listdir("app/upload/exe"): for file in os.listdir("app/upload/exe"):
exes.append(file) exes.append(file)
@@ -122,7 +125,6 @@ def inject():
) )
#start(settings) #start(settings)
@views.route("/build") @views.route("/build")
+1
View File
@@ -11,6 +11,7 @@ logger = logging.getLogger("Project")
class Project(): class Project():
def __init__(self, settings: Settings): def __init__(self, settings: Settings):
self.name: str = ""
self.settings: Settings = settings self.settings: Settings = settings
self.payload: Payload = Payload(self.settings.payload_path) self.payload: Payload = Payload(self.settings.payload_path)
self.exe_host: ExeHost = ExeHost(self.settings.inject_exe_in) self.exe_host: ExeHost = ExeHost(self.settings.inject_exe_in)