Skip to content

Commit 0af2c85

Browse files
committed
快速扫描更智能;增加多种漏洞识别;WEB扫描增加保存截图功能
1 parent 056309e commit 0af2c85

File tree

10 files changed

+140
-23
lines changed

10 files changed

+140
-23
lines changed

Protocol/web.go

+12
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,18 @@ func IsWeb(host, port string, timeout int, Poc bool) map[string]string {
6666
if err != nil {
6767
continue
6868
}
69+
70+
// 保存截图
71+
if global.SaveIMG {
72+
go func() {
73+
imgerr := global.CaptureScreenshot(info.url, 90, global.SsaveIMGDIR)
74+
if imgerr != nil && strings.Contains(imgerr.Error(), "PATH") {
75+
fmt.Printf("\033[2K\r%s\n", "[ERROR] 在系统变量中不存在Chrom浏览器,跳过WEB截图功能!")
76+
global.SaveIMG = false
77+
}
78+
}()
79+
}
80+
6981
// 验证漏洞,只允许运行30秒
7082
if Poc {
7183
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
| 16 | 快速扫描格式 || 支持格式:https://192.168.1.1:9090、http://192.168.1.1:9090、192.168.1.1:9090/login/index.php |
8686
| 17 | sql注入扫描 || |
8787
| 18 | fofa数据 || 需设置fofa_email、fofa_key、fofa_size环境变量 |
88+
| 19 | 网站截图 || 需要本地具备chrom浏览器 |
8889

8990
## web目录扫描现阶段支持功能
9091
| 序号 | 功能 | 是否支持 | 备注 |
@@ -135,8 +136,9 @@ golin port -i http://www.test.com:18080 (扫描网站首页)
135136
golin port -i http://www.test.com:18080/info (扫描网站特定页)
136137
golin port -i 192.168.1.1/24 -c 1000 -t 10(仅扫描c段端口并设置并发数为1000,端口连接超时为10秒)
137138
golin port -i 192.168.1.1/24 --noping --nocrack --random(扫描c段端口但不探测存活不扫描弱口令,并且打乱主机顺序扫描)
139+
golin port -i 192.168.1.1/24 --noimg(不进行网站截图)
138140
golin port -i 192.168.1.1/24 --nopoc(扫描c段端口但禁用扫描漏洞)
139-
golin dirsearch -u https://test.com -f 字典.txt --code 200,404 (扫描状态码为200以及404的web目录)
141+
golin dirsearch -u https://tegitst.com -f 字典.txt --code 200,404 (扫描状态码为200以及404的web目录)
140142
golin [linux、mysql、oracle、sqlserver、redis、windows...] (按照3级等保要求核查各项安全配置生成html形式报告)
141143
golin update (检查是否可更新)
142144
```

cmd/port.go

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ func init() {
2323
portCmd.Flags().IntP("chan", "c", 100, "并发数量")
2424
portCmd.Flags().IntP("time", "t", 5, "超时等待时常/s")
2525
portCmd.Flags().Bool("random", false, "打乱主机顺序")
26+
portCmd.Flags().Bool("noimg", false, "此参数是不进行保存WEB截图")
2627
portCmd.Flags().Bool("nocrack", false, "此参数是不进行弱口令扫描")
2728
portCmd.Flags().Bool("nopoc", false, "此参数是不进行poc漏洞扫描")
2829
portCmd.Flags().StringP("userfile", "", "", "此参数是自定义用户字典文件")

cmd/update.go

+14-13
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"net/http"
1111
"net/url"
1212
"os"
13+
"runtime"
1314
"strconv"
1415
"strings"
1516
)
@@ -25,18 +26,6 @@ var updateCmd = &cobra.Command{
2526
fmt.Println("更新失败:", err)
2627
return
2728
}
28-
29-
// 获取当前程序大小并对比远程仓库的大小
30-
//exePath, _ := os.Executable()
31-
//fileSize, err := getFileSize(exePath)
32-
//if err != nil {
33-
// fmt.Println("获取仓库信息失败:", err)
34-
//}
35-
//if global.Version == newrelease.TagName && fileSize == newrelease.Assets[0].Size {
36-
// fmt.Println("当前版本已为最新版本,无需更新。")
37-
// return
38-
//}
39-
//fmt.Println(fmt.Sprintf("当前版本为:%s 大小为:%v/KB -> 最新版本为:%s 大小为:%v/KB", global.Version, fileSize, newrelease.TagName, newrelease.Assets[0].Size))
4029
var input string
4130
fmt.Print("是否下载GitHub仓库最新版本程序?y/n: ")
4231
for {
@@ -49,7 +38,19 @@ var updateCmd = &cobra.Command{
4938
switch input {
5039
case "y", "yes":
5140
proxy, _ := cmd.Flags().GetString("proxy")
52-
err := downloadFile(newrelease.Assets[0].BrowserDownloadUrl, "golin.exe", proxy)
41+
BrowserDownloadUrl, savaname := "", ""
42+
switch runtime.GOOS {
43+
case "windows":
44+
savaname = "golin.exe"
45+
BrowserDownloadUrl = fmt.Sprintf("https://github.com/selinuxG/Golin/releases/download/%s/%s", newrelease.TagName, savaname)
46+
case "linux":
47+
savaname = "golin_linux_amd64"
48+
BrowserDownloadUrl = fmt.Sprintf("https://github.com/selinuxG/Golin/releases/download/%s/%s", newrelease.TagName, savaname)
49+
case "drawin":
50+
savaname = "golin_drawin_amd64"
51+
BrowserDownloadUrl = fmt.Sprintf("https://github.com/selinuxG/Golin/releases/download/%s/%s", newrelease.TagName, savaname)
52+
}
53+
err := downloadFile(BrowserDownloadUrl, savaname, proxy)
5354
if err != nil {
5455
fmt.Println("更新失败->", err)
5556
return

global/CaptureWebScreenshot.go

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package global
2+
3+
import (
4+
"context"
5+
"github.com/chromedp/cdproto/page"
6+
"github.com/chromedp/chromedp"
7+
"os"
8+
"path/filepath"
9+
"strings"
10+
"time"
11+
)
12+
13+
// CaptureScreenshot 要截图的网页的 URL,截图的质量,以及保存截图的目录
14+
func CaptureScreenshot(url string, quality int64, dir string) error {
15+
// 创建一个上下文
16+
ctx, cancel := chromedp.NewContext(context.Background())
17+
defer cancel()
18+
19+
// 设置浏览器选项
20+
opts := append(chromedp.DefaultExecAllocatorOptions[:],
21+
chromedp.Flag("headless", true),
22+
chromedp.Flag("disable-gpu", true),
23+
chromedp.Flag("no-sandbox", true),
24+
chromedp.Flag("disable-dev-shm-usage", true),
25+
chromedp.Flag("ignore-certificate-errors", true), // 忽略证书错误
26+
//chromedp.Flag("remote-debugging-port", "9222"),
27+
)
28+
allocCtx, cancel := chromedp.NewExecAllocator(ctx, opts...)
29+
defer cancel()
30+
31+
// 创建一个浏览器实例
32+
ctx, cancel = chromedp.NewContext(allocCtx)
33+
defer cancel()
34+
35+
// 导航到指定的URL
36+
var buf []byte
37+
err := chromedp.Run(ctx, chromedp.Navigate(url), chromedp.Sleep(3*time.Second), chromedp.ActionFunc(func(ctx context.Context) error {
38+
// 获取页面截图
39+
var err error
40+
buf, err = page.CaptureScreenshot().WithQuality(quality).WithClip(&page.Viewport{X: 0, Y: 0, Width: 1024, Height: 768, Scale: 1}).Do(ctx)
41+
if err != nil {
42+
return err
43+
}
44+
return nil
45+
}))
46+
if err != nil {
47+
return err
48+
}
49+
50+
// 将 URL 中的非法字符替换为下划线
51+
filename := strings.Map(func(r rune) rune {
52+
if r == '/' || r == ':' {
53+
return '_'
54+
}
55+
return r
56+
}, url)
57+
58+
// 检查文件夹是否存在,如果不存在则创建
59+
if _, err := os.Stat(dir); os.IsNotExist(err) {
60+
err = os.MkdirAll(dir, 0755)
61+
if err != nil {
62+
return err
63+
}
64+
}
65+
66+
// 将截图保存到文件
67+
err = os.WriteFile(filepath.Join(dir, filename+".png"), buf, 0644)
68+
if err != nil {
69+
return err
70+
}
71+
72+
return nil
73+
}

global/gloabl.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const (
99
XlsxTemplateName = "golin上传文件模板文件.xlsx"
1010
)
1111

12-
// 文件相关公共变量
12+
// 公共变量
1313
var (
1414
SuccessLog = "log.log" //运行记录
1515
Split = "~" //默认分割符号
@@ -26,6 +26,8 @@ var (
2626
Denynametype = []string{"\\", "\\/", "*", "?", "\"", "<", ">", "|"} //windos下不允许创建名称的特殊符号。
2727
PrintLock sync.RWMutex //并发输出写入
2828
WebURl = "" //web扫描时临时后缀
29+
SaveIMG = true //web扫描时是否进行截图,本地需要有chrom浏览器
30+
SsaveIMGDIR = "WebScreenshot"
2931
)
3032

3133
// AppendToFile 创建追加写入函数

global/version.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package global
22

33
const (
4-
Version = "1.2.4" //当前版本号
5-
Releasenotes = "快速扫描更智能;Linux安全配置核查修改输出HTML报告;增加多种漏洞扫描" //版本说明
4+
Version = "1.2.5" //当前版本号
5+
Releasenotes = "快速扫描更智能;增加多种漏洞识别;WEB扫描增加保存截图功能" //版本说明
66
RepoUrl = "https://api.github.com/repos/selinuxg/Golin/releases/latest" //仓库最新版本
77
)

go.mod

+8-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ go 1.20
44

55
require (
66
github.com/PuerkitoBio/goquery v1.8.1
7+
github.com/chromedp/cdproto v0.0.0-20231011050154-1d073bb38998
8+
github.com/chromedp/chromedp v0.9.3
79
github.com/fatih/color v1.15.0
810
github.com/gin-gonic/gin v1.9.1
911
github.com/go-redis/redis/v8 v8.11.5
@@ -34,6 +36,7 @@ require (
3436
github.com/bytedance/sonic v1.9.1 // indirect
3537
github.com/cespare/xxhash/v2 v2.1.2 // indirect
3638
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
39+
github.com/chromedp/sysutil v1.0.0 // indirect
3740
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
3841
github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 // indirect
3942
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
@@ -42,6 +45,9 @@ require (
4245
github.com/go-playground/universal-translator v0.18.1 // indirect
4346
github.com/go-playground/validator/v10 v10.14.0 // indirect
4447
github.com/go-sql-driver/mysql v1.7.1 // indirect
48+
github.com/gobwas/httphead v0.1.0 // indirect
49+
github.com/gobwas/pool v0.2.1 // indirect
50+
github.com/gobwas/ws v1.3.0 // indirect
4551
github.com/goccy/go-json v0.10.2 // indirect
4652
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
4753
github.com/golang-sql/sqlexp v0.1.0 // indirect
@@ -55,10 +61,12 @@ require (
5561
github.com/jackc/pgx/v5 v5.3.0 // indirect
5662
github.com/jinzhu/inflection v1.0.0 // indirect
5763
github.com/jinzhu/now v1.1.5 // indirect
64+
github.com/josharian/intern v1.0.0 // indirect
5865
github.com/json-iterator/go v1.1.12 // indirect
5966
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
6067
github.com/leodido/go-urn v1.2.4 // indirect
6168
github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect
69+
github.com/mailru/easyjson v0.7.7 // indirect
6270
github.com/mattn/go-colorable v0.1.13 // indirect
6371
github.com/mattn/go-isatty v0.0.19 // indirect
6472
github.com/mattn/go-runewidth v0.0.9 // indirect
@@ -70,10 +78,8 @@ require (
7078
github.com/pkg/errors v0.8.1 // indirect
7179
github.com/richardlehane/mscfb v1.0.4 // indirect
7280
github.com/richardlehane/msoleps v1.0.3 // indirect
73-
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 // indirect
7481
github.com/smartystreets/goconvey v1.8.0 // indirect
7582
github.com/spf13/pflag v1.0.5 // indirect
76-
github.com/tomatome/win v0.3.1 // indirect
7783
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
7884
github.com/ugorji/go/codec v1.2.11 // indirect
7985
github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect

go.sum

+20-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
1616
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
1717
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
1818
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
19+
github.com/chromedp/cdproto v0.0.0-20231011050154-1d073bb38998 h1:2zipcnjfFdqAjOQa8otCCh0Lk1M7RBzciy3s80YAKHk=
20+
github.com/chromedp/cdproto v0.0.0-20231011050154-1d073bb38998/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs=
21+
github.com/chromedp/chromedp v0.9.3 h1:Wq58e0dZOdHsxaj9Owmfcf+ibtpYN1N0FWVbaxa/esg=
22+
github.com/chromedp/chromedp v0.9.3/go.mod h1:NipeUkUcuzIdFbBP8eNNvl9upcceOfWzoJn6cRe4ksA=
23+
github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic=
24+
github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww=
1925
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
2026
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
2127
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -49,6 +55,12 @@ github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq
4955
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
5056
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
5157
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
58+
github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU=
59+
github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM=
60+
github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og=
61+
github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
62+
github.com/gobwas/ws v1.3.0 h1:sbeU3Y4Qzlb+MOzIe6mQGf7QR4Hkv6ZD0qhGkBFL2O0=
63+
github.com/gobwas/ws v1.3.0/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY=
5264
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
5365
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
5466
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
@@ -97,6 +109,8 @@ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
97109
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
98110
github.com/jlaffaye/ftp v0.2.0 h1:lXNvW7cBu7R/68bknOX3MrRIIqZ61zELs1P2RAiA3lg=
99111
github.com/jlaffaye/ftp v0.2.0/go.mod h1:is2Ds5qkhceAPy2xD6RLI6hmp/qysSoymZ+Z2uTnspI=
112+
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
113+
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
100114
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
101115
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
102116
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
@@ -112,10 +126,14 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
112126
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
113127
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
114128
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
129+
github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80 h1:6Yzfa6GP0rIo/kULo2bwGEkFvCePZ3qHDDTC3/J9Swo=
130+
github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs=
115131
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
116132
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
117133
github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc=
118134
github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg=
135+
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
136+
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
119137
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
120138
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
121139
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
@@ -139,6 +157,8 @@ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N
139157
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
140158
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
141159
github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
160+
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde h1:x0TT0RDC7UhAVbbWWBzr41ElhJx5tXPWkIHA2HWPRuw=
161+
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
142162
github.com/parnurzeal/gorequest v0.2.16 h1:T/5x+/4BT+nj+3eSknXmCTnEVGSzFzPGdpqmUVVZXHQ=
143163
github.com/parnurzeal/gorequest v0.2.16/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
144164
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
@@ -158,8 +178,6 @@ github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYe
158178
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
159179
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
160180
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
161-
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 h1:udFKJ0aHUL60LboW/A+DfgoHVedieIzIXE8uylPue0U=
162-
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
163181
github.com/sijms/go-ora/v2 v2.7.6 h1:QyR1CKFxG+VVk2+LdHoHF4NxDSvcQ3deBXtZCrahSq4=
164182
github.com/sijms/go-ora/v2 v2.7.6/go.mod h1:EHxlY6x7y9HAsdfumurRfTd+v8NrEOTR3Xl4FWlH6xk=
165183
github.com/smartystreets/assertions v1.13.1 h1:Ef7KhSmjZcK6AVf9YbJdvPYG9avaF0ZxudX+ThRdWfU=
@@ -186,8 +204,6 @@ github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gt
186204
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
187205
github.com/tomatome/grdp v0.1.0 h1:MFX+l91/+RelL+RERqald+LwoGWfDubJvwfkmObE+NU=
188206
github.com/tomatome/grdp v0.1.0/go.mod h1:n6f5uALqoKqeTXdtrYFk14YBPelBHQEHagft+1j0oWc=
189-
github.com/tomatome/win v0.3.1 h1:jDUqhWwWNVAyr/hwzMWfgSIDXX9I4Opjy/XAlPAKh/Q=
190-
github.com/tomatome/win v0.3.1/go.mod h1:YY2OpEdJ5Z1gOya7w+W7Ziv/lRIiokxlQgj4i7QgbhY=
191207
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
192208
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
193209
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=

port/run.go

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package port
33
import (
44
"fmt"
55
"github.com/spf13/cobra"
6+
"golin/global"
67
"golin/port/crack"
78
"os"
89
"sync"
@@ -85,6 +86,9 @@ func ParseFlags(cmd *cobra.Command, args []string) {
8586

8687
random, _ = cmd.Flags().GetBool("random") //打乱顺序
8788

89+
imgsave, _ := cmd.Flags().GetBool("noimg") //保存网页截图
90+
global.SaveIMG = !imgsave
91+
8892
userfile, _ = cmd.Flags().GetString("userfile")
8993
passwdfile, _ = cmd.Flags().GetString("passwdfile")
9094
crack.Checkdistfile(userfile, passwdfile) //先读取是否有自定义的字典文件

0 commit comments

Comments
 (0)