24 / 05 / 29

扫描雏形

因为最近要交一个小作品,我着手(与GPT)一起写了一个扫描器,严格意义上我觉得算不上一个真正的扫描器。整个过程我都在不断造轮子吧?属实有点半碗水的意思。

把这个小脚本取名成,针对皮卡丘靶场的自动化小脚本(可以生成表单版),会更贴切。

我来更新一下进度。引入了chartJS,可以生成一个饼图。越来越有那个样子了。

以至于前端,我觉得还行。

虽然没有使用特别炫酷的框架,但是对于一个扫描器的静态扫描报告来说,我觉得可以了。总而言之是比较符合我自己的审美的——简单,但是会呈现出一些质感。看怎么理解这种质感吧。我总觉得大家的审美都是不同的。

我是一个Golang新手,也是一个编程新手。因为AI的出现让编程门槛极具降低,当然,我还是觉得这样子会导致我的基础不扎实。那是日后的事。创造,的确能带来成就感。

以下是我这个小项目的一些技术小细节:

  1. 多线程与并发处理

  2. HTTP请求处理

  3. 数据处理与报告分析

可圈可点的地方并不多,比如使用了GO语言的goroutineWaitGroup使其可以处理大量的URL,效率会高很多。还有Mutex来避免数据竞争。也是我觉得最有精髓的一小段代码:

for _, url := range targetURLs { wg.Add(1) go func(url string) { defer wg.Done() defer bar.Add(1) results := make(map[string]bool) results["存储型XSS"], _ = scanner.TestStoredXSS(url) results["远程代码执行"], _ = scanner.TestRCE(url) results["反射型XSS"], _ = scanner.TestReflectedGETXSS(url) results["DOM型XSS"], _ = scanner.TestDOMXSS(url) results["SQL注入"], _ = scanner.TestSQLInjection(url) results["信息泄露"], _ = scanner.TestSensitiveInfoLeak(url) results["XML外部实体注入"], _ = scanner.TestXXE(url) results["目录遍历"], _ = scanner.TestDirectoryTraversal(url) results["反序列化漏洞"], _ = scanner.TestUNSER(url) results["任意文件下载"], _ = scanner.TestFileDownload(url) results["SSRF"], _ = scanner.TestSSRF(url) results["CSRF"], _ = scanner.TestHorizontalPrivilegeEscalation(url) results["文件上传"], _ = scanner.TestFileUpload(url) mu.Lock() globalResults[url] = results mu.Unlock() }(url) } wg.Wait()

上小学的时候,我梦想写一个杀毒软件。现在好像以另一种类似的形式,实现了一小丢丢。