mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-17 21:05:26 +00:00
* Add s3 bucket template provider - Refactor the custom github template code - add interface for template provider * Validate if aws creds are passed if bucket flag - refactor s3 provider struct to take client - add function which returns the aws s3 client - update error messages * Add aws s3 bucket flags documentation in README.md - Rename the github_test.go to customTemplate_test.go * go mod update * Move template provider code to pkg/external/customtemplates dir * Added initial data_source sync to cloud * Misc * Add pagination to scan output and scan list (#2858) * Add pagination to scan output and scan list * Use time based parameters instead of page numbers * Fix linting errors * Do not check limits at client, check at server * Remove unused constant * Misc update * Removed unnecessary flags * Misc * Misc * Misc endpoint additions * Added more routes * Typo fix * Misc fixes * Misc * Misc fixes to cloud target logic + use int for IDs * Misc * Misc fixes * Misc * Misc fixes * readme update * Add JSON output support for list-scan option (#2876) * Add JSON output support for list-scan option * Fix typo in cloud JSON output description * Following changes - Update status(finished, running) to be lower-case by default - Convert status to upper-case in DisplayScanList() * Update status to be lower-case by default * Remove additional json flag, instead use existing * Merge conflict * Accomodate comment changes and restructure code Co-authored-by: Jaideep K <jaideep@one2n.in> * Use integer IDs for scan tasks * Added get-templates-targets endpoint + JSON + validation * Added target count list * misc option / description updates * Added changes as per code review * duplicate options + typo updates * Added tablewriter for tabular data writing by default * Fixed list scan endpoint * Review changes * workflow fix * Added cloud tags etc based filtering (#3070) * Added omitempty for filtering request * go mod tidy * misc format update Co-authored-by: shubhamrasal <shubhamdharmarasal@gmail.com> Co-authored-by: Ice3man <nizamulrana@gmail.com> Co-authored-by: Jaideep Khandelwal <jdk2588@gmail.com> Co-authored-by: Siddharth Shashikar <60960197+shashikarsiddharth@users.noreply.github.com> Co-authored-by: Jaideep K <jaideep@one2n.in>
70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
package nucleicloud
|
|
|
|
import (
|
|
"bufio"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/projectdiscovery/nuclei/v2/pkg/catalog/config"
|
|
)
|
|
|
|
const DDMMYYYYhhmmss = "2006-01-02 15:04:05"
|
|
|
|
// ReadCatalogChecksum reads catalog checksum from nuclei-templates repository
|
|
func ReadCatalogChecksum() map[string]string {
|
|
config, _ := config.ReadConfiguration()
|
|
if config == nil {
|
|
return nil
|
|
}
|
|
|
|
checksumFile := filepath.Join(config.TemplatesDirectory, "templates-checksum.txt")
|
|
file, err := os.Open(checksumFile)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
defer file.Close()
|
|
|
|
checksums := make(map[string]string)
|
|
scanner := bufio.NewScanner(file)
|
|
for scanner.Scan() {
|
|
text := strings.SplitN(scanner.Text(), ":", 2)
|
|
if len(text) < 2 {
|
|
continue
|
|
}
|
|
path := strings.TrimPrefix(text[0], "nuclei-templates/")
|
|
if strings.HasPrefix(path, ".") {
|
|
continue
|
|
}
|
|
checksums[path] = text[1]
|
|
}
|
|
return checksums
|
|
}
|
|
|
|
func PrepareScanListOutput(v GetScanRequest) ListScanOutput {
|
|
output := ListScanOutput{}
|
|
loc, _ := time.LoadLocation("Local")
|
|
status := "finished"
|
|
|
|
t := v.FinishedAt
|
|
duration := t.Sub(v.CreatedAt)
|
|
|
|
if !v.Finished {
|
|
status = "running"
|
|
t = time.Now().UTC()
|
|
duration = t.Sub(v.CreatedAt).Round(60 * time.Second)
|
|
}
|
|
|
|
val := v.CreatedAt.In(loc).Format(DDMMYYYYhhmmss)
|
|
|
|
output.Timestamp = val
|
|
output.ScanID = v.Id
|
|
output.ScanTime = duration.String()
|
|
output.ScanResult = int(v.Matches)
|
|
output.ScanStatus = status
|
|
output.Target = int(v.Targets)
|
|
output.Template = int(v.Templates)
|
|
return output
|
|
}
|