├── .gitignore ├── go.mod ├── wordcloud.png ├── core ├── colors.go ├── results.go └── scanner.go ├── .github └── workflows │ └── release.yml ├── LICENSE ├── xml └── container.go ├── utils └── utils.go ├── goblob.go ├── wordlists ├── goblob-folder-names.micro.txt ├── goblob-folder-names.small.txt └── goblob-folder-names.txt └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | goblob 2 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/Macmod/goblob 2 | 3 | go 1.19 4 | 5 | -------------------------------------------------------------------------------- /wordcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macmod/goblob/HEAD/wordcloud.png -------------------------------------------------------------------------------- /core/colors.go: -------------------------------------------------------------------------------- 1 | package core 2 | 3 | const ( 4 | Reset = "\033[0m" 5 | Red = "\033[31m" 6 | Green = "\033[32m" 7 | ) 8 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | # .github/workflows/release.yaml 2 | 3 | on: 4 | release: 5 | types: [created] 6 | 7 | jobs: 8 | releases-matrix: 9 | name: Release Go Binary 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | goos: [linux, windows, darwin] 14 | goarch: ["386", amd64, arm64] 15 | exclude: 16 | - goarch: "386" 17 | goos: darwin 18 | - goarch: arm64 19 | goos: windows 20 | steps: 21 | - uses: actions/checkout@v3 22 | - uses: wangyoucao577/go-release-action@v1 23 | with: 24 | github_token: ${{ secrets.GITHUB_TOKEN }} 25 | goos: ${{ matrix.goos }} 26 | goarch: ${{ matrix.goarch }} 27 | extra_files: LICENSE README.md 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2023 Artur Henrique Marzano Gonzaga 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /xml/container.go: -------------------------------------------------------------------------------- 1 | package xml 2 | 3 | import ( 4 | "encoding/xml" 5 | "fmt" 6 | "strings" 7 | ) 8 | 9 | type Properties struct { 10 | LastModified string `xml:"Last-Modified"` 11 | Etag string `xml:"Etag"` 12 | ContentLength int64 `xml:"Content-Length"` 13 | ContentType string `xml:"Content-Type"` 14 | ContentEncoding string `xml:"Content-Encoding"` 15 | ContentLanguage string `xml:"Content-Language"` 16 | ContentMD5 string `xml:"Content-MD5"` 17 | CacheControl string `xml:"Cache-Control"` 18 | BlobType string `xml:"BlobType"` 19 | LeaseStatus string `xml:"LeaseStatus"` 20 | } 21 | 22 | type Blob struct { 23 | Name string `xml:"Name"` 24 | Url string `xml:"Url"` 25 | Properties Properties `xml:"Properties"` 26 | } 27 | 28 | type Blobs struct { 29 | Blob []Blob `xml:"Blob"` 30 | } 31 | 32 | type EnumerationResults struct { 33 | ServiceEndpoint string `xml:"ServiceEndpoint,attr"` 34 | ContainerName string `xml:"ContainerName,attr"` 35 | Blobs Blobs `xml:"Blobs"` 36 | NextMarker string `xml:"NextMarker"` 37 | } 38 | 39 | func (e *EnumerationResults) LoadXML(xmlData []byte) error { 40 | err := xml.Unmarshal(xmlData, e) 41 | return err 42 | } 43 | 44 | func (e *EnumerationResults) BlobURLs() []string { 45 | var urls []string 46 | var blobUrl string 47 | 48 | for _, blob := range e.Blobs.Blob { 49 | // The logic here is that if no URL can be identified, 50 | // then it will append an empty blob URL to the list 51 | // to let the user know that a blob was found 52 | // but no URL could be extracted 53 | if blob.Url != "" { 54 | blobUrl = blob.Url 55 | } else if blob.Name != "" { 56 | if strings.HasPrefix(e.ContainerName, "https://") { 57 | blobUrl = fmt.Sprintf("%s/%s", e.ContainerName, blob.Name) 58 | } else if strings.HasPrefix(e.ServiceEndpoint, "https://") { 59 | blobUrl = fmt.Sprintf("%s/%s/%s", e.ServiceEndpoint, e.ContainerName, blob.Name) 60 | } else { 61 | blobUrl = "" 62 | } 63 | } else { 64 | blobUrl = "" 65 | } 66 | 67 | urls = append(urls, blobUrl) 68 | } 69 | 70 | return urls 71 | } 72 | 73 | func (e *EnumerationResults) TotalContentLength() int64 { 74 | var contentLength int64 = 0 75 | 76 | for _, blob := range e.Blobs.Blob { 77 | contentLength += blob.Properties.ContentLength 78 | } 79 | 80 | return contentLength 81 | } 82 | -------------------------------------------------------------------------------- /core/results.go: -------------------------------------------------------------------------------- 1 | package core 2 | 3 | import ( 4 | "bufio" 5 | "fmt" 6 | "github.com/Macmod/goblob/utils" 7 | "sort" 8 | "sync" 9 | ) 10 | 11 | type ResultsMap struct { 12 | results map[string]ContainerStats 13 | mutex sync.Mutex 14 | } 15 | 16 | type AccountResult struct { 17 | name string 18 | stats ContainerStats 19 | } 20 | 21 | type ContainerStats struct { 22 | containerNames map[string]struct{} 23 | numFiles int 24 | contentLength int64 25 | } 26 | 27 | func (rm *ResultsMap) Init() { 28 | rm.results = make(map[string]ContainerStats) 29 | } 30 | 31 | func (rm *ResultsMap) StoreContainerResults( 32 | account string, 33 | containerName string, 34 | numFiles int, 35 | contentLength int64, 36 | ) { 37 | rm.mutex.Lock() 38 | 39 | if entity, ok := rm.results[account]; ok { 40 | entity.containerNames[containerName] = utils.Empty 41 | entity.numFiles += numFiles 42 | entity.contentLength += contentLength 43 | 44 | rm.results[account] = entity 45 | } else { 46 | rm.results[account] = ContainerStats{ 47 | map[string]struct{}{containerName: utils.Empty}, 48 | numFiles, 49 | contentLength, 50 | } 51 | } 52 | 53 | rm.mutex.Unlock() 54 | } 55 | 56 | func (rm *ResultsMap) PrintResults() { 57 | rm.mutex.Lock() 58 | 59 | fmt.Printf("[+] Results:\n") 60 | if len(rm.results) != 0 { 61 | var numFiles int = 0 62 | var numContainers int = 0 63 | 64 | entries := make([]AccountResult, 0, len(rm.results)) 65 | for accountName, containerStats := range rm.results { 66 | entries = append(entries, AccountResult{accountName, containerStats}) 67 | } 68 | 69 | sort.Slice(entries, func(i, j int) bool { 70 | return entries[i].stats.numFiles > entries[j].stats.numFiles 71 | }) 72 | 73 | for _, entry := range entries { 74 | fmt.Printf( 75 | "%s[+] %s - %d files in %d containers (%s)%s\n", 76 | Green, entry.name, 77 | entry.stats.numFiles, 78 | len(entry.stats.containerNames), 79 | utils.FormatSize(int64(entry.stats.contentLength)), 80 | Reset, 81 | ) 82 | 83 | numContainers += len(entry.stats.containerNames) 84 | numFiles += entry.stats.numFiles 85 | } 86 | 87 | fmt.Printf( 88 | "%s[+] Found a total of %d files across %d account(s) and %d containers%s\n", 89 | Green, numFiles, numContainers, len(rm.results), Reset, 90 | ) 91 | } else { 92 | fmt.Printf("%s[-] No files found.%s\n", Red, Reset) 93 | } 94 | 95 | rm.mutex.Unlock() 96 | } 97 | 98 | func ReportResults(writer *bufio.Writer, msgChannel chan Message) { 99 | for msg := range msgChannel { 100 | if msg.textToStdout != "" { 101 | fmt.Printf(msg.textToStdout) 102 | } 103 | 104 | if msg.textToFile != "" { 105 | if writer != nil { 106 | writer.WriteString(msg.textToFile + "\n") 107 | writer.Flush() 108 | } 109 | } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /utils/utils.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "bufio" 5 | "fmt" 6 | "math" 7 | "os" 8 | "regexp" 9 | "strings" 10 | ) 11 | 12 | const ( 13 | ACCOUNT_PATTERN = "^[a-z0-9]*$" 14 | CONTAINER_PATTERN = "^[a-zA-Z][a-zA-Z0-9-]*$" 15 | BLOB_URL_PATTERN = "([^<]+)" 16 | ) 17 | 18 | var Empty struct{} 19 | 20 | var REGEXP_BLOB_URL = regexp.MustCompile(BLOB_URL_PATTERN) 21 | var REGEXP_CONTAINER = regexp.MustCompile(CONTAINER_PATTERN) 22 | var REGEXP_ACCOUNT = regexp.MustCompile(ACCOUNT_PATTERN) 23 | 24 | func IsValidContainerName(name string) bool { 25 | if len(name) < 3 || len(name) > 63 { 26 | return false 27 | } 28 | 29 | match := REGEXP_CONTAINER.MatchString(name) 30 | 31 | return match 32 | } 33 | 34 | func IsValidStorageAccountName(name string) bool { 35 | if len(name) < 3 || len(name) > 24 { 36 | return false 37 | } 38 | 39 | match := REGEXP_ACCOUNT.MatchString(name) 40 | 41 | return match 42 | } 43 | 44 | func FilterValidAccounts( 45 | accounts []string, 46 | filteredAccounts *[]string, 47 | verbose bool, 48 | ) int { 49 | removedAccounts := 0 50 | 51 | for idx, account := range accounts { 52 | account = strings.Replace(strings.ToLower(account), ".blob.core.windows.net", "", -1) 53 | if IsValidStorageAccountName(account) { 54 | *filteredAccounts = append(*filteredAccounts, account) 55 | } else { 56 | if verbose { 57 | fmt.Printf("[~][%d] Skipping invalid storage account name '%s'\n", idx, account) 58 | } 59 | removedAccounts += 1 60 | } 61 | } 62 | 63 | return removedAccounts 64 | } 65 | 66 | func FilterValidContainers( 67 | containers []string, 68 | filteredContainers *[]string, 69 | verbose bool, 70 | ) int { 71 | removedContainers := 0 72 | 73 | for idx, containerName := range containers { 74 | containerName = strings.ToLower(containerName) 75 | if IsValidContainerName(containerName) { 76 | *filteredContainers = append(*filteredContainers, containerName) 77 | } else { 78 | if verbose { 79 | fmt.Printf("[~][%d] Skipping invalid storage account name '%s'\n", idx, containerName) 80 | } 81 | removedContainers += 1 82 | } 83 | } 84 | 85 | return removedContainers 86 | } 87 | 88 | func ReadLines(filename string) []string { 89 | var results []string 90 | 91 | fileObj, err := os.Open(filename) 92 | if err != nil { 93 | fmt.Println(err) 94 | os.Exit(1) 95 | } 96 | defer fileObj.Close() 97 | 98 | scanner := bufio.NewScanner(fileObj) 99 | 100 | if err := scanner.Err(); err != nil { 101 | fmt.Println(err) 102 | } 103 | 104 | for scanner.Scan() { 105 | results = append(results, scanner.Text()) 106 | } 107 | 108 | return results 109 | } 110 | 111 | func FormatSize(inputSize int64) string { 112 | var size float64 = float64(inputSize) 113 | var base float64 = 1024.0 114 | var idx int 115 | 116 | units := []string{"B", "KB", "MB", "GB", "TB", "PB"} 117 | if size == 0 { 118 | return "0 B" 119 | } 120 | 121 | idx = int(math.Floor(math.Log(size) / math.Log(base))) 122 | if idx >= len(units) { 123 | idx = len(units) - 1 124 | } 125 | 126 | unit := units[idx] 127 | return fmt.Sprintf("%.1f %s", size/math.Pow(base, float64(idx)), unit) 128 | } 129 | -------------------------------------------------------------------------------- /goblob.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "crypto/tls" 6 | "flag" 7 | "fmt" 8 | "net/http" 9 | "os" 10 | "os/signal" 11 | "syscall" 12 | "time" 13 | 14 | "github.com/Macmod/goblob/core" 15 | "github.com/Macmod/goblob/utils" 16 | ) 17 | 18 | func main() { 19 | const BANNER = ` 20 | 888 888 888 21 | 888 888 888 22 | 888 888 888 23 | .d88b. .d88b. 88888b. 888 .d88b. 88888b. 24 | d88P"88b d88""88b 888 "88b 888 d88""88b 888 "88b 25 | 888 888 888 888 888 888 888 888 888 888 888 26 | Y88b 888 Y88..88P 888 d88P 888 Y88..88P 888 d88P 27 | "Y88888 "Y88P" 88888P" 888 "Y88P" 88888P" 28 | 888 29 | Y8b d88P 30 | "Y88P" 31 | ` 32 | 33 | accountsFilename := flag.String( 34 | "accounts", "", "File with target Azure storage account names to check", 35 | ) 36 | containersFilename := flag.String( 37 | "containers", "wordlists/goblob-folder-names.txt", 38 | "Wordlist file with possible container names for Azure blob storage", 39 | ) 40 | maxGoroutines := flag.Int( 41 | "goroutines", 500, 42 | "Maximum of concurrent goroutines", 43 | ) 44 | output := flag.String( 45 | "output", "", 46 | "Save found URLs to output file", 47 | ) 48 | verbose := flag.Int("verbose", 1, "Verbosity level (default=1") 49 | blobs := flag.Bool( 50 | "blobs", false, 51 | "Show each blob URL in the results instead of their container URLs", 52 | ) 53 | invertSearch := flag.Bool( 54 | "invertsearch", false, 55 | "Enumerate accounts for each container instead of containers for each account", 56 | ) 57 | maxpages := flag.Int( 58 | "maxpages", 20, 59 | "Maximum of container pages to traverse looking for blobs", 60 | ) 61 | timeout := flag.Int( 62 | "timeout", 90, 63 | "Timeout for HTTP requests (seconds)", 64 | ) 65 | maxIdleConns := flag.Int( 66 | "maxidleconns", 100, 67 | "Maximum of idle connections", 68 | ) 69 | maxIdleConnsPerHost := flag.Int( 70 | "maxidleconnsperhost", 10, 71 | "Maximum of idle connections per host", 72 | ) 73 | maxConnsPerHost := flag.Int( 74 | "maxconnsperhost", 0, 75 | "Maximum of connections per host", 76 | ) 77 | skipSSL := flag.Bool("skipssl", false, "Skip SSL verification") 78 | 79 | flag.Parse() 80 | 81 | if *verbose > 0 { 82 | fmt.Println(BANNER) 83 | } 84 | 85 | // Import input from files 86 | var accounts []string 87 | if *accountsFilename != "" { 88 | accounts = utils.ReadLines(*accountsFilename) 89 | } else if flag.NArg() > 0 { 90 | accounts = []string{flag.Arg(0)} 91 | } 92 | 93 | var containers []string = utils.ReadLines(*containersFilename) 94 | 95 | // Results report 96 | resultsMap := new(core.ResultsMap) 97 | resultsMap.Init() 98 | 99 | if *verbose > 0 { 100 | sigChannel := make(chan os.Signal, 1) 101 | signal.Notify(sigChannel, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGHUP) 102 | 103 | go func() { 104 | sig := <-sigChannel 105 | fmt.Printf( 106 | "%s[-] Signal detected (%s). Printing partial results...%s\n", 107 | core.Red, 108 | sig, 109 | core.Reset, 110 | ) 111 | 112 | resultsMap.PrintResults() 113 | os.Exit(1) 114 | }() 115 | 116 | defer resultsMap.PrintResults() 117 | } 118 | 119 | // Setting up output file writer 120 | var writer *bufio.Writer 121 | if *output != "" { 122 | output_file, _ := os.OpenFile(*output, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644) 123 | defer output_file.Close() 124 | 125 | writer = bufio.NewWriter(output_file) 126 | } else { 127 | writer = nil 128 | } 129 | 130 | // Dedicated goroutine for writing results 131 | outputChannel := make(chan core.Message) 132 | go core.ReportResults(writer, outputChannel) 133 | 134 | // HTTP client parameters 135 | var transport = http.Transport{ 136 | DisableKeepAlives: false, 137 | DisableCompression: true, 138 | MaxIdleConns: *maxIdleConns, 139 | MaxIdleConnsPerHost: *maxIdleConnsPerHost, 140 | MaxConnsPerHost: *maxConnsPerHost, 141 | } 142 | 143 | if *skipSSL { 144 | transport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true} 145 | } 146 | 147 | var httpClient = &http.Client{ 148 | Timeout: time.Second * time.Duration(*timeout), 149 | Transport: &transport, 150 | } 151 | 152 | // Container scanner object 153 | var containerScanner = new(core.ContainerScanner) 154 | containerScanner.Init( 155 | httpClient, 156 | *maxGoroutines, 157 | outputChannel, 158 | resultsMap, 159 | *blobs, 160 | *verbose, 161 | *maxpages, 162 | *invertSearch, 163 | ) 164 | defer containerScanner.Done() 165 | 166 | var filteredContainers []string 167 | utils.FilterValidContainers(containers, &filteredContainers, *verbose > 1) 168 | 169 | if flag.NArg() == 0 && *accountsFilename == "" { 170 | if !*invertSearch { 171 | scanner := bufio.NewScanner(os.Stdin) 172 | 173 | for scanner.Scan() { 174 | account := scanner.Text() 175 | accounts = []string{account} 176 | if utils.IsValidStorageAccountName(account) { 177 | containerScanner.ScanList(accounts, filteredContainers) 178 | } 179 | } 180 | } else { 181 | fmt.Printf( 182 | "%s[-] The 'invertsearch' flag cannot be used with an input accounts file.%s\n", 183 | core.Red, 184 | core.Reset, 185 | ) 186 | } 187 | } else { 188 | var filteredAccounts []string 189 | utils.FilterValidAccounts(accounts, &filteredAccounts, *verbose > 1) 190 | 191 | containerScanner.ScanList(filteredAccounts, filteredContainers) 192 | } 193 | } 194 | -------------------------------------------------------------------------------- /wordlists/goblob-folder-names.micro.txt: -------------------------------------------------------------------------------- 1 | aaa 2 | abc 3 | academy 4 | acc 5 | addons 6 | ads 7 | adv 8 | alerts 9 | all 10 | alpha 11 | amazon 12 | ambient 13 | ana 14 | analysis 15 | analytics 16 | android 17 | announcements 18 | api 19 | app 20 | appdata 21 | applications 22 | apps 23 | archive 24 | archives 25 | ark 26 | arquivos 27 | art 28 | articles 29 | artifacts 30 | asset 31 | assets 32 | atlas 33 | attachments 34 | auctions 35 | audio 36 | audios 37 | avatar 38 | avatars 39 | azure 40 | b2b 41 | backgrounds 42 | backup 43 | backups 44 | badges 45 | banner 46 | banners 47 | bar 48 | beta 49 | bilder 50 | bill 51 | bin 52 | biztalk 53 | blobs 54 | blog 55 | blue 56 | blues 57 | boo 58 | books 59 | bootstrap 60 | brand 61 | branding 62 | brasil 63 | brochure 64 | bucket 65 | budget 66 | builds 67 | bulletin 68 | business 69 | cache 70 | calendars 71 | california 72 | campaign 73 | campaigns 74 | canvas 75 | cards 76 | careers 77 | cart 78 | catalog 79 | cdn 80 | certificates 81 | challenges 82 | chat 83 | classes 84 | client 85 | clients 86 | cloud 87 | club 88 | cms 89 | code 90 | coffee 91 | collections 92 | commercial 93 | common 94 | communications 95 | community 96 | companies 97 | company 98 | components 99 | conferences 100 | config 101 | console 102 | consulting 103 | container 104 | content 105 | contents 106 | contract 107 | controls 108 | core 109 | corporate 110 | courses 111 | covers 112 | crm 113 | css 114 | custom 115 | customer 116 | customers 117 | dam 118 | dash 119 | dashboard 120 | data 121 | datasets 122 | datastore 123 | deals 124 | debug 125 | default 126 | delivery 127 | demo 128 | demo2 129 | demos 130 | deploy 131 | desktop 132 | dev 133 | develop 134 | development 135 | digital 136 | directory 137 | dist 138 | doc 139 | docs 140 | document 141 | documentation 142 | documentos 143 | documents 144 | download 145 | downloads 146 | ebay 147 | editor 148 | edu 149 | education 150 | elearning 151 | ellen 152 | email 153 | emails 154 | embed 155 | endo 156 | engineering 157 | enterprise 158 | env 159 | episodes 160 | error 161 | errors 162 | eshop 163 | events 164 | examples 165 | experts 166 | export 167 | extension 168 | extensions 169 | external 170 | extra 171 | eye 172 | falcon 173 | features 174 | files 175 | filestore 176 | florida 177 | flower 178 | folder 179 | fonts 180 | forms 181 | galleries 182 | gallery 183 | games 184 | gateway 185 | gen 186 | general 187 | generic 188 | ghost 189 | gifts 190 | global 191 | graphics 192 | growth 193 | guides 194 | header 195 | health 196 | help 197 | home 198 | homepage 199 | homologacao 200 | hosting 201 | html 202 | html5 203 | hub 204 | icons 205 | illinois 206 | image 207 | imagenes 208 | imagens 209 | images 210 | images1 211 | images2 212 | img 213 | imgs 214 | import 215 | inbound 216 | infographics 217 | ingest 218 | input 219 | insider 220 | install 221 | installer 222 | insurance 223 | int 224 | integration 225 | intranet 226 | invoices 227 | ios 228 | items 229 | japan 230 | java 231 | javascript 232 | jobs 233 | lab 234 | labo 235 | landing 236 | launch 237 | layouts 238 | learning 239 | legacy 240 | legal 241 | libraries 242 | library 243 | libs 244 | link 245 | links 246 | list 247 | lite 248 | live 249 | local 250 | log 251 | login 252 | logo 253 | logos 254 | logs 255 | loop 256 | loops 257 | louisiana 258 | magazine 259 | mail 260 | main 261 | maintenance 262 | management 263 | manager 264 | manual 265 | manuals 266 | map 267 | mapas 268 | maps 269 | mark 270 | market 271 | marketing 272 | marketplace 273 | mars 274 | masaki 275 | master 276 | material 277 | materials 278 | max 279 | media 280 | mediafiles 281 | medias 282 | medical 283 | meetings 284 | mercury 285 | meta 286 | mexico 287 | migration 288 | misc 289 | miscellaneous 290 | mobile 291 | models 292 | modules 293 | moto 294 | movies 295 | music 296 | mvp 297 | name 298 | net 299 | netherlands 300 | network 301 | new 302 | news 303 | newsletter 304 | newsletters 305 | notifications 306 | now 307 | office 308 | old 309 | ondemand 310 | online 311 | orders 312 | oregon 313 | original 314 | other 315 | output 316 | packages 317 | page 318 | pages 319 | partner 320 | partners 321 | pdf 322 | pdfs 323 | people 324 | photo 325 | photography 326 | photos 327 | pics 328 | pictures 329 | pipeline 330 | plugins 331 | plus 332 | podcast 333 | podcasts 334 | policies 335 | pop 336 | portal 337 | portals 338 | portfolio 339 | poster 340 | preprod 341 | presentation 342 | presentations 343 | press 344 | preview 345 | private 346 | pro 347 | processed 348 | product 349 | production 350 | products 351 | profile 352 | profiles 353 | projects 354 | promo 355 | promos 356 | promotion 357 | properties 358 | proposals 359 | pub 360 | public 361 | publico 362 | published 363 | pulse 364 | quality 365 | questions 366 | rain 367 | receipts 368 | recipes 369 | recordings 370 | red 371 | registration 372 | release 373 | releases 374 | repo 375 | report 376 | reports 377 | repository 378 | res 379 | research 380 | resized 381 | resources 382 | results 383 | robot 384 | roku 385 | root 386 | rules 387 | run 388 | russell 389 | sales 390 | salvador 391 | sample 392 | samples 393 | sandbox 394 | schools 395 | screenshots 396 | script 397 | scripts 398 | sds 399 | secure 400 | security 401 | seo 402 | service 403 | services 404 | settings 405 | setup 406 | share 407 | shared 408 | shop 409 | show 410 | shows 411 | signature 412 | site 413 | site360 414 | sitefinity 415 | sitemap 416 | sitemaps 417 | sites 418 | skin 419 | sms 420 | snapshots 421 | social 422 | software 423 | sounds 424 | source 425 | spark 426 | sponsors 427 | spotify 428 | ssl 429 | stage 430 | staging 431 | staticcontent 432 | staticfiles 433 | stickers 434 | storage 435 | store 436 | stories 437 | stream 438 | streams 439 | styles 440 | stylesheets 441 | success 442 | support 443 | survey 444 | tanaka 445 | temp 446 | template 447 | templates 448 | temporal 449 | terms 450 | test 451 | test1 452 | test2 453 | test5 454 | teste 455 | testimonials 456 | testing 457 | tests 458 | theme 459 | themes 460 | thumb 461 | thumbnail 462 | thumbnails 463 | thumbs 464 | tickets 465 | tiles 466 | tips 467 | tmp 468 | tms 469 | tools 470 | trailers 471 | training 472 | trainingvideos 473 | transfer 474 | trash 475 | trends 476 | tutorial 477 | tutorials 478 | uat 479 | update 480 | updates 481 | upload 482 | uploaded 483 | uploads 484 | user 485 | userdata 486 | userfiles 487 | userimages 488 | users 489 | vehicles 490 | video 491 | videos 492 | virtual 493 | vitrines 494 | wallpapers 495 | web 496 | web2 497 | webapp 498 | webimages 499 | webinars 500 | webresources 501 | webs 502 | website 503 | websites 504 | whitepapers 505 | widget 506 | widgets 507 | wiki 508 | win 509 | windows 510 | winners 511 | woocommerce 512 | wordpress 513 | workshop 514 | www 515 | zen 516 | zips 517 | -------------------------------------------------------------------------------- /core/scanner.go: -------------------------------------------------------------------------------- 1 | package core 2 | 3 | import ( 4 | "fmt" 5 | "io" 6 | "net/http" 7 | "sync" 8 | 9 | "github.com/Macmod/goblob/xml" 10 | ) 11 | 12 | type Message struct { 13 | textToStdout string 14 | textToFile string 15 | } 16 | 17 | type ContainerScanner struct { 18 | httpClient *http.Client 19 | wg *sync.WaitGroup 20 | semaphore chan struct{} 21 | outputChannel chan Message 22 | resultsMap *ResultsMap 23 | blobsOnly bool 24 | verboseMode int 25 | maxPages int 26 | invertSearch bool 27 | } 28 | 29 | func (cs *ContainerScanner) Init( 30 | httpClient *http.Client, 31 | maxGoroutines int, 32 | outputChannel chan Message, 33 | resultsMap *ResultsMap, 34 | blobsOnly bool, 35 | verboseMode int, 36 | maxPages int, 37 | invertSearch bool, 38 | ) { 39 | cs.httpClient = httpClient 40 | cs.outputChannel = outputChannel 41 | cs.resultsMap = resultsMap 42 | cs.blobsOnly = blobsOnly 43 | cs.verboseMode = verboseMode 44 | cs.maxPages = maxPages 45 | 46 | cs.invertSearch = invertSearch 47 | cs.semaphore = make(chan struct{}, maxGoroutines) 48 | cs.wg = new(sync.WaitGroup) 49 | } 50 | 51 | func (cs *ContainerScanner) Done() { 52 | cs.wg.Wait() 53 | close(cs.outputChannel) 54 | } 55 | 56 | func (cs *ContainerScanner) ScanContainer(account string, containerName string, done chan struct{}) { 57 | defer func() { 58 | <-cs.semaphore 59 | cs.wg.Done() 60 | done <- struct{}{} 61 | }() 62 | 63 | containerURL := fmt.Sprintf( 64 | "https://%s.blob.core.windows.net/%s?restype=container", 65 | account, 66 | containerName, 67 | ) 68 | 69 | checkResp, err := cs.httpClient.Get(containerURL) 70 | if err != nil { 71 | if cs.verboseMode > 1 { 72 | fmt.Printf("%s[-] Error while fetching URL: '%s'%s\n", Red, err, Reset) 73 | } 74 | } else { 75 | io.Copy(io.Discard, checkResp.Body) 76 | checkResp.Body.Close() 77 | 78 | checkStatusCode := checkResp.StatusCode 79 | if checkStatusCode < 400 { 80 | cs.resultsMap.StoreContainerResults( 81 | account, 82 | containerName, 83 | 0, 0, 84 | ) 85 | 86 | if !cs.blobsOnly { 87 | cs.outputChannel <- Message{ 88 | fmt.Sprintf("%s[+][C=%d] %s%s\n", Green, checkStatusCode, containerURL, Reset), 89 | containerURL, 90 | } 91 | } 92 | 93 | markerCode := "FirstPage" 94 | page := 1 95 | for markerCode != "" && (cs.maxPages == -1 || page <= cs.maxPages) { 96 | if cs.verboseMode > 0 { 97 | fmt.Printf( 98 | "[~] Analyzing container '%s' in account '%s' (page %d)\n", 99 | containerName, 100 | account, 101 | page, 102 | ) 103 | } 104 | 105 | var containerURLWithMarker string 106 | if page == 1 { 107 | containerURLWithMarker = fmt.Sprintf("%s&comp=list&showonly=files", containerURL) 108 | } else { 109 | containerURLWithMarker = fmt.Sprintf("%s&comp=list&showonly=files&marker=%s", containerURL, markerCode) 110 | } 111 | 112 | resp, err := cs.httpClient.Get(containerURLWithMarker) 113 | if err != nil { 114 | if cs.verboseMode > 1 { 115 | fmt.Printf("%s[-] Error while fetching URL: '%s'%s\n", Red, err, Reset) 116 | } 117 | } else { 118 | statusCode := resp.StatusCode 119 | defer resp.Body.Close() 120 | 121 | var preallocBufferSize int64 122 | if resp.ContentLength >= 0 { 123 | preallocBufferSize = resp.ContentLength 124 | } else { 125 | preallocBufferSize = 128 126 | } 127 | 128 | var resBuf = make([]byte, preallocBufferSize) 129 | resBuf, err = io.ReadAll(resp.Body) 130 | 131 | if err != nil { 132 | if cs.verboseMode > 1 { 133 | fmt.Printf("%s[-] Error while reading response body: '%s'%s\n", Red, err, Reset) 134 | } 135 | break 136 | } 137 | 138 | if statusCode < 400 { 139 | resultsPage := new(xml.EnumerationResults) 140 | err := resultsPage.LoadXML(resBuf) 141 | if err != nil { 142 | fmt.Printf("%s[-] Error reading XML data: '%s'%s\n", Red, err, Reset) 143 | } 144 | resBuf = nil 145 | 146 | blobURLs := resultsPage.BlobURLs() 147 | cs.resultsMap.StoreContainerResults( 148 | account, 149 | containerName, 150 | len(blobURLs), 151 | resultsPage.TotalContentLength(), 152 | ) 153 | 154 | if cs.blobsOnly { 155 | for _, blobURL := range blobURLs { 156 | cs.outputChannel <- Message{ 157 | fmt.Sprintf("%s[+] %s%s\n", Green, blobURL, Reset), 158 | blobURL, 159 | } 160 | } 161 | } 162 | 163 | markerCode = resultsPage.NextMarker 164 | } else { 165 | resBuf = nil 166 | if cs.verboseMode > 1 { 167 | fmt.Printf( 168 | "%s[-] Error while accessing %s: '%s'%s\n", 169 | Red, containerURLWithMarker, err, Reset, 170 | ) 171 | } 172 | break 173 | } 174 | } 175 | 176 | page += 1 177 | } 178 | } else { 179 | if cs.verboseMode > 2 { 180 | fmt.Printf("%s[+][C=%d] %s%s\n", Red, checkStatusCode, containerURL, Reset) 181 | } 182 | } 183 | } 184 | } 185 | 186 | func (cs *ContainerScanner) runDirectScan(accounts []string, containerNames []string) { 187 | nContainers := len(containerNames) 188 | nAccounts := len(accounts) 189 | doneChan := make(chan struct{}) 190 | 191 | for idx, account := range accounts { 192 | if cs.verboseMode > 0 { 193 | fmt.Printf( 194 | "[~][%d/%d] Searching %d containers in account '%s'\n", 195 | idx+1, nAccounts, 196 | nContainers, 197 | account, 198 | ) 199 | } 200 | 201 | go func(idx int, account string) { 202 | for i := 0; i < nContainers; i++ { 203 | <-doneChan 204 | } 205 | 206 | fmt.Printf("[~][%d/%d] Finished searching account '%s'\n", idx+1, nAccounts, account) 207 | }(idx, account) 208 | 209 | for _, containerName := range containerNames { 210 | cs.wg.Add(1) 211 | cs.semaphore <- struct{}{} 212 | 213 | go cs.ScanContainer(account, containerName, doneChan) 214 | } 215 | } 216 | } 217 | 218 | func (cs *ContainerScanner) runInverseScan(accounts []string, containerNames []string) { 219 | nContainers := len(containerNames) 220 | nAccounts := len(accounts) 221 | doneChan := make(chan struct{}) 222 | 223 | for idx, containerName := range containerNames { 224 | if cs.verboseMode > 0 { 225 | fmt.Printf( 226 | "[~][%d/%d] Searching %d accounts for containers named '%s' \n", 227 | idx+1, nContainers, 228 | nAccounts, 229 | containerName, 230 | ) 231 | } 232 | 233 | go func(idx int, containerName string) { 234 | for i := 0; i < nAccounts; i++ { 235 | <-doneChan 236 | } 237 | 238 | fmt.Printf("[~][%d/%d] Finished searching containers named '%s'\n", idx+1, nContainers, containerName) 239 | }(idx, containerName) 240 | 241 | for _, account := range accounts { 242 | cs.wg.Add(1) 243 | cs.semaphore <- struct{}{} 244 | 245 | go cs.ScanContainer(account, containerName, doneChan) 246 | } 247 | } 248 | } 249 | 250 | func (cs *ContainerScanner) ScanList(accounts []string, containerNames []string) { 251 | if !cs.invertSearch { 252 | cs.runDirectScan(accounts, containerNames) 253 | } else { 254 | cs.runInverseScan(accounts, containerNames) 255 | } 256 | } 257 | 258 | func (cs *ContainerScanner) ScanInput(accounts []string, containerNames []string) { 259 | if !cs.invertSearch { 260 | cs.runDirectScan(accounts, containerNames) 261 | } else { 262 | cs.runInverseScan(accounts, containerNames) 263 | } 264 | } 265 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Goblob 🫐 2 | 3 | ![](https://img.shields.io/github/go-mod/go-version/Macmod/goblob) ![](https://img.shields.io/github/languages/code-size/Macmod/goblob) ![](https://img.shields.io/github/license/Macmod/goblob) ![](https://img.shields.io/github/actions/workflow/status/Macmod/goblob/release.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/Macmod/goblob)](https://goreportcard.com/report/github.com/Macmod/goblob) 4 | 5 | Goblob is a lightweight and fast enumeration tool designed to aid in the discovery of sensitive information exposed publicy in Azure blobs, which can be useful for various research purposes such as vulnerability assessments, penetration testing, and reconnaissance. 6 | 7 | *Warning*. Goblob will issue individual goroutines for each container name to check in each storage account, only limited by the maximum number of concurrent goroutines specified in the `-goroutines` flag. This implementation can exhaust bandwidth pretty quickly in most cases with the default wordlist, or potentially cost you a lot of money if you're using the tool in a cloud environment. Make sure you understand what you are doing before running the tool. 8 | 9 | # Installation 10 | `go install github.com/Macmod/goblob@latest` 11 | 12 | # Usage 13 | 14 | To use goblob simply run the following command: 15 | 16 | ```bash 17 | $ ./goblob 18 | ``` 19 | 20 | Where `` is the target storage account to enumerate public Azure blob storage URLs on. 21 | 22 | You can also specify a list of storage account names to check: 23 | ```bash 24 | $ ./goblob -accounts accounts.txt 25 | ``` 26 | 27 | By default, the tool will use a list of common Azure Blob Storage container names to construct potential URLs. However, you can also specify a custom list of container names using the `-containers` option. For example: 28 | 29 | ```bash 30 | $ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt 31 | ``` 32 | 33 | The tool also supports outputting the results to a file using the `-output` option: 34 | ```bash 35 | $ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt -output results.txt 36 | ``` 37 | 38 | If you want to provide accounts to test via `stdin` you can also omit `-accounts` (or the account name) entirely: 39 | 40 | ```bash 41 | $ cat accounts.txt | ./goblob 42 | ``` 43 | 44 | ## Wordlists 45 | 46 | Goblob comes bundled with basic wordlists that can be used with the `-containers` option: 47 | 48 | - [wordlists/goblob-folder-names.txt](wordlists/goblob-folder-names.txt) (default) - Adaptation from koaj's [aws-s3-bucket-wordlist](https://github.com/koaj/aws-s3-bucket-wordlist/blob/master/list.txt) - a wordlist containing generic bucket names that are likely to be used as container names. 49 | - [wordlists/goblob-folder-names.small.txt](wordlists/goblob-folder-names.small.txt) - Subset of the default wordlist containing only words that have been found as container names in a real experiment with over 35k distinct storage accounts + words from the default wordlist that are part of the NLTK corpus. 50 | - [wordlists/goblob-folder-names.micro.txt](wordlists/goblob-folder-names.micro.txt) - Subset of the small wordlist containing only words that have been found as container names in a real experiment with over 35k distinct storage accounts. 51 | 52 | ## Optional Flags 53 | 54 | Goblob provides several flags that can be tuned in order to improve the enumeration process: 55 | 56 | - `-goroutines=N` - Maximum number of concurrent goroutines to allow (default: `5000`). 57 | - `-blobs=true` - Report the URL of each blob instead of the URL of the containers (default: `false`). 58 | - `-verbose=N` - Set verbosity level (default: `1`, min: `0`, max: `3`). 59 | - `-maxpages=N` - Maximum of container pages to traverse looking for blobs (default: `20`, set to `-1` to disable limit or to `0` to avoid listing blobs at all and just check if the container is public) 60 | - `-timeout=N` - Timeout for HTTP requests (seconds, default: `90`) 61 | - `-maxidleconns=N` - `MaxIdleConns` transport parameter for HTTP client (default: `100`) 62 | - `-maxidleconnsperhost=N` - `MaxIdleConnsPerHost` transport parameter for HTTP client (default: `10`) 63 | - `-maxconnsperhost=N` - `MaxConnsPerHost` transport parameter for HTTP client (default: `0`) 64 | - `-skipssl=true` - Skip SSL verification (default: `false`) 65 | - `-invertsearch=true` - Enumerate accounts for each container instead of containers for each account (default: `false`) 66 | 67 | For instance, if you just want to find publicly exposed containers using large lists of storage accounts and container names, you should use `-maxpages=0` to prevent the goroutines from paginating the results. Then run it again on the set of results you found with `-blobs=true` and `-maxpages=-1` to actually get the URLs of the blobs. 68 | 69 | If, on the other hand, you want to test a small list of very popular container names against a large set of storage accounts, you might want to try `-invertsearch=true` with `-maxpages=0`, in order to see the public accounts for each container name instead of the container names for each storage account. 70 | 71 | You may also want to try changing `-goroutines`, `-timeout` and `-maxidleconns`, `-maxidleconnsperhost` and `-maxconnsperhost` and `-skipssl` in order to best use your bandwidth and find results faster. 72 | 73 | Experiment with the flags to find what works best for you ;-) 74 | 75 | ## Example 76 | 77 | [![asciicast](https://asciinema.org/a/568038.svg)](https://asciinema.org/a/568038) 78 | 79 | # Contributing 80 | Contributions are welcome by [opening an issue](https://github.com/Macmod/goblob/issues/new) or by [submitting a pull request](https://github.com/Macmod/goblob/pulls). 81 | 82 | # TODO 83 | * Check blob domain for NXDOMAIN before trying wordlist to save bandwidth (maybe) 84 | * Improve default parameters for better performance 85 | 86 | # Wordcloud 87 | 88 | An interesting visualization of popular container names found in my experiments with the tool: 89 | 90 | ![wordcloud.png](wordcloud.png) 91 | 92 | If you want to know more about my experiments and the subject in general, take a look at my article: 93 | 94 | * [FireShellSecurity Team - The Dangers of Exposed Azure Blobs](https://fireshellsecurity.team/dangers-of-exposed-blobs/) 95 | 96 | # License 97 | The MIT License (MIT) 98 | 99 | Copyright (c) 2023 Artur Henrique Marzano Gonzaga 100 | 101 | Permission is hereby granted, free of charge, to any person 102 | obtaining a copy of this software and associated documentation 103 | files (the "Software"), to deal in the Software without 104 | restriction, including without limitation the rights to use, 105 | copy, modify, merge, publish, distribute, sublicense, and/or sell 106 | copies of the Software, and to permit persons to whom the 107 | Software is furnished to do so, subject to the following 108 | conditions: 109 | 110 | The above copyright notice and this permission notice shall be 111 | included in all copies or substantial portions of the Software. 112 | 113 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 114 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 115 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 116 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 117 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 118 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 119 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 120 | OTHER DEALINGS IN THE SOFTWARE. 121 | 122 | -------------------------------------------------------------------------------- /wordlists/goblob-folder-names.small.txt: -------------------------------------------------------------------------------- 1 | aaa 2 | aba 3 | abc 4 | academy 5 | acapulco 6 | acc 7 | acceptance 8 | access 9 | account 10 | action 11 | addons 12 | adman 13 | ads 14 | adv 15 | adventure 16 | advertising 17 | advocacy 18 | affiliate 19 | agency 20 | agent 21 | alb 22 | album 23 | alchemy 24 | alerts 25 | all 26 | alliance 27 | alpha 28 | amazon 29 | ambient 30 | ana 31 | analysis 32 | analytics 33 | anatomy 34 | android 35 | announcements 36 | api 37 | app 38 | appdata 39 | application 40 | applications 41 | apps 42 | arch 43 | archive 44 | archives 45 | ark 46 | arms 47 | arquivos 48 | art 49 | articles 50 | artifacts 51 | asp 52 | asset 53 | assets 54 | association 55 | atlas 56 | attach 57 | attachment 58 | attachments 59 | attic 60 | auctions 61 | audio 62 | audios 63 | author 64 | avatar 65 | avatars 66 | azure 67 | b2b 68 | backet 69 | backgrounds 70 | backstage 71 | backstitch 72 | backup 73 | backups 74 | badges 75 | band 76 | bank 77 | banner 78 | banners 79 | bar 80 | base 81 | bay 82 | beacon 83 | beam 84 | bear 85 | beauty 86 | bee 87 | belle 88 | belong 89 | beta 90 | bilder 91 | bill 92 | bin 93 | binary 94 | biz 95 | biztalk 96 | bleed 97 | blobs 98 | blog 99 | blue 100 | blueprint 101 | blues 102 | board 103 | boo 104 | book 105 | booking 106 | books 107 | bootstrap 108 | bottle 109 | box 110 | brand 111 | branding 112 | brasil 113 | brochure 114 | brokerage 115 | bucket 116 | budget 117 | build 118 | builder 119 | builds 120 | bulletin 121 | bunker 122 | business 123 | button 124 | buttons 125 | buzz 126 | cache 127 | cal 128 | calculator 129 | calendar 130 | calendars 131 | california 132 | campaign 133 | campaigns 134 | canada 135 | canary 136 | canvas 137 | capstan 138 | capstone 139 | card 140 | cards 141 | care 142 | career 143 | careers 144 | cart 145 | casino 146 | cat 147 | catalog 148 | catalogue 149 | catapult 150 | cdn 151 | center 152 | central 153 | certificates 154 | challenge 155 | challenges 156 | change 157 | chat 158 | china 159 | chroma 160 | church 161 | cinema 162 | class 163 | classes 164 | classical 165 | client 166 | clients 167 | climbing 168 | clone 169 | clothing 170 | cloud 171 | club 172 | cms 173 | coach 174 | code 175 | coffee 176 | collateral 177 | collections 178 | collective 179 | college 180 | commerce 181 | commercial 182 | common 183 | communications 184 | community 185 | companies 186 | companion 187 | company 188 | components 189 | compressed 190 | computer 191 | concierge 192 | conferences 193 | config 194 | connect 195 | console 196 | consulting 197 | contain 198 | container 199 | content 200 | contents 201 | contest 202 | contract 203 | control 204 | controls 205 | converted 206 | conveyal 207 | cool 208 | coop 209 | copy 210 | core 211 | corp 212 | corporate 213 | course 214 | courses 215 | covers 216 | craft 217 | creative 218 | crm 219 | css 220 | custom 221 | customer 222 | customers 223 | cyclist 224 | daily 225 | dam 226 | dance 227 | dash 228 | dashboard 229 | data 230 | datasets 231 | datastore 232 | dauphine 233 | day 234 | deals 235 | debug 236 | default 237 | delivery 238 | demo 239 | demo2 240 | demos 241 | dental 242 | dentistry 243 | deploy 244 | design 245 | desktop 246 | destructible 247 | dev 248 | develop 249 | developer 250 | development 251 | digital 252 | direct 253 | directory 254 | dirt 255 | discourse 256 | discuss 257 | disk 258 | dist 259 | distillery 260 | distribution 261 | doc 262 | docs 263 | document 264 | documentation 265 | documentos 266 | documents 267 | dog 268 | download 269 | downloads 270 | draft 271 | dragonfly 272 | drive 273 | drupal 274 | ean 275 | earth 276 | east 277 | easy 278 | ebay 279 | edge 280 | edit 281 | edition 282 | editor 283 | editorial 284 | edu 285 | education 286 | elearning 287 | ellen 288 | email 289 | emails 290 | embed 291 | emma 292 | emu 293 | endo 294 | energy 295 | engage 296 | engine 297 | engineering 298 | enterprise 299 | env 300 | episodes 301 | eric 302 | error 303 | errors 304 | eshop 305 | event 306 | events 307 | example 308 | examples 309 | exchange 310 | experience 311 | experts 312 | export 313 | express 314 | extension 315 | extensions 316 | external 317 | extra 318 | eye 319 | factor 320 | falcon 321 | fan 322 | farm 323 | features 324 | festival 325 | figment 326 | file 327 | files 328 | filestore 329 | film 330 | final 331 | findability 332 | finder 333 | fitness 334 | flight 335 | florida 336 | flower 337 | folder 338 | folk 339 | fonts 340 | food 341 | forge 342 | form 343 | forms 344 | forum 345 | found 346 | foundation 347 | foursquare 348 | fra 349 | free 350 | freedom 351 | fresh 352 | front 353 | fund 354 | fusion 355 | gain 356 | galleries 357 | gallery 358 | games 359 | garage 360 | garden 361 | gate 362 | gateway 363 | gazette 364 | gen 365 | gene 366 | general 367 | generator 368 | generic 369 | genius 370 | ghost 371 | gifts 372 | girl 373 | global 374 | golf 375 | graphics 376 | green 377 | grid 378 | group 379 | growth 380 | guide 381 | guides 382 | guild 383 | guru 384 | gusto 385 | hair 386 | hall 387 | header 388 | health 389 | help 390 | home 391 | homepage 392 | homologacao 393 | horizon 394 | host 395 | hosting 396 | hotel 397 | hound 398 | house 399 | how 400 | html 401 | html5 402 | hub 403 | huddle 404 | icon 405 | icons 406 | ide 407 | idea 408 | ignite 409 | illinois 410 | image 411 | imagenes 412 | imagens 413 | images 414 | images1 415 | images2 416 | img 417 | imgs 418 | import 419 | inbound 420 | industrial 421 | infographics 422 | ingest 423 | inks 424 | input 425 | insider 426 | insomniac 427 | inspector 428 | install 429 | installer 430 | insurance 431 | int 432 | integration 433 | interactive 434 | internal 435 | international 436 | intranet 437 | invoices 438 | ios 439 | issue 440 | items 441 | japan 442 | java 443 | javascript 444 | jazz 445 | jess 446 | jobs 447 | journal 448 | journey 449 | jurel 450 | kindle 451 | kit 452 | kitchen 453 | knowledge 454 | lab 455 | label 456 | labo 457 | landing 458 | lane 459 | latest 460 | launch 461 | law 462 | layouts 463 | leader 464 | leadership 465 | league 466 | learn 467 | learning 468 | legacy 469 | legal 470 | libraries 471 | library 472 | libs 473 | life 474 | lim 475 | linder 476 | link 477 | links 478 | list 479 | lite 480 | live 481 | living 482 | load 483 | loader 484 | local 485 | locomotive 486 | log 487 | login 488 | logo 489 | logos 490 | logs 491 | loka 492 | loop 493 | loops 494 | louisiana 495 | lower 496 | mac 497 | magazine 498 | mail 499 | main 500 | maintenance 501 | mall 502 | management 503 | manager 504 | manual 505 | manuals 506 | map 507 | mapas 508 | maps 509 | marathon 510 | mark 511 | market 512 | marketing 513 | marketplace 514 | marquee 515 | mars 516 | masaki 517 | master 518 | mastodon 519 | material 520 | materials 521 | matrix 522 | max 523 | mayor 524 | media 525 | mediafiles 526 | medias 527 | medical 528 | medication 529 | medium 530 | meetings 531 | membership 532 | mercury 533 | message 534 | meta 535 | mew 536 | mexico 537 | mid 538 | migration 539 | mil 540 | misc 541 | miscellaneous 542 | mobile 543 | mode 544 | model 545 | models 546 | modules 547 | money 548 | monster 549 | mormon 550 | moto 551 | movie 552 | movies 553 | museum 554 | music 555 | mvp 556 | name 557 | net 558 | netherlands 559 | network 560 | new 561 | news 562 | newsletter 563 | newsletters 564 | next 565 | nice 566 | nightly 567 | north 568 | notifications 569 | nova 570 | now 571 | offer 572 | office 573 | oil 574 | old 575 | ondemand 576 | one 577 | online 578 | open 579 | order 580 | orders 581 | oregon 582 | origin 583 | original 584 | other 585 | out 586 | output 587 | packages 588 | page 589 | pages 590 | panel 591 | panoramic 592 | partner 593 | partners 594 | party 595 | pdf 596 | pdfs 597 | peace 598 | people 599 | phoenix 600 | photo 601 | photography 602 | photos 603 | pic 604 | pics 605 | pictures 606 | pilot 607 | pipeline 608 | pizza 609 | planner 610 | platform 611 | player 612 | playhouse 613 | plugins 614 | plus 615 | pneumatics 616 | podcast 617 | podcasts 618 | policies 619 | policy 620 | pop 621 | portal 622 | portals 623 | portfolio 624 | poster 625 | prep 626 | preprod 627 | prerelease 628 | presence 629 | presentation 630 | presentations 631 | press 632 | preview 633 | primary 634 | private 635 | pro 636 | processed 637 | product 638 | production 639 | products 640 | profile 641 | profiles 642 | project 643 | projects 644 | promo 645 | promos 646 | promotion 647 | properties 648 | proposal 649 | proposals 650 | provider 651 | pub 652 | public 653 | publico 654 | published 655 | pulse 656 | quality 657 | questions 658 | radio 659 | rain 660 | rally 661 | read 662 | reading 663 | realty 664 | receipts 665 | recipes 666 | recordings 667 | red 668 | redesign 669 | refresh 670 | region 671 | registration 672 | registry 673 | rein 674 | release 675 | releases 676 | remarket 677 | replay 678 | repo 679 | report 680 | reports 681 | repository 682 | res 683 | research 684 | resize 685 | resized 686 | resource 687 | resources 688 | result 689 | results 690 | resume 691 | review 692 | road 693 | robot 694 | rock 695 | roku 696 | room 697 | root 698 | rota 699 | round 700 | rules 701 | run 702 | russell 703 | saguaro 704 | sale 705 | sales 706 | salvador 707 | sample 708 | samples 709 | sandbox 710 | school 711 | schools 712 | science 713 | screenshots 714 | script 715 | scripts 716 | sds 717 | search 718 | secure 719 | security 720 | seo 721 | series 722 | serve 723 | server 724 | service 725 | services 726 | sessions 727 | sett 728 | settings 729 | setup 730 | share 731 | shared 732 | shippo 733 | shop 734 | show 735 | showroom 736 | shows 737 | sigma 738 | signature 739 | simulcast 740 | site 741 | site360 742 | sitefinity 743 | sitemap 744 | sitemaps 745 | sites 746 | sketch 747 | skin 748 | smith 749 | sms 750 | snapshot 751 | snapshots 752 | social 753 | society 754 | software 755 | sold 756 | solid 757 | somebody 758 | sorted 759 | sounds 760 | source 761 | space 762 | spark 763 | sponsors 764 | sports 765 | spotify 766 | spotlight 767 | spree 768 | square 769 | squire 770 | ssl 771 | stable 772 | stag 773 | stage 774 | staging 775 | standard 776 | staticcontent 777 | staticfiles 778 | statics 779 | status 780 | stem 781 | stickers 782 | sting 783 | storage 784 | store 785 | stories 786 | stream 787 | streaming 788 | streams 789 | street 790 | strength 791 | strong 792 | studio 793 | stuff 794 | styles 795 | stylesheets 796 | sublet 797 | submit 798 | success 799 | supply 800 | support 801 | survey 802 | syllabi 803 | sync 804 | system 805 | tab 806 | table 807 | talk 808 | tanaka 809 | tap 810 | task 811 | team 812 | tech 813 | technology 814 | ted 815 | temp 816 | template 817 | templates 818 | temporal 819 | terms 820 | test 821 | test1 822 | test2 823 | test5 824 | teste 825 | testimonials 826 | testing 827 | tests 828 | theme 829 | themes 830 | thumb 831 | thumbnail 832 | thumbnails 833 | thumbs 834 | tickets 835 | tiles 836 | tips 837 | tmp 838 | tms 839 | today 840 | tool 841 | toolbox 842 | tools 843 | tour 844 | tourism 845 | track 846 | trade 847 | trailers 848 | training 849 | trainingvideos 850 | transfer 851 | trash 852 | travel 853 | trends 854 | tribe 855 | trip 856 | trust 857 | turkey 858 | tutorial 859 | tutorials 860 | tweet 861 | uat 862 | university 863 | update 864 | updates 865 | upgrade 866 | upload 867 | uploaded 868 | uploads 869 | user 870 | userdata 871 | userfiles 872 | userimages 873 | users 874 | vault 875 | vehicles 876 | versus 877 | video 878 | videos 879 | view 880 | virtual 881 | vitrines 882 | wagtail 883 | wallpapers 884 | wan 885 | watch 886 | web 887 | web2 888 | webapp 889 | webimages 890 | webinars 891 | webresources 892 | webs 893 | website 894 | websites 895 | wedding 896 | week 897 | west 898 | whitepapers 899 | wicked 900 | widget 901 | widgets 902 | wiki 903 | win 904 | windows 905 | winners 906 | wisdom 907 | woocommerce 908 | woodside 909 | wordpress 910 | work 911 | workout 912 | works 913 | workshop 914 | world 915 | writing 916 | www 917 | zen 918 | zip 919 | zips 920 | zoneaaa 921 | -------------------------------------------------------------------------------- /wordlists/goblob-folder-names.txt: -------------------------------------------------------------------------------- 1 | 0000 2 | 0001 3 | 000vmm 4 | 001 5 | 002 6 | 005 7 | 0341 8 | 0570 9 | 067182029689 10 | 0c578c9d37ef 11 | 100 12 | 1024 13 | 119 14 | 123 15 | 12345 16 | 170003 17 | 170004 18 | 1705 19 | 1update 20 | 2011 21 | 2012 22 | 2013 23 | 2014 24 | 2015 25 | 2016 26 | 2017 27 | 2018 28 | 2019 29 | 2020 30 | 2021 31 | 2022 32 | 2023 33 | 2024 34 | 2025 35 | 2026 36 | 2027 37 | 2028 38 | 2029 39 | 2030 40 | 28959 41 | 2nd 42 | 360cities 43 | 3872 44 | 46aadb13 45 | 5swd 46 | 8132 47 | 9meter 48 | aaa 49 | aba 50 | abc 51 | abrand 52 | absahnen 53 | abstractors 54 | academy 55 | acapulco 56 | acc 57 | acceptance 58 | access 59 | account 60 | accounts 61 | action 62 | activos 63 | actors 64 | adassets 65 | addamsfamily 66 | addons 67 | adhawk 68 | adhd 69 | adjuntos 70 | adman 71 | admaxim 72 | admin 73 | adops 74 | adozione 75 | ads 76 | adv 77 | adventure 78 | advertising 79 | advocacy 80 | aeu 81 | affidata 82 | affiliate 83 | affiliates 84 | agencia 85 | agency 86 | agent 87 | aidemokit 88 | aijkby1wxsut 89 | airkrft 90 | akeri 91 | alb 92 | album 93 | albums 94 | alchemy 95 | alcielo 96 | alerts 97 | alex 98 | all 99 | alliance 100 | alpha 101 | altai 102 | amazon 103 | ambient 104 | america 105 | amongdragons 106 | ana 107 | analysis 108 | analytics 109 | anatomy 110 | android 111 | angeles 112 | angelsacademy 113 | animations 114 | annarbortees 115 | announcements 116 | anovahealth 117 | aolchik 118 | api 119 | apis 120 | app 121 | appdata 122 | appdater 123 | application 124 | applications 125 | apps 126 | appstore 127 | appytravels 128 | aprende 129 | aprendotodo 130 | aramii 131 | arch 132 | archant 133 | archive 134 | archived 135 | archives 136 | argentina 137 | arhangelskoe 138 | arhg 139 | ark 140 | armageddon 141 | arminonly 142 | arms 143 | arquivos 144 | art 145 | arthop 146 | articles 147 | artifacts 148 | artisanstate 149 | artists 150 | artists1 151 | arttrend 152 | arturogoga 153 | artwork 154 | asia 155 | askwar 156 | asmartbear 157 | asp 158 | asset 159 | asset0 160 | assets 161 | assets1 162 | assets2 163 | assistly 164 | assnow 165 | associates 166 | association 167 | astrobest 168 | atlas 169 | att 170 | attach 171 | attachment 172 | attachments 173 | attic 174 | auctions 175 | audio 176 | audios 177 | aunz 178 | aus 179 | australia 180 | auth 181 | author 182 | autosenventahn 183 | autotrafficbuddy 184 | avatar 185 | avatars 186 | avinash 187 | aviosdomore 188 | avvocatoguerra 189 | awards 190 | aws 191 | awseb 192 | awslab 193 | awstest 194 | ayutim5436 195 | azul 196 | azurb 197 | azure 198 | azw 199 | b01 200 | b02 201 | b2b 202 | babybee 203 | backend 204 | backet 205 | backgrounds 206 | backstage 207 | backstitch 208 | backup 209 | backups 210 | badges 211 | baggout 212 | bagtheweb 213 | baket 214 | band 215 | bank 216 | banner 217 | bannerads 218 | banners 219 | baptist 220 | bar 221 | barharborme 222 | base 223 | bay 224 | bcbm 225 | bcpictures 226 | bcs 227 | bdayprofile 228 | beacon 229 | beam 230 | bear 231 | beats 232 | beauty 233 | bee 234 | belle 235 | belong 236 | bentoaze 237 | beta 238 | bethecentre 239 | bfusa 240 | bheventos 241 | bigoven 242 | bigsigns 243 | bigtree 244 | bilder 245 | bill 246 | bin 247 | binaries 248 | binary 249 | bio 250 | birchcraft 251 | bits 252 | biz 253 | bizango 254 | biztalk 255 | blacasa 256 | bleed 257 | blitline 258 | blobs 259 | blobvis 260 | blocks 261 | blog 262 | blog4ever 263 | blogpost 264 | blogs 265 | blue 266 | blueprint 267 | blues 268 | board 269 | boilers 270 | bonuses 271 | boo 272 | book 273 | booking 274 | books 275 | bootcamp 276 | bootstrap 277 | botr 278 | bottle 279 | boundarybend 280 | box 281 | boxes 282 | boys 283 | bplans 284 | bpmsystem 285 | bqreaders 286 | brampton 287 | brand 288 | branding 289 | brasil 290 | brbergus 291 | bricks 292 | briefings 293 | brightonpride 294 | brightspot 295 | brochure 296 | brochures 297 | brokerage 298 | bros 299 | btd 300 | bucket 301 | bucket01 302 | bucket1 303 | bucket2 304 | buckettest 305 | budget 306 | budgets 307 | build 308 | builder 309 | builds 310 | buket 311 | bulletin 312 | bunker 313 | bushofficial 314 | business 315 | button 316 | buttons 317 | buzz 318 | bwcore 319 | by4xwp3g232v 320 | byron 321 | c100 322 | cache 323 | cae 324 | caffo 325 | cal 326 | calculator 327 | calendar 328 | calendars 329 | california 330 | calvaryreston 331 | campaign 332 | campaigns 333 | camptakajo 334 | canada 335 | canary 336 | canvas 337 | capitalinside 338 | capitalizarme 339 | caps 340 | capstan 341 | capstone 342 | captured 343 | card 344 | cards 345 | care 346 | careems 347 | career 348 | careers 349 | cargas 350 | carinar 351 | carlos 352 | carrierwave 353 | carsales 354 | cart 355 | carzify 356 | casino 357 | cat 358 | catalog 359 | catalogue 360 | catapult 361 | cav 362 | ccartoday 363 | cdb 364 | cdn 365 | cdn1 366 | cdn2 367 | center 368 | central 369 | centre 370 | certificates 371 | cet 372 | cgb 373 | challenge 374 | challengeimages 375 | challenges 376 | change 377 | charactergrades 378 | chat 379 | checkout 380 | chicago 381 | chicagomp 382 | china 383 | chococard 384 | chroma 385 | chromeless 386 | chunks 387 | church 388 | ciaopeople 389 | cineguru 390 | cinema 391 | cities 392 | cityofsydney 393 | class 394 | classes 395 | classical 396 | classninja 397 | clearleft 398 | cli 399 | clickademics 400 | clickbooq 401 | client 402 | clientfiles 403 | clients 404 | climbing 405 | clipsout 406 | clone 407 | clothing 408 | cloud 409 | cloudfront 410 | cloudpro 411 | club 412 | clubwidget 413 | cmedia 414 | cmi 415 | cms 416 | cnhi 417 | coach 418 | code 419 | coding 420 | coffee 421 | coinsph 422 | colizet 423 | collateral 424 | collections 425 | collective 426 | college 427 | colombia 428 | colorjive 429 | com-wordpress 430 | com01 431 | com2 432 | comchrisinc 433 | comjzonline 434 | comm 435 | commerce 436 | commercial 437 | commercials 438 | common 439 | commonassets 440 | comms 441 | communications 442 | community 443 | companies 444 | companion 445 | company 446 | comparaonline 447 | compmatemplate 448 | components 449 | compopfolio 450 | compressed 451 | computer 452 | computeridee 453 | comspscdn 454 | comsweetcaptcha 455 | comtruvozvideos 456 | comune 457 | concierge 458 | condenast 459 | conects 460 | conferences 461 | config 462 | connect 463 | connectedcar 464 | connections 465 | conservatives 466 | console 467 | consulting 468 | contain 469 | container 470 | content 471 | content2 472 | contents 473 | contentunlock 474 | contest 475 | contract 476 | contracts 477 | control 478 | controls 479 | converted 480 | conveyal 481 | cool 482 | coolchecks 483 | coop 484 | copia 485 | copias 486 | copy 487 | core 488 | corp 489 | corporate 490 | corpweb 491 | correos 492 | course 493 | courses 494 | coursifyme 495 | covers 496 | covertplayer 497 | craft 498 | craftcms 499 | cramshark 500 | creative 501 | creatives 502 | crehana 503 | crm 504 | croatia 505 | cromly 506 | css 507 | cultofsincerity 508 | curatious 509 | custom 510 | customer 511 | customers 512 | cxxa 513 | cyclist 514 | daily 515 | dam 516 | dance 517 | dash 518 | dashboard 519 | data 520 | data2 521 | datafeeds 522 | datasets 523 | datastore 524 | datawrapper 525 | datos 526 | dauphine 527 | day 528 | ddf 529 | de1be4395742 530 | dealers 531 | deals 532 | debug 533 | deck2play 534 | default 535 | delivery 536 | demandmedia 537 | demco 538 | demo 539 | demo2 540 | demos 541 | dental 542 | dentistfind 543 | dentistry 544 | deploy 545 | design 546 | designs 547 | desktop 548 | destinations 549 | destructible 550 | dev 551 | dev1 552 | dev2 553 | devel 554 | develop 555 | developer 556 | developers 557 | development 558 | devmoose 559 | devo2go 560 | dfa 561 | diamonds 562 | digiboo 563 | digital 564 | digitaldownloads 565 | digitalocean 566 | digitalrez 567 | dir 568 | direct 569 | directathletics 570 | directory 571 | dirt 572 | discourse 573 | discuss 574 | disk 575 | dist 576 | distillery 577 | distribution 578 | distributions 579 | django 580 | dkoutdoors 581 | dnoticias 582 | doc 583 | docs 584 | docstore 585 | document 586 | documentation 587 | documentos 588 | documents 589 | docverify 590 | dog 591 | dojjo 592 | dol 593 | domains 594 | dominionchurch 595 | dooer 596 | doppler 597 | dotcom 598 | download 599 | downloadables 600 | downloads 601 | doyle 602 | dpa 603 | dpn 604 | draft 605 | drafts 606 | dragonfly 607 | drewnora 608 | drive 609 | droitsocial 610 | dropbox 611 | drupal 612 | drupaluserfiles 613 | dspro 614 | dth 615 | dvd 616 | dvr 617 | e4ea3fb 618 | e96836097778 619 | ead 620 | ean 621 | eap 622 | earth 623 | east 624 | easy 625 | easyshare 626 | ebay 627 | ebenezermold 628 | ebook 629 | ebooks 630 | ec2 631 | eco 632 | ecom 633 | ecomm 634 | ecommerce 635 | ecomms 636 | ecuador 637 | edge 638 | edhesive 639 | edit 640 | edition 641 | editor 642 | editorial 643 | edu 644 | education 645 | edulgimages 646 | edutower 647 | edx 648 | eiblogs 649 | ejaf 650 | elearning 651 | elections 652 | electionslive 653 | electronica 654 | elephpant 655 | ellen 656 | emag 657 | email 658 | emails 659 | embed 660 | embeds 661 | emma 662 | emocional 663 | ems 664 | emu 665 | emyth 666 | endo 667 | energy 668 | enformehosting 669 | engage 670 | engine 671 | engineering 672 | enterprise 673 | entradasatualcance 674 | entrenaya 675 | env 676 | envelopments 677 | episodes 678 | epocasaopaulo 679 | eqal 680 | ereas 681 | eric 682 | error 683 | errorpages 684 | errors 685 | eset 686 | eshop 687 | estoesotraliga 688 | europa 689 | europe 690 | euwest1 691 | event 692 | events 693 | eviware 694 | example 695 | examples 696 | exchange 697 | exec 698 | expenses 699 | experience 700 | experts 701 | export 702 | express 703 | ext 704 | extension 705 | extensions 706 | external 707 | extra 708 | extranet 709 | eye 710 | f37cb24946b1 711 | facebook 712 | factor 713 | failover 714 | fairleads 715 | falcon 716 | fan 717 | farcrycore 718 | farm 719 | features 720 | feee80933951 721 | festival 722 | ff7bde56b87e 723 | fhf 724 | fieldlink 725 | figment 726 | file 727 | filereleases 728 | files 729 | fileserver 730 | filestorage 731 | filestore 732 | film 733 | final 734 | findability 735 | finder 736 | finelass 737 | fingerprints 738 | fisharound 739 | fitness 740 | flight 741 | flips 742 | florida 743 | flower 744 | flowplayer 745 | fmgavatars 746 | fmgdesigns 747 | folder 748 | folk 749 | fondation 750 | fonts 751 | food 752 | foodauthority 753 | foods 754 | forces 755 | forge 756 | forient 757 | form 758 | form1 759 | forms 760 | forthepeople 761 | forum 762 | forums 763 | fotokarakter 764 | found 765 | foundation 766 | foursquare 767 | fprh 768 | fra 769 | frankfurt 770 | free 771 | freebies 772 | freedom 773 | freedownloads 774 | freeiq 775 | fresh 776 | friday 777 | front 778 | frontend 779 | frontline 780 | ftherefs 781 | ftp 782 | fund 783 | funnels 784 | fusaito 785 | fusion 786 | fwl 787 | fyi 788 | gain 789 | galleries 790 | gallery 791 | gamarra 792 | gamebox 793 | games 794 | gamestore 795 | garage 796 | garden 797 | gardenhomeandparty 798 | garmentory 799 | gate 800 | gateway 801 | gazette 802 | gearboxsoftwarecom 803 | gemr 804 | gen 805 | gene 806 | general 807 | generator 808 | generaweb 809 | generic 810 | genius 811 | geniusofcaring 812 | geodata 813 | geosmart 814 | gfe 815 | gfx 816 | ggm 817 | ghost 818 | gifs 819 | gifts 820 | gigs 821 | gigya 822 | ginraidee 823 | giovannibarbieri 824 | girl 825 | github 826 | global 827 | globalvoices 828 | globalwebassets 829 | glp 830 | gmt 831 | gnmedia 832 | gobrave 833 | gokiosk 834 | golf 835 | gomen 836 | gopennymac 837 | gov 838 | gownbuilder 839 | gradgames 840 | grangermedical 841 | graphics 842 | greece 843 | green 844 | greensquare 845 | grid 846 | grootersproductions 847 | group 848 | growth 849 | grphotos 850 | gruponacion 851 | gsk 852 | gst 853 | gtrk 854 | guide 855 | guides 856 | guild 857 | guitars 858 | gunup 859 | guru 860 | gusto 861 | gvl 862 | gzed3 863 | h5i 864 | hair 865 | hall 866 | hamilton 867 | happy5 868 | hdzimove 869 | header 870 | health 871 | heartsinelive 872 | hegedemonic 873 | help 874 | hermes5 875 | heroku 876 | hersa 877 | hestakaup 878 | hetexted 879 | heug 880 | hhsbe 881 | hibbs 882 | hiphop 883 | hirota 884 | hom 885 | home 886 | homelane 887 | homemonitor 888 | homepage 889 | homol 890 | homolog 891 | homologacao 892 | honmamon 893 | horizon 894 | host 895 | hosted 896 | hosteddocs 897 | hosting 898 | hostr 899 | hotel 900 | hotelscombined 901 | hound 902 | house 903 | housepierre 904 | how 905 | html 906 | html5 907 | hub 908 | huddle 909 | humboldt 910 | hummba 911 | hyfn 912 | hyped 913 | hyundai 914 | ibboo6nrzn1n 915 | icedtime 916 | icfes 917 | icg 918 | ichc 919 | icon 920 | icons 921 | ide 922 | idea 923 | idealista 924 | ideas 925 | ifiwerepresident 926 | iflp 927 | ignite 928 | iha 929 | ihslift 930 | ihsstage 931 | illinois 932 | image 933 | imagenes 934 | imagens 935 | images 936 | images1 937 | images2 938 | img 939 | imgaws 940 | imgcdn 941 | imgs 942 | imgvault 943 | imodel 944 | import 945 | impostometro 946 | in2 947 | inbed 948 | inbound 949 | inc 950 | indigloo 951 | indmum 952 | indonesia 953 | industrial 954 | inesquecivel 955 | info 956 | infographer 957 | infographics 958 | informarexresistere 959 | ingest 960 | inks 961 | inks2 962 | inks3 963 | inovacao 964 | input 965 | inscoinc 966 | insider 967 | insomniac 968 | inspector 969 | insta 970 | install 971 | installer 972 | institucional 973 | insurance 974 | int 975 | integration 976 | intel 977 | interactive 978 | interactives 979 | internal 980 | international 981 | internet 982 | interviews 983 | inthemix 984 | intl 985 | intranet 986 | intro 987 | invideous 988 | invisalign 989 | invoices 990 | ios 991 | ireland 992 | irl 993 | isf 994 | ishibashi 995 | issue 996 | italia 997 | items 998 | itunes 999 | ivanzolotov 1000 | ivyandrose 1001 | iwplamp 1002 | iyemon 1003 | iys 1004 | j2made 1005 | jablonski 1006 | jackcanfield 1007 | jakearchibald 1008 | jameswilliams 1009 | japan 1010 | jasondev 1011 | java 1012 | javascript 1013 | jax 1014 | jazz 1015 | jcdna 1016 | jelita 1017 | jess 1018 | jobs 1019 | jonesmgmt 1020 | joomla 1021 | journal 1022 | journey 1023 | jozwik 1024 | junip 1025 | junkeemedia 1026 | jurel 1027 | just1word 1028 | kabelky 1029 | kamolabo 1030 | kapchat 1031 | karten 1032 | katyaleonovich 1033 | kawaiicupboard 1034 | kazimanzurrashid 1035 | kc2 1036 | kettlebells 1037 | kids 1038 | kimclark 1039 | kindle 1040 | kit 1041 | kitchen 1042 | kkc 1043 | knowledge 1044 | knowledgebase 1045 | kollux 1046 | kopen 1047 | krs 1048 | ktp 1049 | lab 1050 | lab1 1051 | label 1052 | labo 1053 | labs 1054 | laganza 1055 | lagrancadenacrm 1056 | lamsaworld 1057 | landers 1058 | landing 1059 | lane 1060 | langrich 1061 | lanzarote 1062 | lapatilla 1063 | latam 1064 | latest 1065 | latin 1066 | launch 1067 | launchpad 1068 | law 1069 | law360 1070 | layouts 1071 | lbc 1072 | lbt 1073 | leader 1074 | leadership 1075 | leadmagnets 1076 | league 1077 | learn 1078 | learning 1079 | legacy 1080 | legal 1081 | lentz 1082 | lessons 1083 | lib 1084 | libcloud 1085 | libraries 1086 | library 1087 | libre 1088 | libs 1089 | life 1090 | lifecare 1091 | lifehealthdigest 1092 | lifestyle 1093 | lifullstay 1094 | liitteet 1095 | lim 1096 | linder 1097 | link 1098 | linklogi 1099 | links 1100 | lisafairweather 1101 | list 1102 | listas 1103 | listings 1104 | lists 1105 | lite 1106 | live 1107 | living 1108 | lms 1109 | load 1110 | loader 1111 | loadtest 1112 | local 1113 | localytics 1114 | lockport 1115 | locomotive 1116 | locosonic 1117 | log 1118 | login 1119 | logo 1120 | logos 1121 | logs 1122 | loja 1123 | loka 1124 | lon 1125 | london 1126 | loop 1127 | loops 1128 | louisiana 1129 | lower 1130 | lucidpage 1131 | mac 1132 | machistory 1133 | macy 1134 | madlively 1135 | magazine 1136 | magazines 1137 | magento 1138 | magicspace 1139 | magnantechnology 1140 | mahalohour 1141 | mail 1142 | main 1143 | maintenance 1144 | makers 1145 | makersrow 1146 | makeup 1147 | mall 1148 | management 1149 | manager 1150 | manchallenges 1151 | manual 1152 | manuals 1153 | map 1154 | mapas 1155 | mapcollect 1156 | maps 1157 | marathon 1158 | mark 1159 | market 1160 | marketing 1161 | marketingsite2012 1162 | marketplace 1163 | marketshare 1164 | marquee 1165 | mars 1166 | marwah 1167 | masaki 1168 | master 1169 | masterclass 1170 | masters 1171 | mastodon 1172 | material 1173 | materials 1174 | matic 1175 | matrix 1176 | matt 1177 | max 1178 | mayor 1179 | mba 1180 | mbbi 1181 | mcbainsystems 1182 | mckenzie 1183 | mco 1184 | media 1185 | media1 1186 | media2 1187 | mediafiles 1188 | mediaplayer 1189 | medias 1190 | mediazoic 1191 | medical 1192 | medication 1193 | medios 1194 | medium 1195 | medusa 1196 | meetings 1197 | melbourne 1198 | melorra 1199 | membership 1200 | memphiszoo 1201 | menshealth 1202 | merchandising 1203 | mercury 1204 | message 1205 | messages 1206 | meta 1207 | metaimage 1208 | metalab 1209 | meus5minutos 1210 | mew 1211 | mexico 1212 | mfumc 1213 | mhint 1214 | mht 1215 | mhwilleke 1216 | mic 1217 | micromat 1218 | microsite 1219 | microsites 1220 | mid 1221 | midia 1222 | migration 1223 | mil 1224 | mineski 1225 | minga 1226 | minnpost 1227 | minols 1228 | mira 1229 | misc 1230 | miscellaneous 1231 | mkt 1232 | mktg 1233 | mlg 1234 | mna 1235 | mobella 1236 | mobi 1237 | mobile 1238 | mobile1 1239 | mockups 1240 | mode 1241 | model 1242 | models 1243 | modizy 1244 | mods 1245 | modules 1246 | mohamed 1247 | money 1248 | monitojoomla 1249 | monster 1250 | morca 1251 | morizon 1252 | mormon 1253 | motionconference 1254 | moto 1255 | movicolcms 1256 | movie 1257 | movies 1258 | mp3 1259 | mp3s 1260 | mpf 1261 | msg 1262 | msn 1263 | msw 1264 | mubany 1265 | muenchen 1266 | multimedia 1267 | multiplex10 1268 | mumbai 1269 | museum 1270 | music 1271 | musicalina 1272 | musicarchitect 1273 | mvp 1274 | myinventoryrecord 1275 | mystopia 1276 | nabaiji 1277 | namastecredit 1278 | name 1279 | namepoem 1280 | nasdsecapacity 1281 | natura 1282 | nav 1283 | ncra 1284 | nearbysupply 1285 | net 1286 | netherlands 1287 | network 1288 | new 1289 | newage 1290 | news 1291 | newsbreak 1292 | newshour 1293 | newsletter 1294 | newsletters 1295 | newsok 1296 | next 1297 | ngs 1298 | nice 1299 | nichify 1300 | nightlies 1301 | nightly 1302 | nike 1303 | ninestairs 1304 | ninja 1305 | nljug 1306 | north 1307 | notifications 1308 | nova 1309 | novo 1310 | now 1311 | nrtctraining 1312 | nswfa 1313 | ntm 1314 | nubis 1315 | nunchee 1316 | nuts 1317 | nyc 1318 | objects 1319 | objetos 1320 | octopode 1321 | odecopack 1322 | oeg 1323 | offer 1324 | office 1325 | offlinecashmagnet 1326 | offload 1327 | ogloszenia 1328 | ogn 1329 | oil 1330 | old 1331 | oldweather 1332 | oliviauffer 1333 | olympics 1334 | omed 1335 | omg 1336 | omlovely 1337 | oncourse 1338 | ondemand 1339 | one 1340 | online 1341 | online2 1342 | open 1343 | openni 1344 | opensideload 1345 | ophoto 1346 | ops 1347 | optimizely 1348 | orangedigital 1349 | order 1350 | orders 1351 | oregon 1352 | org 1353 | org-media 1354 | origin 1355 | original 1356 | osaka 1357 | osb 1358 | ossu 1359 | other 1360 | otr 1361 | out 1362 | outerspatial 1363 | outfither 1364 | output 1365 | overturecenter 1366 | oxfamamerica 1367 | packages 1368 | page 1369 | pages 1370 | panel 1371 | panoramic 1372 | paperclip 1373 | partee 1374 | partner 1375 | partners 1376 | parts 1377 | partsimages 1378 | party 1379 | pbl 1380 | pdf 1381 | pdfs 1382 | pds 1383 | peace 1384 | people 1385 | peoplepress 1386 | perf 1387 | peru 1388 | petra 1389 | pharmacytimes 1390 | philsmy 1391 | phoenix 1392 | phonica 1393 | photo 1394 | photography 1395 | photos 1396 | photostorage 1397 | php 1398 | pic 1399 | pickacarrot 1400 | pics 1401 | picturengine 1402 | pictures 1403 | pilot 1404 | pim 1405 | pipeline 1406 | pizza 1407 | planner 1408 | platanitos 1409 | platform 1410 | player 1411 | playhouse 1412 | plugins 1413 | plus 1414 | pluspartner 1415 | pneumatics 1416 | pnl 1417 | pnp10 1418 | poc 1419 | podcast 1420 | podcaster 1421 | podcasts 1422 | points 1423 | policies 1424 | policy 1425 | pop 1426 | portal 1427 | portals 1428 | portfolio 1429 | portinos 1430 | portraits 1431 | pos 1432 | poster 1433 | postimages 1434 | posts 1435 | ppr 1436 | practiceblueprint 1437 | pravoved 1438 | prd 1439 | prd1 1440 | pre 1441 | pregunta2 1442 | prep 1443 | preprod 1444 | preproduction 1445 | prerelease 1446 | presence 1447 | presentation 1448 | presentations 1449 | press 1450 | pressbox 1451 | prettyguide 1452 | preview 1453 | previews 1454 | prezzodata 1455 | primary 1456 | printmaterial 1457 | private 1458 | privatedownload 1459 | pro 1460 | processed 1461 | prod2 1462 | prodstatic 1463 | producao 1464 | product 1465 | productinformation 1466 | production 1467 | production1 1468 | production2 1469 | productions 1470 | products 1471 | producttemplates 1472 | produktivhaus 1473 | prodweb 1474 | profile 1475 | profiles 1476 | programs 1477 | project 1478 | projects 1479 | projeto 1480 | projetos 1481 | promo 1482 | promoadmin 1483 | promos 1484 | promotion 1485 | properties 1486 | proposal 1487 | proposals 1488 | provider 1489 | provincetownma 1490 | pscexams 1491 | pse 1492 | pub 1493 | public 1494 | publications 1495 | publico 1496 | published 1497 | publishing 1498 | puentes 1499 | pulse 1500 | qlub 1501 | qsjm8yylrt06 1502 | quality 1503 | questions 1504 | quotes 1505 | qup 1506 | radio 1507 | rails 1508 | rain 1509 | rally 1510 | ranqlead 1511 | rassegna 1512 | read 1513 | reading 1514 | readradio 1515 | realaccesspro 1516 | realty 1517 | receipts 1518 | recipes 1519 | recordings 1520 | records 1521 | recorrente 1522 | red 1523 | redesign 1524 | redmine 1525 | refresh 1526 | region 1527 | registration 1528 | registro 1529 | registros 1530 | registry 1531 | rehab 1532 | rein 1533 | release 1534 | releases 1535 | remarket 1536 | remembers 1537 | remy 1538 | rentabilibar 1539 | replay 1540 | repo 1541 | report 1542 | reports 1543 | repos 1544 | repository 1545 | reprezent 1546 | res 1547 | research 1548 | resize 1549 | resized 1550 | resource 1551 | resources 1552 | responsibyl 1553 | result 1554 | results 1555 | resume 1556 | retro 1557 | rets 1558 | revendadireta 1559 | review 1560 | reviews 1561 | rfqs 1562 | ricecamera 1563 | richter 1564 | rino 1565 | riversedge 1566 | road 1567 | roadmap 1568 | robot 1569 | rock 1570 | rocks 1571 | rodrigofranco 1572 | rokdim 1573 | roku 1574 | rolestar 1575 | room 1576 | root 1577 | rota 1578 | round 1579 | rrfilelock 1580 | rubegoldberg 1581 | rubylane 1582 | rubyrags 1583 | rules 1584 | run 1585 | russell 1586 | s3bucket 1587 | s3fs 1588 | saas 1589 | sadewa 1590 | saguaro 1591 | sain3 1592 | sakuraweb 1593 | sale 1594 | sales 1595 | salesforce 1596 | salespage 1597 | saljos 1598 | salome 1599 | salvador 1600 | salvagethumbnails 1601 | samarsee 1602 | sample 1603 | samples 1604 | sandbox 1605 | santa 1606 | santcugat 1607 | savegames 1608 | sberbank 1609 | scc 1610 | scheduling 1611 | schieb 1612 | scholastica 1613 | schoo 1614 | school 1615 | schoolofnet 1616 | schools 1617 | science 1618 | scrapwalls 1619 | screenshots 1620 | script 1621 | scripts 1622 | sdk 1623 | sdll 1624 | sds 1625 | seaaroundus 1626 | search 1627 | seattletimes 1628 | sebringcreative 1629 | secrets 1630 | secure 1631 | security 1632 | seminars 1633 | sensors 1634 | seo 1635 | seoul 1636 | series 1637 | sermons 1638 | serve 1639 | server 1640 | server1 1641 | service 1642 | services 1643 | sessions 1644 | sett 1645 | settings 1646 | setup 1647 | setups 1648 | sevenprojects 1649 | sgc 1650 | sgl 1651 | share 1652 | shareaholic 1653 | shared 1654 | sharefuze 1655 | sharepthoster 1656 | sharetribe 1657 | sharing 1658 | sheets 1659 | shibata 1660 | shippo 1661 | shiroyagi 1662 | shop 1663 | shopifyapps 1664 | show 1665 | showroom 1666 | shows 1667 | shwup 1668 | sigma 1669 | signature 1670 | silviaterra 1671 | simulcast 1672 | since1886 1673 | singapore 1674 | singtel 1675 | site 1676 | site360 1677 | sitefiles 1678 | sitefinity 1679 | sitemap 1680 | sitemaps 1681 | sites 1682 | sitesmedia 1683 | skanect 1684 | sketch 1685 | skin 1686 | skiyaki 1687 | slides 1688 | slideshow 1689 | slots 1690 | smartgames 1691 | smith 1692 | smocca 1693 | sms 1694 | snapshot 1695 | snapshots 1696 | snapwave 1697 | social 1698 | socialhub 1699 | society 1700 | software 1701 | solavei 1702 | sold 1703 | solid 1704 | solutions 1705 | somebody 1706 | sonymusicd2c 1707 | sonynms 1708 | sorted 1709 | soulid 1710 | soulpancake 1711 | soundplay 1712 | sounds 1713 | source 1714 | soyecowoman 1715 | space 1716 | spacerace 1717 | spark 1718 | spas 1719 | spl 1720 | splashes 1721 | sponsors 1722 | sports 1723 | spotify 1724 | spotlight 1725 | spreadsheets 1726 | spree 1727 | springawakening 1728 | spryfile 1729 | square 1730 | squire 1731 | srbacdn 1732 | src 1733 | ss18 1734 | ssl 1735 | sta 1736 | stable 1737 | stacki 1738 | stag 1739 | stage 1740 | stage2 1741 | stagecoachbus 1742 | staging 1743 | staging-mapcollect 1744 | staging1 1745 | staging2 1746 | staging3 1747 | staging4 1748 | stampa 1749 | standard 1750 | static1 1751 | static2 1752 | static6 1753 | staticassets 1754 | staticcontent 1755 | staticfile 1756 | staticfiles 1757 | staticmedia 1758 | staticmediadev 1759 | statics 1760 | status 1761 | std 1762 | stears 1763 | stem 1764 | stg 1765 | stickers 1766 | sting 1767 | sto 1768 | storage 1769 | storage001 1770 | storages 1771 | store 1772 | storefront 1773 | storejp 1774 | stories 1775 | strategyeye 1776 | stratuslive 1777 | stream 1778 | streaming 1779 | streams 1780 | street 1781 | streetsine 1782 | strength 1783 | stribling 1784 | strong 1785 | sts 1786 | studio 1787 | stuff 1788 | styleguide 1789 | styles 1790 | stylesheets 1791 | stylists 1792 | sub100 1793 | subdomain 1794 | sublet 1795 | submit 1796 | success 1797 | sudburyma 1798 | summitguru 1799 | sunfunder 1800 | supply 1801 | support 1802 | surfshot 1803 | surroundvideo 1804 | survey 1805 | surveys 1806 | suzuki 1807 | swf 1808 | swiggy 1809 | swnsn 1810 | syd 1811 | sydney 1812 | sydneyserver 1813 | sykes 1814 | syllabi 1815 | sync 1816 | sysmaster 1817 | system 1818 | systems 1819 | taably 1820 | tab 1821 | table 1822 | takomapark 1823 | talenthub 1824 | talk 1825 | talks 1826 | tanaka 1827 | tap 1828 | task 1829 | taskgoddess 1830 | tbc 1831 | tdg 1832 | tdl 1833 | team 1834 | tech 1835 | tech4learning 1836 | technology 1837 | ted 1838 | teguise 1839 | temp 1840 | tempario 1841 | template 1842 | templates 1843 | temporal 1844 | terms 1845 | teru 1846 | test 1847 | test001 1848 | test1 1849 | test2 1850 | test5 1851 | testbucket 1852 | teste 1853 | testimonials 1854 | testing 1855 | tests 1856 | testwps3 1857 | tewhanake 1858 | tex3 1859 | thealmostrealmccoy 1860 | thebanner 1861 | theme 1862 | themes 1863 | thenewhive 1864 | thescore 1865 | thirtyone 1866 | thompson 1867 | thornapple 1868 | thoseguys 1869 | thoughtbot 1870 | threats104 1871 | thumb 1872 | thumbnail 1873 | thumbnails 1874 | thumbs 1875 | tia 1876 | tibra 1877 | tickets 1878 | ticketscloud 1879 | tiles 1880 | tips 1881 | tld 1882 | tls 1883 | tmaws 1884 | tmp 1885 | tms 1886 | tnw 1887 | today 1888 | tokyo 1889 | tommyb 1890 | tool 1891 | toolbox 1892 | toolkit 1893 | tools 1894 | totalcache 1895 | touchybooks 1896 | tour 1897 | tourism 1898 | tours 1899 | track 1900 | track64 1901 | trade 1902 | trafficzen 1903 | trailercentral 1904 | trailers 1905 | training 1906 | trainingvideos 1907 | transfer 1908 | transmetro 1909 | transmissionmedia 1910 | trash 1911 | travel 1912 | travisthieman 1913 | trefis 1914 | trendmicro 1915 | trends 1916 | tribe 1917 | tribord 1918 | trinus 1919 | trip 1920 | tripfeet 1921 | triset 1922 | trojanwire 1923 | trust 1924 | tryouts 1925 | tsd 1926 | tsn 1927 | tumblr 1928 | turkey 1929 | tutorial 1930 | tutorials 1931 | tweet 1932 | twincity 1933 | twlc 1934 | txtgame 1935 | uae 1936 | uat 1937 | ue1 1938 | ugc 1939 | universalmusic 1940 | university 1941 | universomusica 1942 | unnamed777 1943 | update 1944 | updates 1945 | upgrade 1946 | upload 1947 | uploaded 1948 | uploader 1949 | uploads 1950 | ureed 1951 | ureport 1952 | urls 1953 | us1 1954 | usa 1955 | user 1956 | userdata 1957 | userfiles 1958 | userimages 1959 | users 1960 | usmfiles 1961 | usmimagecatalogue 1962 | usstd 1963 | usuarios 1964 | utetube 1965 | util 1966 | uxpin 1967 | v20 1968 | vanemmerik 1969 | vault 1970 | vdweb 1971 | vegetacion 1972 | vehicles 1973 | ventures 1974 | versus 1975 | vgesports 1976 | vibes 1977 | video 1978 | videogameshero 1979 | videoportal 1980 | videos 1981 | vids 1982 | view 1983 | vines 1984 | virtual 1985 | visionprize 1986 | visionsmartnews 1987 | visionsmith 1988 | visualizations 1989 | visuals 1990 | vitrines 1991 | vmimages 1992 | vod 1993 | votorantim 1994 | vsporto 1995 | vspot 1996 | w2w 1997 | w3tc 1998 | wagtail 1999 | walkabouts 2000 | walkerquarterly 2001 | wallpapers 2002 | wan 2003 | washpost 2004 | watanabe 2005 | watch 2006 | water2 2007 | wdcw 2008 | web 2009 | web2 2010 | webapp 2011 | webassets 2012 | webcasts 2013 | webcontent 2014 | webcorporativa 2015 | webdev 2016 | webfiles 2017 | webhelp 2018 | webimages 2019 | webinar 2020 | webinars 2021 | webresources 2022 | webs 2023 | webserverbucket1 2024 | website 2025 | websites 2026 | webstatic 2027 | webstorecom 2028 | wedding 2029 | wedding600 2030 | wedsites 2031 | week 2032 | welcomepack 2033 | west 2034 | whistleout 2035 | whitepapers 2036 | wicked 2037 | widget 2038 | widgets 2039 | wiki 2040 | wilcox 2041 | win 2042 | windows 2043 | winners 2044 | wip 2045 | wisdom 2046 | wisdomcave 2047 | wmpo 2048 | wmpsp 2049 | wonderfinds 2050 | woocommerce 2051 | woodside 2052 | wordpress 2053 | work 2054 | workface 2055 | workout 2056 | workoutz 2057 | works 2058 | workshop 2059 | workshops 2060 | world 2061 | worldtrack 2062 | wpcontent 2063 | wpe 2064 | wpmedia 2065 | wpmulti 2066 | writing 2067 | www 2068 | xseries 2069 | xxx 2070 | xxxxx 2071 | xyz 2072 | xzito 2073 | yacmedia 2074 | yaiza 2075 | yanase 2076 | yaqeen 2077 | yogava 2078 | yso 2079 | zbiddy 2080 | zen 2081 | zeppin 2082 | zerogachis 2083 | zip 2084 | ziprooms 2085 | zips 2086 | zone 2087 | zoomerradio 2088 | --------------------------------------------------------------------------------