Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions cmd/atomic.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ Examples:
Type: "web",
}

fmt.Printf("🧪 Demonstrating impact for target: %s\n", target)
fmt.Printf("Demonstrating impact for target: %s\n", target)
if dryRun {
fmt.Printf(" Running in dry-run mode (no actual execution)\n")
}
Expand Down Expand Up @@ -503,7 +503,7 @@ func printDemonstrationsJSON(demonstrations []atomic.Demonstration) {
}

func printDemonstrationsTable(demonstrations []atomic.Demonstration, verbose bool) {
fmt.Printf("🧪 Demonstration Results (%d techniques)\n", len(demonstrations))
fmt.Printf("Demonstration Results (%d techniques)\n", len(demonstrations))
fmt.Printf("═══════════════════════════════════════════\n\n")

for i, demo := range demonstrations {
Expand Down
16 changes: 8 additions & 8 deletions cmd/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ func printDiscoveryResults(result struct {
fmt.Printf("═══════════════════════════════════════\n\n")

fmt.Printf(" Target: %s\n", result.Target)
fmt.Printf("🕐 Scanned: %s\n\n", result.Timestamp.Format("2006-01-02 15:04:05"))
fmt.Printf("Scanned: %s\n\n", result.Timestamp.Format("2006-01-02 15:04:05"))

fmt.Printf(" Summary:\n")
fmt.Printf(" • Total endpoints: %d\n", result.Summary.TotalEndpoints)
Expand Down Expand Up @@ -542,7 +542,7 @@ func printDiscoveryResults(result struct {
fmt.Println()

if len(result.Endpoints) > 0 {
fmt.Printf("🔗 Endpoints Found:\n")
fmt.Printf("Endpoints Found:\n")
for _, endpoint := range result.Endpoints {
fmt.Printf(" • %s [%s] - %s\n", endpoint.URL, endpoint.Method, endpoint.Protocol)
}
Expand All @@ -559,11 +559,11 @@ func printDiscoveryResults(result struct {
}

func printTestResults(report *common.AuthReport) {
fmt.Printf("🧪 Authentication Test Results\n")
fmt.Printf("Authentication Test Results\n")
fmt.Printf("═══════════════════════════════════════\n\n")

fmt.Printf(" Target: %s\n", report.Target)
fmt.Printf("⏱️ Duration: %s\n\n", report.EndTime.Sub(report.StartTime))
fmt.Printf("Duration: %s\n\n", report.EndTime.Sub(report.StartTime))

fmt.Printf(" Summary:\n")
fmt.Printf(" • Total vulnerabilities: %d\n", report.Summary.TotalVulnerabilities)
Expand Down Expand Up @@ -594,11 +594,11 @@ func printChainResults(result struct {
Summary ChainSummary `json:"summary"`
Timestamp time.Time `json:"timestamp"`
}) {
fmt.Printf("🔗 Attack Chain Analysis Results\n")
fmt.Printf("Attack Chain Analysis Results\n")
fmt.Printf("═══════════════════════════════════════\n\n")

fmt.Printf(" Target: %s\n", result.Target)
fmt.Printf("🕐 Analyzed: %s\n\n", result.Timestamp.Format("2006-01-02 15:04:05"))
fmt.Printf("Analyzed: %s\n\n", result.Timestamp.Format("2006-01-02 15:04:05"))

fmt.Printf(" Summary:\n")
fmt.Printf(" • Total chains: %d\n", result.Summary.TotalChains)
Expand Down Expand Up @@ -739,7 +739,7 @@ func printComprehensiveDiscoveryResults(result struct {

fmt.Printf(" Target: %s\n", result.Target)
fmt.Printf("🕐 Scanned: %s\n", result.Timestamp.Format("2006-01-02 15:04:05"))
fmt.Printf("⏱️ Discovery Time: %s\n\n", result.ComprehensiveResults.DiscoveryTime)
fmt.Printf("Discovery Time: %s\n\n", result.ComprehensiveResults.DiscoveryTime)

// Print comprehensive results
fmt.Printf(" Discovery Summary:\n")
Expand Down Expand Up @@ -789,7 +789,7 @@ func printComprehensiveDiscoveryResults(result struct {

// Print recommendations
if len(result.ComprehensiveResults.Recommendations) > 0 {
fmt.Printf("💡 Recommendations:\n")
fmt.Printf("Recommendations:\n")
for _, rec := range result.ComprehensiveResults.Recommendations {
fmt.Printf(" • %s\n", rec)
}
Expand Down
6 changes: 3 additions & 3 deletions cmd/boileau.go
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ func runboileauTool(cmd *cobra.Command, args []string) error {
}
}

fmt.Printf("\n📁 Results saved to: %s\n", outputDir)
fmt.Printf("\nResults saved to: %s\n", outputDir)

return nil
}
Expand Down Expand Up @@ -383,7 +383,7 @@ func runboileauBatch(cmd *cobra.Command, args []string) error {
log.Error("Failed to save batch results", "error", err)
}

fmt.Printf("\n📁 Results saved to: %s\n", outputDir)
fmt.Printf("\nResults saved to: %s\n", outputDir)

return nil
}
Expand Down Expand Up @@ -435,7 +435,7 @@ func runboileauList(cmd *cobra.Command, args []string) error {
}
}

fmt.Printf("💡 Usage:\n")
fmt.Printf("Usage:\n")
fmt.Printf(" shells boileau run [tool] --target [target]\n")
fmt.Printf(" shells boileau batch --target [target] --tools tool1,tool2\n")

Expand Down
2 changes: 1 addition & 1 deletion cmd/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ var configShowCmd = &cobra.Command{
// Show config file location
homeDir, _ := os.UserHomeDir()
configDir := filepath.Join(homeDir, ".shells")
fmt.Printf("\n📁 Config directory: %s\n", configDir)
fmt.Printf("\nConfig directory: %s\n", configDir)

return nil
},
Expand Down
8 changes: 4 additions & 4 deletions cmd/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,9 @@ func runDBStatus(cmd *cobra.Command, args []string) error {
fmt.Printf("Pending: %d migrations\n", status["pending_count"])

if status["is_up_to_date"].(bool) {
fmt.Println("\nStatus: Database is up to date")
fmt.Println("\nStatus: Database is up to date")
} else {
fmt.Println("\nStatus: ⚠️ Pending migrations need to be applied")
fmt.Println("\nStatus: Pending migrations need to be applied")
fmt.Println("\nRun 'shells db migrate' to apply pending migrations")
}

Expand All @@ -148,7 +148,7 @@ func runDBRollback(cmd *cobra.Command, args []string) error {
"version", version,
)

fmt.Printf("⚠️ WARNING: You are about to rollback migration version %d\n", version)
fmt.Printf("WARNING: You are about to rollback migration version %d\n", version)
fmt.Printf("This will undo changes made by this migration.\n")
fmt.Printf("\nPress Enter to continue or Ctrl+C to cancel...")
fmt.Scanln()
Expand Down Expand Up @@ -180,6 +180,6 @@ func runDBRollback(cmd *cobra.Command, args []string) error {
"version", version,
)

fmt.Printf("Migration %d rolled back successfully\n", version)
fmt.Printf("Migration %d rolled back successfully\n", version)
return nil
}
2 changes: 1 addition & 1 deletion cmd/discover.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ func outputDiscoveryText(session *discovery.DiscoverySession) error {
}
}

fmt.Printf("\n💡 Next Steps:\n")
fmt.Printf("\nNext Steps:\n")
fmt.Printf(" • Run security tests: shells %s\n", session.Target.Value)
fmt.Printf(" • View specific assets: shells discover %s --verbose\n", session.Target.Value)
if session.HighValueAssets > 0 {
Expand Down
6 changes: 3 additions & 3 deletions cmd/hunt.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ func runHuntCommand(cmd *cobra.Command, args []string) error {
if err := saveHuntReport(result, outputFile); err != nil {
log.Errorw("Failed to save report", "error", err, "file", outputFile)
} else {
fmt.Printf("\n✓ Detailed report saved to: %s\n", outputFile)
fmt.Printf("\nDetailed report saved to: %s\n", outputFile)
}
}

Expand Down Expand Up @@ -236,11 +236,11 @@ func displayHuntResults(result *orchestrator.BugBountyResult) {
log.Info("═══ Top Findings ═══", "component", "hunt")
displayTopFindings(result.Findings, 5)
} else {
color.New(color.FgGreen).Println("No vulnerabilities found")
color.New(color.FgGreen).Println("No vulnerabilities found")
}

fmt.Println()
fmt.Printf("Scan complete in %s\n", result.Duration.Round(time.Second))
fmt.Printf("Scan complete in %s\n", result.Duration.Round(time.Second))
fmt.Printf(" Scan ID: %s\n", result.ScanID)
}

Expand Down
32 changes: 16 additions & 16 deletions cmd/logic.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Examples:
fmt.Printf(" Token entropy analysis with %d samples\n", samples)
}
if config.TestHostHeader {
fmt.Printf("🌐 Host header injection testing enabled\n")
fmt.Printf("Host header injection testing enabled\n")
}
fmt.Println()

Expand Down Expand Up @@ -278,13 +278,13 @@ Examples:
VerboseOutput: verbose,
}

fmt.Printf("Testing race conditions for: %s\n", target)
fmt.Printf("👥 Concurrent workers: %d\n", workers)
fmt.Printf("Testing race conditions for: %s\n", target)
fmt.Printf("Concurrent workers: %d\n", workers)
if requestDelay > 0 {
fmt.Printf("⏱️ Request delay: %dms\n", requestDelay)
fmt.Printf("Request delay: %dms\n", requestDelay)
}
if testPayments {
fmt.Printf("💳 Payment race testing enabled\n")
fmt.Printf("Payment race testing enabled\n")
}
if testInventory {
fmt.Printf(" Inventory race testing enabled\n")
Expand Down Expand Up @@ -501,18 +501,18 @@ Examples:
VerboseOutput: verbose,
}

fmt.Printf("💳 Testing e-commerce payment logic for: %s\n", target)
fmt.Printf("Testing e-commerce payment logic for: %s\n", target)
if testAll || testCart {
fmt.Printf("🛒 Shopping cart testing enabled\n")
fmt.Printf("Shopping cart testing enabled\n")
}
if testAll || testPricing {
fmt.Printf("💰 Pricing logic testing enabled\n")
fmt.Printf("Pricing logic testing enabled\n")
}
if testAll || testCoupons {
fmt.Printf("🎫 Coupon logic testing enabled\n")
fmt.Printf("Coupon logic testing enabled\n")
}
if testAll || testRace {
fmt.Printf("Race condition testing enabled\n")
fmt.Printf("Race condition testing enabled\n")
}
fmt.Println()

Expand Down Expand Up @@ -546,7 +546,7 @@ Examples:
}
}

fmt.Printf("\n💳 E-commerce Security Assessment:\n")
fmt.Printf("\nE-commerce Security Assessment:\n")
fmt.Printf(" Total vulnerabilities: %d\n", len(results))
fmt.Printf(" Critical issues: %d\n", criticalCount)
fmt.Printf(" High-risk issues: %d\n", highCount)
Expand Down Expand Up @@ -839,7 +839,7 @@ Examples:
if err != nil {
return fmt.Errorf("failed to load findings: %w", err)
}
fmt.Printf("📁 Loaded %d vulnerabilities from %s\n", len(vulnerabilities), findingsFile)
fmt.Printf("Loaded %d vulnerabilities from %s\n", len(vulnerabilities), findingsFile)
} else {
// Run comprehensive testing
fmt.Printf(" Running comprehensive business logic tests for: %s\n", target)
Expand Down Expand Up @@ -945,7 +945,7 @@ func printRaceResultsJSON(results []logic.RaceConditionTest) {
}

func printRaceResultsTable(results []logic.RaceConditionTest, verbose bool) {
fmt.Printf("Race Condition Test Results\n")
fmt.Printf("Race Condition Test Results\n")
fmt.Printf("════════════════════════════\n\n")

for i, result := range results {
Expand Down Expand Up @@ -1042,7 +1042,7 @@ func printPaymentResultsJSON(results []logic.Vulnerability) {
}

func printPaymentResultsTable(results []logic.Vulnerability, verbose bool) {
fmt.Printf("💳 E-commerce Payment Logic Test Results\n")
fmt.Printf("E-commerce Payment Logic Test Results\n")
fmt.Printf("════════════════════════════════════════\n\n")

if len(results) == 0 {
Expand Down Expand Up @@ -1105,9 +1105,9 @@ func getSeverityEmoji(severity string) string {
case logic.SeverityHigh:
return ""
case logic.SeverityMedium:
return ""
return "!"
case logic.SeverityLow:
return "ℹ️"
return "i"
default:
return ""
}
Expand Down
18 changes: 9 additions & 9 deletions cmd/results.go
Original file line number Diff line number Diff line change
Expand Up @@ -539,7 +539,7 @@ func printSummary(summary *ScanSummary, days int) {
}

if len(summary.RecentScans) > 0 {
fmt.Printf("\\n🕐 Recent Scans:\\n")
fmt.Printf("\\nRecent Scans:\\n")
for _, scan := range summary.RecentScans {
status := ""
if scan.Status == types.ScanStatusFailed {
Expand Down Expand Up @@ -928,14 +928,14 @@ func showIdentityChains(sessionID, severityFilter string, verbose bool, output s
fmt.Println()

log.Info(" Chain Detection Features:", "component", "results")
log.Info(" Maps identity asset relationships", "component", "results")
log.Info(" Detects trust relationship vulnerabilities", "component", "results")
log.Info(" Identifies attack path chaining opportunities", "component", "results")
log.Info(" Analyzes cross-protocol vulnerabilities", "component", "results")
log.Info(" Provides proof-of-concept payloads", "component", "results")
log.Info(" - Maps identity asset relationships", "component", "results")
log.Info(" - Detects trust relationship vulnerabilities", "component", "results")
log.Info(" - Identifies attack path chaining opportunities", "component", "results")
log.Info(" - Analyzes cross-protocol vulnerabilities", "component", "results")
log.Info(" - Provides proof-of-concept payloads", "component", "results")
fmt.Println()

log.Info("💡 Next Steps:", "component", "results")
log.Info("Next Steps:", "component", "results")
log.Info(" 1. Run discovery with: shells [target]", "component", "results")
log.Info(" 2. Identity chains will be automatically analyzed", "component", "results")
log.Info(" 3. High-impact chains will be logged in real-time", "component", "results")
Expand Down Expand Up @@ -1331,7 +1331,7 @@ func displayScanDiff(scan1, scan2 *types.ScanRequest, newFindings, fixedFindings
}

if len(fixedFindings) > 0 {
fmt.Printf(" %d vulnerabilities fixed:\n", len(fixedFindings))
fmt.Printf(" %d vulnerabilities fixed:\n", len(fixedFindings))
for _, f := range fixedFindings {
severityColor := getSeverityColor(f.Severity)
fmt.Printf(" • [%s] %s\n", severityColor(string(f.Severity)), f.Title)
Expand Down Expand Up @@ -1382,7 +1382,7 @@ func displayChangesOverTime(target string, startTime, endTime time.Time, scanCou
}

if len(fixedFindings) > 0 {
fmt.Printf(" %d vulnerabilities fixed:\n", len(fixedFindings))
fmt.Printf(" %d vulnerabilities fixed:\n", len(fixedFindings))
for _, f := range fixedFindings {
severityColor := getSeverityColor(f.Severity)
fmt.Printf(" • [%s] %s\n", severityColor(string(f.Severity)), f.Title)
Expand Down
4 changes: 2 additions & 2 deletions cmd/resume.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ func resumeFromCheckpoint(cmd *cobra.Command, scanID string) error {
defer cancel()

// Resume the scan with checkpoint state
color.Green("Resuming scan from checkpoint\n")
color.Green("Resuming scan from checkpoint\n")
color.Cyan(" Completed: %v\n", state.CompletedTests)
color.Cyan(" Progress: %.0f%%\n\n", state.Progress)

Expand Down Expand Up @@ -316,7 +316,7 @@ func runOrchestratorWithResume(ctx context.Context, state *checkpoint.State, cmd
displayOrchestratorResults(result, config)

fmt.Println()
color.Green("Resumed scan completed successfully\n")
color.Green("Resumed scan completed successfully\n")

return nil
}
2 changes: 1 addition & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ COMMANDS:
// Give server time to start
time.Sleep(2 * time.Second)
} else {
color.Green("Web server already running\n\n")
color.Green("Web server already running\n\n")
}

// Initialize checkpoint manager
Expand Down
2 changes: 1 addition & 1 deletion cmd/scim.go
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ func printSCIMDiscoveryResults(findings []types.Finding, verbose bool) {

// printSCIMTestResults prints SCIM test results
func printSCIMTestResults(findings []types.Finding, verbose bool) {
fmt.Printf("🔒 SCIM Security Test Results\n")
fmt.Printf("SCIM Security Test Results\n")
fmt.Printf("═══════════════════════════════════\n\n")

if len(findings) == 0 {
Expand Down
4 changes: 2 additions & 2 deletions cmd/self.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ func runUpdate(cmd *cobra.Command, args []string) error {
"component", "self_update",
"error", err,
)
fmt.Printf("⚠️ Warning: Database migration failed: %v\n", err)
fmt.Printf("Warning: Database migration failed: %v\n", err)
fmt.Printf(" You can run migrations manually with: shells db migrate\n")
} else {
logger.Infow("Database migrations completed successfully",
Expand All @@ -156,7 +156,7 @@ func runUpdate(cmd *cobra.Command, args []string) error {
"component", "self_update",
"error", err,
)
fmt.Printf("⚠️ Warning: Nuclei installation failed: %v\n", err)
fmt.Printf("Warning: Nuclei installation failed: %v\n", err)
fmt.Printf(" Nuclei scanning will be disabled until installed\n")
fmt.Printf(" You can install manually with: %s/scripts/install-nuclei.sh\n", updateSourceDir)
} else {
Expand Down
4 changes: 2 additions & 2 deletions cmd/self_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func init() {

func runSelfUpdate(cmd *cobra.Command, args []string) error {
fmt.Println()
fmt.Println("⚠️ WARNING: This command is DEPRECATED")
fmt.Println("WARNING: This command is DEPRECATED")
fmt.Println(" Use 'shells self update' instead for:")
fmt.Println(" - Better backup management")
fmt.Println(" - Automatic database migrations")
Expand Down Expand Up @@ -162,7 +162,7 @@ func runSelfUpdate(cmd *cobra.Command, args []string) error {
"component", "self_update",
"error", err,
)
fmt.Printf("⚠️ Warning: Database migration failed: %v\n", err)
fmt.Printf("Warning: Database migration failed: %v\n", err)
fmt.Printf(" You can run migrations manually with: shells db migrate\n")
} else {
log.Info(" Database migrations completed successfully!", "component", "self_update")
Expand Down
Loading
Loading