11import os
2- from fastapi import APIRouter , HTTPException , Body
2+
33import requests
44from dotenv import load_dotenv
5- import app .schema .sqlmap as sqlmapschema
5+ from fastapi import APIRouter , HTTPException , Body
6+
67import app .core .sqlmap_core as sqlmap_task
8+ import app .schema .sqlmap as sqlmapschema
9+ import app .tasks .sqlmap_worker as sqlmap_worker
710
811router = APIRouter (prefix = "/sqlmap" , tags = ["SQLMap扫描任务" ])
912
10-
1113load_dotenv ()
1214SQLMAP_API = os .getenv ("SQLMAP_API" )
1315AUTH = (os .getenv ("SQLMAP_USERNAME" ), os .getenv ("SQLMAP_PASSWORD" )) # Basic Auth
@@ -24,31 +26,12 @@ async def start_scan(payload: sqlmapschema.SqlmapScanPayload = Body(...)):
2426 }
2527 """
2628
27- r = requests .get (f"{ SQLMAP_API } /task/new" , auth = AUTH )
28- if not r .ok :
29- raise HTTPException (500 , "sqlmap task 创建失败" )
30-
31- taskid = r .json ()["taskid" ]
32-
33- # 2. 启动扫描
34- start = requests .post (
35- f"{ SQLMAP_API } /scan/{ taskid } /start" ,
36- json = payload .model_dump (mode = "json" ), # json转换问题
37- auth = AUTH ,
38- )
39-
40- await sqlmap_task .task_add (
41- task_id = taskid ,
42- scan_url = str (payload .url ),
43- status = "running" ,
44- scan_risk = payload .risk ,
45- scan_level = payload .level ,
46- )
29+ celery_tasks = sqlmap_worker .sqlmap_scan_task .delay (payload .model_dump (mode = "json" ))
4730
48- if not start . ok :
49- raise HTTPException ( 500 , start . text )
50-
51- return { "success" : True , "taskid" : taskid }
31+ return {
32+ "success" : True ,
33+ "taskid" : celery_tasks . id ,
34+ }
5235
5336
5437@router .get ("/tasks" )
0 commit comments