Skip to content

Commit 27c1423

Browse files
committed
add afrog version check
1 parent 269b236 commit 27c1423

File tree

2 files changed

+33
-11
lines changed

2 files changed

+33
-11
lines changed

cmd/afrog/main.go

+11-7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"fmt"
5+
"github.com/zan8in/afrog/pkg/utils"
56
"os"
67

78
"github.com/urfave/cli/v2"
@@ -33,16 +34,15 @@ func main() {
3334
}
3435

3536
app.Action = func(c *cli.Context) error {
36-
37-
title := log.LogColor.Vulner(runner.ShowBanner() + " - V" + config.Version)
38-
3937
upgrade := upgrade.New()
4038
upgrade.UpgradeAfrogPocs()
4139

40+
showBanner(upgrade.LastestAfrogVersion)
41+
4242
defconfig := log.LogColor.Low("Default Conf " + options.Config.GetConfigPath())
4343
defpocdir := log.LogColor.Low("Default Pocs " + poc.GetPocPath())
4444

45-
fmt.Println(title + "\r\n" + defconfig + "\r\n" + defpocdir + " v" + upgrade.LastestVersion + "")
45+
fmt.Println(defconfig + "\r\n" + defpocdir + " v" + upgrade.LastestVersion + "")
4646

4747
htemplate.Filename = options.Output
4848
if err := htemplate.New(); err != nil {
@@ -85,8 +85,12 @@ func main() {
8585
}
8686
}
8787

88-
func PrintTraceInfo(result *core.Result) {
89-
for i, v := range result.AllPocResult {
90-
log.Log().Info(fmt.Sprintf("\r\n%s(%d)\r\n%s\r\n\r\n%s(%d)\r\n%s\r\n", "Request:", i, v.ReadFullResultRequestInfo(), "Response:", i, v.ReadFullResultResponseInfo()))
88+
func showBanner(afrogLatestversion string) {
89+
title := log.LogColor.Vulner(runner.ShowBanner() + " - V" + config.Version)
90+
old := ""
91+
if utils.Compare(afrogLatestversion, ">", config.Version) {
92+
old = log.LogColor.Critical(" (outdated)")
93+
old += log.LogColor.Title(" --> https://github.com/zan8in/afrog/releases/tag/v" + afrogLatestversion)
9194
}
95+
fmt.Println(title + old)
9296
}

pkg/upgrade/upgrade.go

+22-4
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,19 @@ import (
1515
)
1616

1717
type Upgrade struct {
18-
HomeDir string
19-
CurrVersion string
20-
RemoteVersion string
21-
LastestVersion string
18+
HomeDir string
19+
CurrVersion string
20+
RemoteVersion string
21+
LastestVersion string
22+
LastestAfrogVersion string
2223
}
2324

2425
const (
2526
upHost = "http://binbin.run/afrog-release"
2627
upPathName = "/afrog-pocs"
2728
upPath = "/afrog-pocs.zip"
2829
upRemoteVersion = "/version"
30+
afrogVersion = "/afrog.version"
2931
)
3032

3133
func New() *Upgrade {
@@ -53,9 +55,25 @@ func (u *Upgrade) CheckUpgrade() (bool, error) {
5355
u.CurrVersion = curVersion
5456
u.RemoteVersion = strings.TrimSpace(string(remoteVersion))
5557

58+
u.LastestAfrogVersion, _ = getAfrogVersion()
59+
5660
return utils.Compare(strings.TrimSpace(string(remoteVersion)), ">", curVersion), nil
5761
}
5862

63+
func getAfrogVersion() (string, error) {
64+
resp, err := http.Get(upHost + afrogVersion)
65+
if err != nil {
66+
return "", errors.New("failed to get remote version number")
67+
}
68+
defer resp.Body.Close()
69+
70+
afrogversion, err := ioutil.ReadAll(resp.Body)
71+
if err != nil {
72+
return "", errors.New("failed to get remote version number")
73+
}
74+
return strings.TrimSpace(string(afrogversion)), nil
75+
}
76+
5977
func (u *Upgrade) UpgradeAfrogPocs() {
6078
isUp, err := u.CheckUpgrade()
6179
if err != nil {

0 commit comments

Comments
 (0)