-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathohmybackup.go
129 lines (96 loc) · 3.01 KB
/
ohmybackup.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package main
import (
"bufio"
"flag"
"fmt"
"log"
"net/http"
"os"
"strconv"
)
// Randomized User Agent
var userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A470a Safari/9537.53"
// Path and Files
var pathF = "files"
var extensions = "extensions.txt"
var files = "files.txt"
var folders = "folders.txt"
var foundedFolders []string
func getStatusCode(url string) string {
resp, err := http.Get(url)
if err != nil {
log.Fatalln(err)
}
return strconv.Itoa(resp.StatusCode)
}
func scanFiles() {
for _, fndPTHS := range foundedFolders {
fmt.Println("\n************* Starting Scan Backups Files. / PATH : " + fndPTHS + " *************\n")
fileslist, err := os.Open(pathF + "/files.txt")
if err != nil {
log.Fatal(err)
}
defer fileslist.Close()
var lastCheck = ""
fileScan := bufio.NewScanner(fileslist)
for fileScan.Scan() {
extensionss, err := os.Open(pathF + "/extensions.txt")
if err != nil {
log.Fatal(err)
}
defer extensionss.Close()
scanner := bufio.NewScanner(extensionss)
for scanner.Scan() {
var urlE = fndPTHS + "/" + fileScan.Text() + scanner.Text()
lastCheck = getStatusCode(urlE)
var chckDrm = urlE + " | Response Code : " + lastCheck
if lastCheck == "200" || lastCheck == "301" || lastCheck == "302" || lastCheck == "304" || lastCheck == "307" || lastCheck == "403" {
fmt.Printf("\033[2K\r%s\n", "* Founded :"+chckDrm)
foundedFolders = append(foundedFolders, urlE)
} else {
fmt.Printf("\033[2K\r%s", "Checking : "+chckDrm)
}
}
}
fmt.Printf("\033[2K\r%s", "")
fmt.Println("\n************* Scan Ended. / PATH : " + fndPTHS + " *************\n")
}
}
func scanPath(filename string, hostname string) string {
file, err := os.Open(pathF + "/" + filename)
if err != nil {
log.Fatal(err)
}
defer file.Close()
var lastCheck = ""
scanner := bufio.NewScanner(file)
fmt.Println("\n************* Starting Scan Backups PATHS *************\n")
for scanner.Scan() {
var urlE = hostname + "/" + scanner.Text()
lastCheck = getStatusCode(urlE)
var chckDrm = "" + urlE + " | Response Code : " + lastCheck
if lastCheck == "200" || lastCheck == "301" || lastCheck == "302" || lastCheck == "304" || lastCheck == "307" || lastCheck == "403" {
fmt.Printf("\033[2K\r%s\n", "* Founded : "+chckDrm)
foundedFolders = append(foundedFolders, urlE)
} else {
fmt.Printf("\033[2K\r%s", "Checking : "+chckDrm)
}
}
fmt.Printf("\033[2K\r%s", "\nPath Scaning Ended.\n")
scanFiles()
return lastCheck
}
func main() {
hostname := flag.String("hostname", "", "Please input hostname")
flag.Parse()
fmt.Println(`
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||O |||h |||M |||y |||B |||a |||c |||k |||U |||p ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
Backup Directories & Backup Files Scanner.
Github : github.com/tismayil
Host : ` + *hostname + `
`)
scanPath(folders, *hostname)
}