Skip to content

Commit

Permalink
重做reqString系列的请求
Browse files Browse the repository at this point in the history
  • Loading branch information
shadowabi committed May 15, 2024
1 parent 38917a3 commit 9c54318
Show file tree
Hide file tree
Showing 11 changed files with 87 additions and 61 deletions.
22 changes: 17 additions & 5 deletions cmd/daydaymap/daydaymap.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,24 @@ var DaydayMapCmd = &cobra.Command{
fmt.Printf("[+] daydaymap is working...\n")

client := pkg.GenerateHTTPClient(define.TimeOut)
reqString := daydaymap.MergeReqListToReqString(define.ReqIpList, define.ReqDomainList)
reqBody := daydaymap.DayDayMapRequest(client, reqString, 1) // find result total
reqStringList := pkg.MergeReqListToReqStringList("daydaymap", define.ReqIpList, define.ReqDomainList)
reqBody := daydaymap.DayDayMapRequest(client, 1, 1, reqStringList...)
reqResult := daydaymap.ParseDaydaymapResult(reqBody...)
reqBody = daydaymap.DayDayMapRequest(client, reqString, reqResult[0].Data.Total) // real query
reqResult = daydaymap.ParseDaydaymapResult(reqBody...)

for i, _ := range reqResult {
if int(reqResult[i].Data.Total) == 0 {
continue
}
if int(reqResult[i].Data.Total) > 10000 {
for j := 1; i <= reqResult[i].Data.Total/10000; j++ {
reqBody = daydaymap.DayDayMapRequest(client, j, 10000, reqStringList[i])
reqResult = append(reqResult, daydaymap.ParseDaydaymapResult(reqBody...)...)
}
} else {
reqBody = daydaymap.DayDayMapRequest(client, 1, reqResult[i].Data.Total, reqStringList[i])
reqResult = append(reqResult, daydaymap.ParseDaydaymapResult(reqBody...)...)
}
}

chanNum := cap(reqResult)
if chanNum != 0 {
Expand All @@ -43,7 +56,6 @@ var DaydayMapCmd = &cobra.Command{

pkg.FetchResultFromChanel(resultChannel)
}

fmt.Printf("[+] daydaymap search complete\n")
},
}
18 changes: 11 additions & 7 deletions cmd/fofa/fofa.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,19 @@ var FofaCmd = &cobra.Command{
fmt.Printf("[+] fofa is working...\n")

client := pkg.GenerateHTTPClient(define.TimeOut)
reqString := pkg.MergeReqListToReqString("fofa", define.ReqIpList, define.ReqDomainList)
reqBody := fofa.FofaRequest(client, reqString, 1)
reqStringList := pkg.MergeReqListToReqStringList("fofa", define.ReqIpList, define.ReqDomainList)
reqBody := fofa.FofaRequest(client, 1, reqStringList...)
reqResult := fofa.ParseFofaResult(reqBody...)

if int(reqResult[0].Size) > 1000 {
pageList := net2.GeneratePageList(reqResult[0].Size)
reqBody2 := fofa.FofaRequest(client, reqString, pageList...)
reqResult2 := fofa.ParseFofaResult(reqBody2...)
reqResult = append(reqResult, reqResult2...)
for i, _ := range reqResult {
if int(reqResult[i].Size) > 1000 {
pageList := net2.GeneratePageList(reqResult[i].Size)
for _, v := range pageList {
reqBody2 := fofa.FofaRequest(client, v, reqStringList[i])
reqResult2 := fofa.ParseFofaResult(reqBody2...)
reqResult = append(reqResult, reqResult2...)
}
}
}

chanNum := cap(reqResult)
Expand Down
18 changes: 11 additions & 7 deletions cmd/hunter/hunter.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,19 @@ var HunterCmd = &cobra.Command{

client := pkg.GenerateHTTPClient(define.TimeOut)

reqString := pkg.MergeReqListToReqString("hunter", define.ReqIpList, define.ReqDomainList)
reqBody := hunter.HunterRequest(client, reqString, 1)
reqStringList := pkg.MergeReqListToReqStringList("hunter", define.ReqIpList, define.ReqDomainList)
reqBody := hunter.HunterRequest(client, 1, reqStringList...)
reqResult := hunter.ParseHunterResult(reqBody...)

if int(reqResult[0].Data.Total) > 100 {
pageList := net2.GeneratePageList(reqResult[0].Data.Total)
reqBody2 := hunter.HunterRequest(client, reqString, pageList...)
reqResult2 := hunter.ParseHunterResult(reqBody2...)
reqResult = append(reqResult, reqResult2...)
for i, _ := range reqResult {
if int(reqResult[i].Data.Total) > 1000 {
pageList := net2.GeneratePageList(reqResult[i].Data.Total)
for _, v := range pageList {
reqBody2 := hunter.HunterRequest(client, v, reqStringList[i])
reqResult2 := hunter.ParseHunterResult(reqBody2...)
reqResult = append(reqResult, reqResult2...)
}
}
}

chanNum := cap(reqResult)
Expand Down
18 changes: 11 additions & 7 deletions cmd/quake/quake.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,19 @@ var QuakeCmd = &cobra.Command{

client := pkg.GenerateHTTPClient(define.TimeOut)

reqString := pkg.MergeReqListToReqString("quake", define.ReqIpList, define.ReqDomainList)
reqBody := quake.QuakeRequest(client, reqString, 1)
reqStringList := pkg.MergeReqListToReqStringList("quake", define.ReqIpList, define.ReqDomainList)
reqBody := quake.QuakeRequest(client, 1, reqStringList...)
reqResult := quake.ParseQuakeResult(reqBody...)

if int(reqResult[0].Meta.Pagination.Total) > 100 {
pageList := net2.GeneratePageList(reqResult[0].Meta.Pagination.Total)
reqBody2 := quake.QuakeRequest(client, reqString, pageList...)
reqResult2 := quake.ParseQuakeResult(reqBody2...)
reqResult = append(reqResult, reqResult2...)
for i, _ := range reqResult {
if int(reqResult[i].Meta.Pagination.Total) > 100 {
pageList := net2.GeneratePageList(reqResult[i].Meta.Pagination.Total)
for _, v := range pageList {
reqBody2 := quake.QuakeRequest(client, v, reqStringList[i])
reqResult2 := quake.ParseQuakeResult(reqBody2...)
reqResult = append(reqResult, reqResult2...)
}
}
}

chanNum := cap(reqResult)
Expand Down
7 changes: 4 additions & 3 deletions define/var.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ type Configure struct {
}

var ModeToGrammar = map[string]string{
"fofa": "=",
"hunter": "=",
"quake": ":",
"fofa": "=",
"hunter": "=",
"quake": ":",
"daydaymap": ":",
}

var Once sync.Once
2 changes: 1 addition & 1 deletion main/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (
)

func init() {
log.Init("trace")
log.Init("info")
configFile := pkg.GetPwd()
configFile = strings.Join([]string{configFile, "/config.json"}, "")
err := File.FileNonExistCreate(configFile)
Expand Down
10 changes: 5 additions & 5 deletions pkg/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package pkg

import (
"bufio"
"fmt"
"github.com/shadowabi/AutoDomain_rebuild/define"
"github.com/shadowabi/AutoDomain_rebuild/utils/Compare"
"github.com/shadowabi/AutoDomain_rebuild/utils/Error"
Expand Down Expand Up @@ -66,18 +67,17 @@ func ConvertToReqDomainList(param ...string) (reqDomainList []string) {
return reqDomainList
}

func MergeReqListToReqString(mode string, reqIpList []string, reqDomainList []string) (reqString string) {
func MergeReqListToReqStringList(mode string, reqIpList []string, reqDomainList []string) (reqStringList []string) {
grammar := define.ModeToGrammar[mode]
if grammar != "" {
for _, host := range reqIpList {
reqString += "ip" + grammar + host + " || "
reqStringList = append(reqStringList, fmt.Sprintf("ip%v\"%v\"", grammar, host))
}
for _, host := range reqDomainList {
reqString += "domain" + grammar + host + " || "
reqStringList = append(reqStringList, fmt.Sprintf("domain%v\"%v\"", grammar, host))
}
}
reqString = strings.TrimSuffix(reqString, " || ")
return reqString
return reqStringList
}

func FetchResultFromChanel(resultChannel chan []string) {
Expand Down
25 changes: 13 additions & 12 deletions pkg/daydaymap/req.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package daydaymap

import (
"bytes"
"encoding/base64"
"encoding/json"
"github.com/shadowabi/AutoDomain_rebuild/config"
"github.com/shadowabi/AutoDomain_rebuild/define"
Expand All @@ -11,24 +12,24 @@ import (
"time"
)

func DayDayMapRequest(client *http.Client, reqString string, totalList ...int) (respBody []string) {
if len(totalList) != 0 {
for _, total := range totalList {
data := struct {
Page int `json:"page"`
Size int `json:"page_size"`
Keyword string `json:"keyword"`
}{
Page: 1,
Size: total,
Keyword: reqString,
}
type DaydaymapData struct {
Page int `json:"page"`
Size int `json:"page_size"`
Keyword string `json:"keyword"`
}

func DayDayMapRequest(client *http.Client, page int, total int, reqStringList ...string) (respBody []string) {
if len(reqStringList) != 0 {
for _, reqString := range reqStringList {
reqString = base64.URLEncoding.EncodeToString([]byte(reqString))
data := DaydaymapData{Page: page, Size: total, Keyword: reqString}
dataJson, _ := json.Marshal(data)
dataReq := bytes.NewBuffer(dataJson)
req, _ := http.NewRequest("POST", "https://www.daydaymap.com/api/v1/raymap/search/all", dataReq)
req.Header.Set("User-Agent", define.UserAgent)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("api-key", config.C.DaydaymapKey)

resp, err := client.Do(req)
time.Sleep(500 * time.Millisecond)
Error.HandleError(err)
Expand Down
10 changes: 5 additions & 5 deletions pkg/fofa/req.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import (
"time"
)

func FofaRequest(client *http.Client, reqString string, page ...int) (respBody []string) {
if len(page) != 0 {
reqString = base64.URLEncoding.EncodeToString([]byte(reqString))
for _, num := range page {
func FofaRequest(client *http.Client, page int, reqStringList ...string) (respBody []string) {
if len(reqStringList) != 0 {
for _, reqString := range reqStringList {
reqString = base64.URLEncoding.EncodeToString([]byte(reqString))
url := fmt.Sprintf("https://fofa.info/api/v1/search/all?email=%s&key=%s&qbase64=%s&full=false&fields=protocol,host&size=1000&page=%v",
config.C.FofaMail, config.C.FofaKey, reqString, num)
config.C.FofaMail, config.C.FofaKey, reqString, page)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("User-Agent", define.UserAgent)

Expand Down
10 changes: 5 additions & 5 deletions pkg/hunter/req.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import (
"time"
)

func HunterRequest(client *http.Client, reqString string, page ...int) (respBody []string) {
if len(page) != 0 {
reqString = base64.URLEncoding.EncodeToString([]byte(reqString))
for _, num := range page {
func HunterRequest(client *http.Client, page int, reqStringList ...string) (respBody []string) {
if len(reqStringList) != 0 {
for _, reqString := range reqStringList {
reqString = base64.URLEncoding.EncodeToString([]byte(reqString))
url := fmt.Sprintf("https://hunter.qianxin.com/openApi/search?api-key=%s&search=%s&page=%v&page_size=100&is_web=3",
config.C.HunterKey, reqString, num)
config.C.HunterKey, reqString, page)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("User-Agent", define.UserAgent)

Expand Down
8 changes: 4 additions & 4 deletions pkg/quake/req.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import (
"time"
)

func QuakeRequest(client *http.Client, reqString string, page ...int) (respBody []string) {
if len(page) != 0 {
for _, num := range page {
data := strings.NewReader(fmt.Sprintf("query=%s&start=%v&size=100&include=service.name&include=port&include=service.http.host", reqString, num))
func QuakeRequest(client *http.Client, page int, reqStringList ...string) (respBody []string) {
if len(reqStringList) != 0 {
for _, reqString := range reqStringList {
data := strings.NewReader(fmt.Sprintf("query=%s&start=%v&size=100&include=service.name&include=port&include=service.http.host", reqString, page))
req, _ := http.NewRequest("POST", "https://quake.360.net/api/v3/search/quake_service", data)
req.Header.Set("User-Agent", define.UserAgent)
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
Expand Down

0 comments on commit 9c54318

Please sign in to comment.