Skip to content

Commit 27d8d41

Browse files
committed
【README】支持对 JSON 格式的参数进行模糊测试,使用 --json-crawler-output 输出动静态爬虫的扫描结果,并大幅提升动态爬虫的爬取能力
1 parent 101c828 commit 27d8d41

File tree

3 files changed

+37
-36
lines changed

3 files changed

+37
-36
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,12 @@
137137
* 【2】Yaml POC支持ldap_url, rmi_url
138138
* 【3】新增--no-scan参数,绕过漏洞扫描,只进行主动或被动爬取
139139
* 【4】优化动态爬虫,避免对Data URLs(URL中编码的文件)发起请求
140+
141+
# 1.0.24 2024-07-20
142+
## SUPPORT
143+
* 【1】支持对 JSON 格式的参数进行模糊测试
144+
* 【2】使用--json-crawler-output输出动静态爬虫的扫描结果
145+
## BUGFIX
146+
* 【1】修复不支持不安全证书的问题
147+
* 【2】修复指定config文件了,还是会自动生成config.yaml 文件
148+
* 【3】修复由于处理 EventRequestPaused 事件时 HTTP 头部构建错误而导致的爬取结果缺失的问题

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,21 @@ Wscan首次运行时,将会生成一个名为config.yaml的文件。将plugins
6868
./wscan --log-level=debug ws --basic-crawler http://testphp.vulnweb.com/ --json-output=wscan_scan_result.json --html-output=wscan_scan_result.html
6969
./wscan --log-level=debug ws --browser http://testphp.vulnweb.com/ --html-output=wscan_scan_result.html
7070
./wscan --log-level=debug ws --url http://testphp.vulnweb.com/listproducts.php?cat=1 --json-output=wscan_scan_result.json
71-
./wscan --log-level=debug ws --url-file=/wscan/url_file.txt --html-output=wscan_scan_result.html
71+
./wscan --log-level=debug ws --url-file=/wscan/url_file.txt --html-output=wscan_scan_result.html
72+
7273
```
7374
### Ⅱ.专项扫描
7475
在命令行中使用plug参数启用要扫描的插件
7576
```
7677
./wscan --log-level=debug ws --plug=sqldet --basic-crawler http://testphp.vulnweb.com/ --html-output=wscan_scan_result.html
7778
```
79+
### Ⅲ.仅爬虫
80+
仅记录爬虫结果,不进行漏洞扫描
81+
```
82+
./wscan --log-level=debug ws --browser http://testphp.vulnweb.com/ --no-scan --json-crawler-output=json_crawler_output.json
83+
./wscan --log-level=debug ws --basic-crawler http://testphp.vulnweb.com/ --no-scan --json-crawler-output=json_crawler_output.json
84+
```
85+
7886
## 被动扫描
7987
### Ⅰ.生成并安装CA
8088
运行genca命令之后,将在当前文件夹生成 ca.crt 和 ca.key 两个文件。
@@ -291,6 +299,7 @@ Wscan支持JSON、HTML等多种格式的扫描报告,其中包含详尽的漏
291299
* 2024.04.06 发布v1.0.21 二进制版,主被动扫描支持WEB组件识别,内置3700+WEB组件识别插件
292300
* 2024.07.06 发布v1.0.22 二进制版,实现利用语义分析的方式检测XSS漏洞,XSS检测准确率大幅提升
293301
* 2024.07.07 发布v1.0.23 二进制版,支持通用log4j-rce漏洞检测
302+
* 2024.07.20 发布v1.0.24 二进制版,支持对 JSON 格式的参数进行模糊测试,使用 --json-crawler-output 输出动静态爬虫的扫描结果,并大幅提升动态爬虫的爬取能力
294303
295304
# 开源时间表
296305
Wscan的目标是创建一个开源且非盈利的项目。然而,由于Wscan的工作量庞大,代码仍在快速迭代中。

core/main.go

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"os"
1212
"wscan/core/entry"
1313
"wscan/core/utils"
14+
logger "wscan/core/utils/log"
1415
)
1516

1617
func showBanner() {
@@ -57,6 +58,10 @@ func Convert(c *cli.Context) error {
5758
}
5859

5960
func GenerateCA(c *cli.Context) error {
61+
_, err := entry.LoadOrGenConfig(c)
62+
if err != nil {
63+
logger.Fatal(err)
64+
}
6065
if err := utils.GenerateCAToPath("." + string(os.PathSeparator)); err != nil {
6166
return err
6267
}
@@ -137,6 +142,16 @@ var subCommandWebScan = cli.Command{
137142
Aliases: []string{"fs"},
138143
Value: "",
139144
Usage: " force usage of SSL/HTTPS for raw-request"},
145+
&cli.BoolFlag{
146+
Name: "no-scan",
147+
Aliases: []string{"ns"},
148+
Value: false,
149+
Usage: "No vulnerability detection, only enable crawlers"},
150+
&cli.StringFlag{
151+
Name: "json-crawler-output",
152+
Aliases: []string{"jco"},
153+
Value: "",
154+
Usage: "output wscan crawler results to FILE in json format"},
140155
&cli.StringFlag{
141156
Name: "json-output",
142157
Aliases: []string{"jo"},
@@ -156,22 +171,6 @@ var subCommandWebScan = cli.Command{
156171
Action: entry.NewApp,
157172
}
158173

159-
var subCommandServiceScan = cli.Command{
160-
Name: "servicescan",
161-
Aliases: []string{"ss"},
162-
Usage: "Run a service scan task",
163-
Flags: []cli.Flag{},
164-
Action: ServiceScan,
165-
}
166-
167-
var subCommandSubdomain = cli.Command{
168-
Name: "subdomain",
169-
Aliases: []string{"sd"},
170-
Usage: "Run a subdomain task",
171-
Flags: []cli.Flag{},
172-
Action: SubdomainScan,
173-
}
174-
175174
var subCommandReverse = cli.Command{
176175
Name: "reverse",
177176
Aliases: []string{},
@@ -180,14 +179,6 @@ var subCommandReverse = cli.Command{
180179
Action: entry.ReverseAction,
181180
}
182181

183-
var subCommandConvert = cli.Command{
184-
Name: "convert",
185-
Aliases: []string{},
186-
Usage: "convert results from json to html or from html to json",
187-
Flags: []cli.Flag{},
188-
Action: Convert,
189-
}
190-
191182
var subCommandGenCA = cli.Command{
192183
Name: "genca",
193184
Aliases: []string{},
@@ -206,22 +197,21 @@ var subCommandVersion = cli.Command{
206197

207198
func main() {
208199
showBanner()
209-
entry.LoadOrGenConfig(nil)
210200
author := cli.Author{
211201
Name: "shaochuyu",
212202
213203
}
214204
app := &cli.App{
215205
Name: "wscan",
216206
Usage: "A powerful scanner engine ",
217-
Version: "1.0.22",
207+
Version: "1.0.24",
218208
Authors: []*cli.Author{&author},
219209
Flags: []cli.Flag{
220210
&cli.StringFlag{
221211
Name: "config",
222212
Aliases: []string{},
223213
Value: "",
224-
Usage: "从文件中加载配置(默认为“config.yaml”)"},
214+
Usage: "Load configuration from file (default to config. yaml)"},
225215
&cli.StringFlag{
226216
Name: "log-level",
227217
Aliases: []string{},
@@ -231,23 +221,16 @@ func main() {
231221
}
232222
app.Commands = []*cli.Command{
233223
&subCommandWebScan,
234-
&subCommandServiceScan,
235-
&subCommandSubdomain,
236224
&subCommandReverse,
237-
&subCommandConvert,
238225
&subCommandGenCA,
239226
&subCommandVersion,
240227
}
241228
err := app.Run(os.Args)
242229
if err != nil {
243-
230+
logger.Fatal(err.Error())
244231
}
245232
}
246233

247-
func loadLicense() {
248-
249-
}
250-
251234
func Run(c *cli.Context) error {
252235
return nil
253236
}

0 commit comments

Comments
 (0)