From b796c7c5ef98659d45186b470ecfb7f2ca46a928 Mon Sep 17 00:00:00 2001 From: qiwentaidi <104491549+qiwentaidi@users.noreply.github.com> Date: Tue, 31 Dec 2024 13:42:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/portscan/portscan.go | 3 +-- frontend/src/config.ts | 7 +++++++ frontend/src/views/Permeation/Webscan.vue | 18 +++++++++++++++--- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/core/portscan/portscan.go b/core/portscan/portscan.go index 66367113..353b027b 100644 --- a/core/portscan/portscan.go +++ b/core/portscan/portscan.go @@ -50,7 +50,6 @@ func TcpScan(ctx context.Context, addresses <-chan Address, workers, timeout int // 如果该IP在1-10端口有开放,后续端口必须识别到服务 return // 如果没有识别到服务,则不返回 } - fmt.Printf("pr.StatusCode: %v\n", pr.StatusCode) retChan <- pr } threadPool, _ := ants.NewPoolWithFunc(workers, func(ipaddr interface{}) { @@ -99,7 +98,7 @@ func Connect(ip string, port, timeout int, proxy clients.Proxy) *structs.InfoRes URL: fmt.Sprintf("%v://%v:%v", response.FingerPrint.Service, ip, port), } resp, _, err := clients.NewSimpleGetRequest(result.URL, clients.DefaultClient()) - if err != nil && resp != nil { + if err == nil && resp != nil { result.StatusCode = resp.StatusCode } return result diff --git a/frontend/src/config.ts b/frontend/src/config.ts index d80715f3..5f16bca3 100644 --- a/frontend/src/config.ts +++ b/frontend/src/config.ts @@ -42,6 +42,13 @@ export async function InitConfigFile(timeout: number) { catchError(result, loading) } } + // 联动 + loading.setText('正在初始化资源中...') + const waitRouter = ["/Permeation/Webscan", "/"] + for (const route of waitRouter) { + await sleep(timeout) + router.push(route); + } loading.close(); } diff --git a/frontend/src/views/Permeation/Webscan.vue b/frontend/src/views/Permeation/Webscan.vue index 3f48c7e1..ebe29e18 100644 --- a/frontend/src/views/Permeation/Webscan.vue +++ b/frontend/src/views/Permeation/Webscan.vue @@ -262,6 +262,8 @@ function stopScan() { if (!form.runnningStatus) return form.runnningStatus = false ExitScanner("[webscan]") + ExitScanner("[portscan]") + ExitScanner("[portbrute]") ElMessage.warning("任务已停止") } @@ -387,7 +389,7 @@ class Engine { ).map(item => item.URL); // 对web服务先去提取再去除,之后扫描 updateActivities({ - content: "Remove result data and wait fingerprint count: " + this.inputLines.length.toString(), + content: "Extracting and removing webpage activity detection information, totaling: " + this.inputLines.length.toString() + ", followed by fingerprint detection", timestamp: (new Date()).toTimeString() }) fp.table.result = fp.table.result.filter( @@ -395,7 +397,10 @@ class Engine { ); fp.ctrl.watchResultChange(fp.table) } - + // 每个阶段任务前检查是否为退出状态 + if (!form.runnningStatus) { + return + } // 指纹扫描 let deepScan = false let callNuclei = false @@ -446,6 +451,10 @@ class Engine { }) form.runnningStatus = false return + } + // 每个阶段任务前检查是否为退出状态 + if (!form.runnningStatus) { + return } let crackLinks = fp.table.result.filter( (line) => crackDict.options.includes(line.Scheme.toLowerCase()) @@ -483,6 +492,9 @@ class Engine { timestamp: (new Date()).toTimeString() }) async.eachLimit(crackLinks, global.webscan.crack_thread, async (target: string, callback: () => void) => { + if (!form.runnningStatus) { + return + } let protocol = target.split("://")[0] userDict = crackDict.usernames.find(item => item.name.toLocaleLowerCase() === protocol)?.dic! Callgologger("info", target + " is start brute") @@ -1383,7 +1395,7 @@ function checkDictInput() {