@namch/agent-assistant 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +83 -539
  2. package/agents/backend-engineer.md +0 -8
  3. package/agents/brainstormer.md +0 -6
  4. package/agents/business-analyst.md +0 -5
  5. package/agents/database-architect.md +0 -6
  6. package/agents/debugger.md +0 -6
  7. package/agents/designer.md +0 -5
  8. package/agents/devops-engineer.md +0 -7
  9. package/agents/docs-manager.md +0 -6
  10. package/agents/frontend-engineer.md +0 -7
  11. package/agents/game-engineer.md +0 -7
  12. package/agents/mobile-engineer.md +0 -7
  13. package/agents/performance-engineer.md +0 -7
  14. package/agents/planner.md +0 -6
  15. package/agents/project-manager.md +0 -6
  16. package/agents/researcher.md +0 -5
  17. package/agents/reviewer.md +0 -6
  18. package/agents/scouter.md +0 -6
  19. package/agents/security-engineer.md +0 -7
  20. package/agents/tech-lead.md +0 -7
  21. package/agents/tester.md +0 -5
  22. package/cli/README.md +19 -10
  23. package/documents/business/business-features.md +1 -1
  24. package/documents/business/business-prd.md +4 -4
  25. package/documents/knowledge-architecture.md +1 -1
  26. package/documents/knowledge-domain.md +1 -1
  27. package/documents/knowledge-overview.md +14 -29
  28. package/documents/knowledge-source-base.md +14 -14
  29. package/package.json +1 -1
  30. package/rules/QUICK-REFERENCE.md +4 -1
  31. package/rules/SKILL-DISCOVERY.md +37 -14
  32. package/skills/active-directory-attacks/SKILL.md +383 -0
  33. package/skills/active-directory-attacks/references/advanced-attacks.md +382 -0
  34. package/skills/agent-evaluation/SKILL.md +64 -0
  35. package/skills/agent-memory-mcp/SKILL.md +82 -0
  36. package/skills/agent-memory-systems/SKILL.md +67 -0
  37. package/skills/agent-tool-builder/SKILL.md +53 -0
  38. package/skills/ai-agents-architect/SKILL.md +90 -0
  39. package/skills/ai-product/SKILL.md +54 -0
  40. package/skills/ai-wrapper-product/SKILL.md +273 -0
  41. package/skills/api-documentation-generator/SKILL.md +484 -0
  42. package/skills/api-fuzzing-bug-bounty/SKILL.md +433 -0
  43. package/skills/api-security-best-practices/SKILL.md +907 -0
  44. package/skills/autonomous-agent-patterns/SKILL.md +761 -0
  45. package/skills/autonomous-agents/SKILL.md +68 -0
  46. package/skills/aws-penetration-testing/SKILL.md +405 -0
  47. package/skills/aws-penetration-testing/references/advanced-aws-pentesting.md +469 -0
  48. package/skills/azure-functions/SKILL.md +42 -0
  49. package/skills/backend-dev-guidelines/SKILL.md +342 -0
  50. package/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  51. package/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  52. package/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  53. package/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  54. package/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  55. package/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  56. package/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  57. package/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  58. package/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  59. package/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  60. package/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  61. package/skills/broken-authentication/SKILL.md +476 -0
  62. package/skills/bullmq-specialist/SKILL.md +57 -0
  63. package/skills/bun-development/SKILL.md +691 -0
  64. package/skills/burp-suite-testing/SKILL.md +380 -0
  65. package/skills/cloud-penetration-testing/SKILL.md +501 -0
  66. package/skills/cloud-penetration-testing/references/advanced-cloud-scripts.md +318 -0
  67. package/skills/computer-use-agents/SKILL.md +315 -0
  68. package/skills/content-creator/SKILL.md +248 -0
  69. package/skills/content-creator/assets/content_calendar_template.md +99 -0
  70. package/skills/content-creator/references/brand_guidelines.md +199 -0
  71. package/skills/content-creator/references/content_frameworks.md +534 -0
  72. package/skills/content-creator/references/social_media_optimization.md +317 -0
  73. package/skills/content-creator/scripts/brand_voice_analyzer.py +185 -0
  74. package/skills/content-creator/scripts/seo_optimizer.py +419 -0
  75. package/skills/context-window-management/SKILL.md +53 -0
  76. package/skills/conversation-memory/SKILL.md +61 -0
  77. package/skills/copy-editing/SKILL.md +439 -0
  78. package/skills/copywriting/SKILL.md +225 -0
  79. package/skills/crewai/SKILL.md +243 -0
  80. package/skills/discord-bot-architect/SKILL.md +277 -0
  81. package/skills/dispatching-parallel-agents/SKILL.md +180 -0
  82. package/skills/email-sequence/SKILL.md +925 -0
  83. package/skills/email-systems/SKILL.md +54 -0
  84. package/skills/ethical-hacking-methodology/SKILL.md +466 -0
  85. package/skills/executing-plans/SKILL.md +76 -0
  86. package/skills/file-path-traversal/SKILL.md +486 -0
  87. package/skills/finishing-a-development-branch/SKILL.md +200 -0
  88. package/skills/frontend-dev-guidelines/SKILL.md +359 -0
  89. package/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  90. package/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  91. package/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  92. package/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  93. package/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  94. package/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  95. package/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  96. package/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  97. package/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  98. package/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  99. package/skills/gcp-cloud-run/SKILL.md +288 -0
  100. package/skills/git-pushing/SKILL.md +33 -0
  101. package/skills/git-pushing/scripts/smart_commit.sh +19 -0
  102. package/skills/github-workflow-automation/SKILL.md +846 -0
  103. package/skills/html-injection-testing/SKILL.md +498 -0
  104. package/skills/idor-testing/SKILL.md +442 -0
  105. package/skills/inngest/SKILL.md +55 -0
  106. package/skills/javascript-mastery/SKILL.md +645 -0
  107. package/skills/kaizen/SKILL.md +730 -0
  108. package/skills/langfuse/SKILL.md +238 -0
  109. package/skills/langgraph/SKILL.md +287 -0
  110. package/skills/linux-privilege-escalation/SKILL.md +504 -0
  111. package/skills/llm-app-patterns/SKILL.md +760 -0
  112. package/skills/metasploit-framework/SKILL.md +478 -0
  113. package/skills/multi-agent-brainstorming/SKILL.md +256 -0
  114. package/skills/neon-postgres/SKILL.md +56 -0
  115. package/skills/nextjs-supabase-auth/SKILL.md +56 -0
  116. package/skills/nosql-expert/SKILL.md +111 -0
  117. package/skills/pentest-checklist/SKILL.md +334 -0
  118. package/skills/pentest-commands/SKILL.md +438 -0
  119. package/skills/plaid-fintech/SKILL.md +50 -0
  120. package/skills/planning-with-files/SKILL.md +211 -0
  121. package/skills/planning-with-files/examples.md +202 -0
  122. package/skills/planning-with-files/reference.md +218 -0
  123. package/skills/planning-with-files/scripts/check-complete.sh +44 -0
  124. package/skills/planning-with-files/scripts/init-session.sh +120 -0
  125. package/skills/planning-with-files/templates/findings.md +95 -0
  126. package/skills/planning-with-files/templates/progress.md +114 -0
  127. package/skills/planning-with-files/templates/task_plan.md +132 -0
  128. package/skills/privilege-escalation-methods/SKILL.md +333 -0
  129. package/skills/production-code-audit/SKILL.md +540 -0
  130. package/skills/prompt-caching/SKILL.md +61 -0
  131. package/skills/prompt-engineering/SKILL.md +171 -0
  132. package/skills/prompt-library/SKILL.md +322 -0
  133. package/skills/rag-engineer/SKILL.md +90 -0
  134. package/skills/rag-implementation/SKILL.md +63 -0
  135. package/skills/react-ui-patterns/SKILL.md +289 -0
  136. package/skills/red-team-tools/SKILL.md +310 -0
  137. package/skills/scanning-tools/SKILL.md +589 -0
  138. package/skills/shodan-reconnaissance/SKILL.md +503 -0
  139. package/skills/slack-bot-builder/SKILL.md +264 -0
  140. package/skills/smtp-penetration-testing/SKILL.md +500 -0
  141. package/skills/social-content/SKILL.md +807 -0
  142. package/skills/software-architecture/SKILL.md +75 -0
  143. package/skills/sql-injection-testing/SKILL.md +448 -0
  144. package/skills/sqlmap-database-pentesting/SKILL.md +400 -0
  145. package/skills/ssh-penetration-testing/SKILL.md +488 -0
  146. package/skills/stripe-integration/SKILL.md +69 -0
  147. package/skills/subagent-driven-development/SKILL.md +240 -0
  148. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  149. package/skills/subagent-driven-development/implementer-prompt.md +78 -0
  150. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  151. package/skills/tavily-web/SKILL.md +36 -0
  152. package/skills/telegram-bot-builder/SKILL.md +254 -0
  153. package/skills/test-driven-development/SKILL.md +371 -0
  154. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  155. package/skills/test-fixing/SKILL.md +119 -0
  156. package/skills/top-web-vulnerabilities/SKILL.md +543 -0
  157. package/skills/trigger-dev/SKILL.md +67 -0
  158. package/skills/twilio-communications/SKILL.md +295 -0
  159. package/skills/upstash-qstash/SKILL.md +68 -0
  160. package/skills/verification-before-completion/SKILL.md +139 -0
  161. package/skills/voice-agents/SKILL.md +68 -0
  162. package/skills/voice-ai-development/SKILL.md +302 -0
  163. package/skills/windows-privilege-escalation/SKILL.md +496 -0
  164. package/skills/wireshark-analysis/SKILL.md +497 -0
  165. package/skills/wordpress-penetration-testing/SKILL.md +485 -0
  166. package/skills/workflow-automation/SKILL.md +68 -0
  167. package/skills/xss-html-injection/SKILL.md +499 -0
  168. package/skills/zapier-make-patterns/SKILL.md +67 -0
@@ -0,0 +1,289 @@
1
+ ---
2
+ name: react-ui-patterns
3
+ description: Modern React UI patterns for loading states, error handling, and data fetching. Use when building UI components, handling async data, or managing UI states.
4
+ ---
5
+
6
+ # React UI Patterns
7
+
8
+ ## Core Principles
9
+
10
+ 1. **Never show stale UI** - Loading spinners only when actually loading
11
+ 2. **Always surface errors** - Users must know when something fails
12
+ 3. **Optimistic updates** - Make the UI feel instant
13
+ 4. **Progressive disclosure** - Show content as it becomes available
14
+ 5. **Graceful degradation** - Partial data is better than no data
15
+
16
+ ## Loading State Patterns
17
+
18
+ ### The Golden Rule
19
+
20
+ **Show loading indicator ONLY when there's no data to display.**
21
+
22
+ ```typescript
23
+ // CORRECT - Only show loading when no data exists
24
+ const { data, loading, error } = useGetItemsQuery();
25
+
26
+ if (error) return <ErrorState error={error} onRetry={refetch} />;
27
+ if (loading && !data) return <LoadingState />;
28
+ if (!data?.items.length) return <EmptyState />;
29
+
30
+ return <ItemList items={data.items} />;
31
+ ```
32
+
33
+ ```typescript
34
+ // WRONG - Shows spinner even when we have cached data
35
+ if (loading) return <LoadingState />; // Flashes on refetch!
36
+ ```
37
+
38
+ ### Loading State Decision Tree
39
+
40
+ ```
41
+ Is there an error?
42
+ → Yes: Show error state with retry option
43
+ → No: Continue
44
+
45
+ Is it loading AND we have no data?
46
+ → Yes: Show loading indicator (spinner/skeleton)
47
+ → No: Continue
48
+
49
+ Do we have data?
50
+ → Yes, with items: Show the data
51
+ → Yes, but empty: Show empty state
52
+ → No: Show loading (fallback)
53
+ ```
54
+
55
+ ### Skeleton vs Spinner
56
+
57
+ | Use Skeleton When | Use Spinner When |
58
+ |-------------------|------------------|
59
+ | Known content shape | Unknown content shape |
60
+ | List/card layouts | Modal actions |
61
+ | Initial page load | Button submissions |
62
+ | Content placeholders | Inline operations |
63
+
64
+ ## Error Handling Patterns
65
+
66
+ ### The Error Handling Hierarchy
67
+
68
+ ```
69
+ 1. Inline error (field-level) → Form validation errors
70
+ 2. Toast notification → Recoverable errors, user can retry
71
+ 3. Error banner → Page-level errors, data still partially usable
72
+ 4. Full error screen → Unrecoverable, needs user action
73
+ ```
74
+
75
+ ### Always Show Errors
76
+
77
+ **CRITICAL: Never swallow errors silently.**
78
+
79
+ ```typescript
80
+ // CORRECT - Error always surfaced to user
81
+ const [createItem, { loading }] = useCreateItemMutation({
82
+ onCompleted: () => {
83
+ toast.success({ title: 'Item created' });
84
+ },
85
+ onError: (error) => {
86
+ console.error('createItem failed:', error);
87
+ toast.error({ title: 'Failed to create item' });
88
+ },
89
+ });
90
+
91
+ // WRONG - Error silently caught, user has no idea
92
+ const [createItem] = useCreateItemMutation({
93
+ onError: (error) => {
94
+ console.error(error); // User sees nothing!
95
+ },
96
+ });
97
+ ```
98
+
99
+ ### Error State Component Pattern
100
+
101
+ ```typescript
102
+ interface ErrorStateProps {
103
+ error: Error;
104
+ onRetry?: () => void;
105
+ title?: string;
106
+ }
107
+
108
+ const ErrorState = ({ error, onRetry, title }: ErrorStateProps) => (
109
+ <div className="error-state">
110
+ <Icon name="exclamation-circle" />
111
+ <h3>{title ?? 'Something went wrong'}</h3>
112
+ <p>{error.message}</p>
113
+ {onRetry && (
114
+ <Button onClick={onRetry}>Try Again</Button>
115
+ )}
116
+ </div>
117
+ );
118
+ ```
119
+
120
+ ## Button State Patterns
121
+
122
+ ### Button Loading State
123
+
124
+ ```tsx
125
+ <Button
126
+ onClick={handleSubmit}
127
+ isLoading={isSubmitting}
128
+ disabled={!isValid || isSubmitting}
129
+ >
130
+ Submit
131
+ </Button>
132
+ ```
133
+
134
+ ### Disable During Operations
135
+
136
+ **CRITICAL: Always disable triggers during async operations.**
137
+
138
+ ```tsx
139
+ // CORRECT - Button disabled while loading
140
+ <Button
141
+ disabled={isSubmitting}
142
+ isLoading={isSubmitting}
143
+ onClick={handleSubmit}
144
+ >
145
+ Submit
146
+ </Button>
147
+
148
+ // WRONG - User can tap multiple times
149
+ <Button onClick={handleSubmit}>
150
+ {isSubmitting ? 'Submitting...' : 'Submit'}
151
+ </Button>
152
+ ```
153
+
154
+ ## Empty States
155
+
156
+ ### Empty State Requirements
157
+
158
+ Every list/collection MUST have an empty state:
159
+
160
+ ```tsx
161
+ // WRONG - No empty state
162
+ return <FlatList data={items} />;
163
+
164
+ // CORRECT - Explicit empty state
165
+ return (
166
+ <FlatList
167
+ data={items}
168
+ ListEmptyComponent={<EmptyState />}
169
+ />
170
+ );
171
+ ```
172
+
173
+ ### Contextual Empty States
174
+
175
+ ```tsx
176
+ // Search with no results
177
+ <EmptyState
178
+ icon="search"
179
+ title="No results found"
180
+ description="Try different search terms"
181
+ />
182
+
183
+ // List with no items yet
184
+ <EmptyState
185
+ icon="plus-circle"
186
+ title="No items yet"
187
+ description="Create your first item"
188
+ action={{ label: 'Create Item', onClick: handleCreate }}
189
+ />
190
+ ```
191
+
192
+ ## Form Submission Pattern
193
+
194
+ ```tsx
195
+ const MyForm = () => {
196
+ const [submit, { loading }] = useSubmitMutation({
197
+ onCompleted: handleSuccess,
198
+ onError: handleError,
199
+ });
200
+
201
+ const handleSubmit = async () => {
202
+ if (!isValid) {
203
+ toast.error({ title: 'Please fix errors' });
204
+ return;
205
+ }
206
+ await submit({ variables: { input: values } });
207
+ };
208
+
209
+ return (
210
+ <form>
211
+ <Input
212
+ value={values.name}
213
+ onChange={handleChange('name')}
214
+ error={touched.name ? errors.name : undefined}
215
+ />
216
+ <Button
217
+ type="submit"
218
+ onClick={handleSubmit}
219
+ disabled={!isValid || loading}
220
+ isLoading={loading}
221
+ >
222
+ Submit
223
+ </Button>
224
+ </form>
225
+ );
226
+ };
227
+ ```
228
+
229
+ ## Anti-Patterns
230
+
231
+ ### Loading States
232
+
233
+ ```typescript
234
+ // WRONG - Spinner when data exists (causes flash)
235
+ if (loading) return <Spinner />;
236
+
237
+ // CORRECT - Only show loading without data
238
+ if (loading && !data) return <Spinner />;
239
+ ```
240
+
241
+ ### Error Handling
242
+
243
+ ```typescript
244
+ // WRONG - Error swallowed
245
+ try {
246
+ await mutation();
247
+ } catch (e) {
248
+ console.log(e); // User has no idea!
249
+ }
250
+
251
+ // CORRECT - Error surfaced
252
+ onError: (error) => {
253
+ console.error('operation failed:', error);
254
+ toast.error({ title: 'Operation failed' });
255
+ }
256
+ ```
257
+
258
+ ### Button States
259
+
260
+ ```typescript
261
+ // WRONG - Button not disabled during submission
262
+ <Button onClick={submit}>Submit</Button>
263
+
264
+ // CORRECT - Disabled and shows loading
265
+ <Button onClick={submit} disabled={loading} isLoading={loading}>
266
+ Submit
267
+ </Button>
268
+ ```
269
+
270
+ ## Checklist
271
+
272
+ Before completing any UI component:
273
+
274
+ **UI States:**
275
+ - [ ] Error state handled and shown to user
276
+ - [ ] Loading state shown only when no data exists
277
+ - [ ] Empty state provided for collections
278
+ - [ ] Buttons disabled during async operations
279
+ - [ ] Buttons show loading indicator when appropriate
280
+
281
+ **Data & Mutations:**
282
+ - [ ] Mutations have onError handler
283
+ - [ ] All user actions have feedback (toast/visual)
284
+
285
+ ## Integration with Other Skills
286
+
287
+ - **graphql-schema**: Use mutation patterns with proper error handling
288
+ - **testing-patterns**: Test all UI states (loading, error, empty, success)
289
+ - **formik-patterns**: Apply form submission patterns
@@ -0,0 +1,310 @@
1
+ ---
2
+ name: Red Team Tools and Methodology
3
+ description: This skill should be used when the user asks to "follow red team methodology", "perform bug bounty hunting", "automate reconnaissance", "hunt for XSS vulnerabilities", "enumerate subdomains", or needs security researcher techniques and tool configurations from top bug bounty hunters.
4
+ metadata:
5
+ author: zebbern
6
+ version: "1.1"
7
+ ---
8
+
9
+ # Red Team Tools and Methodology
10
+
11
+ ## Purpose
12
+
13
+ Implement proven methodologies and tool workflows from top security researchers for effective reconnaissance, vulnerability discovery, and bug bounty hunting. Automate common tasks while maintaining thorough coverage of attack surfaces.
14
+
15
+ ## Inputs/Prerequisites
16
+
17
+ - Target scope definition (domains, IP ranges, applications)
18
+ - Linux-based attack machine (Kali, Ubuntu)
19
+ - Bug bounty program rules and scope
20
+ - Tool dependencies installed (Go, Python, Ruby)
21
+ - API keys for various services (Shodan, Censys, etc.)
22
+
23
+ ## Outputs/Deliverables
24
+
25
+ - Comprehensive subdomain enumeration
26
+ - Live host discovery and technology fingerprinting
27
+ - Identified vulnerabilities and attack vectors
28
+ - Automated recon pipeline outputs
29
+ - Documented findings for reporting
30
+
31
+ ## Core Workflow
32
+
33
+ ### 1. Project Tracking and Acquisitions
34
+
35
+ Set up reconnaissance tracking:
36
+
37
+ ```bash
38
+ # Create project structure
39
+ mkdir -p target/{recon,vulns,reports}
40
+ cd target
41
+
42
+ # Find acquisitions using Crunchbase
43
+ # Search manually for subsidiary companies
44
+
45
+ # Get ASN for targets
46
+ amass intel -org "Target Company" -src
47
+
48
+ # Alternative ASN lookup
49
+ curl -s "https://bgp.he.net/search?search=targetcompany&commit=Search"
50
+ ```
51
+
52
+ ### 2. Subdomain Enumeration
53
+
54
+ Comprehensive subdomain discovery:
55
+
56
+ ```bash
57
+ # Create wildcards file
58
+ echo "target.com" > wildcards
59
+
60
+ # Run Amass passively
61
+ amass enum -passive -d target.com -src -o amass_passive.txt
62
+
63
+ # Run Amass actively
64
+ amass enum -active -d target.com -src -o amass_active.txt
65
+
66
+ # Use Subfinder
67
+ subfinder -d target.com -silent -o subfinder.txt
68
+
69
+ # Asset discovery
70
+ cat wildcards | assetfinder --subs-only | anew domains.txt
71
+
72
+ # Alternative subdomain tools
73
+ findomain -t target.com -o
74
+
75
+ # Generate permutations with dnsgen
76
+ cat domains.txt | dnsgen - | httprobe > permuted.txt
77
+
78
+ # Combine all sources
79
+ cat amass_*.txt subfinder.txt | sort -u > all_subs.txt
80
+ ```
81
+
82
+ ### 3. Live Host Discovery
83
+
84
+ Identify responding hosts:
85
+
86
+ ```bash
87
+ # Check which hosts are live with httprobe
88
+ cat domains.txt | httprobe -c 80 --prefer-https | anew hosts.txt
89
+
90
+ # Use httpx for more details
91
+ cat domains.txt | httpx -title -tech-detect -status-code -o live_hosts.txt
92
+
93
+ # Alternative with massdns
94
+ massdns -r resolvers.txt -t A -o S domains.txt > resolved.txt
95
+ ```
96
+
97
+ ### 4. Technology Fingerprinting
98
+
99
+ Identify technologies for targeted attacks:
100
+
101
+ ```bash
102
+ # Whatweb scanning
103
+ whatweb -i hosts.txt -a 3 -v > tech_stack.txt
104
+
105
+ # Nuclei technology detection
106
+ nuclei -l hosts.txt -t technologies/ -o tech_nuclei.txt
107
+
108
+ # Wappalyzer (if available)
109
+ # Browser extension for manual review
110
+ ```
111
+
112
+ ### 5. Content Discovery
113
+
114
+ Find hidden endpoints and files:
115
+
116
+ ```bash
117
+ # Directory bruteforce with ffuf
118
+ ffuf -ac -v -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
119
+
120
+ # Historical URLs from Wayback
121
+ waybackurls target.com | tee wayback.txt
122
+
123
+ # Find all URLs with gau
124
+ gau target.com | tee all_urls.txt
125
+
126
+ # Parameter discovery
127
+ cat all_urls.txt | grep "=" | sort -u > params.txt
128
+
129
+ # Generate custom wordlist from historical data
130
+ cat all_urls.txt | unfurl paths | sort -u > custom_wordlist.txt
131
+ ```
132
+
133
+ ### 6. Application Analysis (Jason Haddix Method)
134
+
135
+ **Heat Map Priority Areas:**
136
+
137
+ 1. **File Uploads** - Test for injection, XXE, SSRF, shell upload
138
+ 2. **Content Types** - Filter Burp for multipart forms
139
+ 3. **APIs** - Look for hidden methods, lack of auth
140
+ 4. **Profile Sections** - Stored XSS, custom fields
141
+ 5. **Integrations** - SSRF through third parties
142
+ 6. **Error Pages** - Exotic injection points
143
+
144
+ **Analysis Questions:**
145
+ - How does the app pass data? (Params, API, Hybrid)
146
+ - Where does the app talk about users? (UID, UUID endpoints)
147
+ - Does the site have multi-tenancy or user levels?
148
+ - Does it have a unique threat model?
149
+ - How does the site handle XSS/CSRF?
150
+ - Has the site had past writeups/exploits?
151
+
152
+ ### 7. Automated XSS Hunting
153
+
154
+ ```bash
155
+ # ParamSpider for parameter extraction
156
+ python3 paramspider.py --domain target.com -o params.txt
157
+
158
+ # Filter with Gxss
159
+ cat params.txt | Gxss -p test
160
+
161
+ # Dalfox for XSS testing
162
+ cat params.txt | dalfox pipe --mining-dict params.txt -o xss_results.txt
163
+
164
+ # Alternative workflow
165
+ waybackurls target.com | grep "=" | qsreplace '"><script>alert(1)</script>' | while read url; do
166
+ curl -s "$url" | grep -q 'alert(1)' && echo "$url"
167
+ done > potential_xss.txt
168
+ ```
169
+
170
+ ### 8. Vulnerability Scanning
171
+
172
+ ```bash
173
+ # Nuclei comprehensive scan
174
+ nuclei -l hosts.txt -t ~/nuclei-templates/ -o nuclei_results.txt
175
+
176
+ # Check for common CVEs
177
+ nuclei -l hosts.txt -t cves/ -o cve_results.txt
178
+
179
+ # Web vulnerabilities
180
+ nuclei -l hosts.txt -t vulnerabilities/ -o vuln_results.txt
181
+ ```
182
+
183
+ ### 9. API Enumeration
184
+
185
+ **Wordlists for API fuzzing:**
186
+
187
+ ```bash
188
+ # Enumerate API endpoints
189
+ ffuf -u https://target.com/api/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt
190
+
191
+ # Test API versions
192
+ ffuf -u https://target.com/api/v1/FUZZ -w api_wordlist.txt
193
+ ffuf -u https://target.com/api/v2/FUZZ -w api_wordlist.txt
194
+
195
+ # Check for hidden methods
196
+ for method in GET POST PUT DELETE PATCH; do
197
+ curl -X $method https://target.com/api/users -v
198
+ done
199
+ ```
200
+
201
+ ### 10. Automated Recon Script
202
+
203
+ ```bash
204
+ #!/bin/bash
205
+ domain=$1
206
+
207
+ if [[ -z $domain ]]; then
208
+ echo "Usage: ./recon.sh <domain>"
209
+ exit 1
210
+ fi
211
+
212
+ mkdir -p "$domain"
213
+
214
+ # Subdomain enumeration
215
+ echo "[*] Enumerating subdomains..."
216
+ subfinder -d "$domain" -silent > "$domain/subs.txt"
217
+
218
+ # Live host discovery
219
+ echo "[*] Finding live hosts..."
220
+ cat "$domain/subs.txt" | httpx -title -tech-detect -status-code > "$domain/live.txt"
221
+
222
+ # URL collection
223
+ echo "[*] Collecting URLs..."
224
+ cat "$domain/live.txt" | waybackurls > "$domain/urls.txt"
225
+
226
+ # Nuclei scanning
227
+ echo "[*] Running Nuclei..."
228
+ nuclei -l "$domain/live.txt" -o "$domain/nuclei.txt"
229
+
230
+ echo "[+] Recon complete!"
231
+ ```
232
+
233
+ ## Quick Reference
234
+
235
+ ### Essential Tools
236
+
237
+ | Tool | Purpose |
238
+ |------|---------|
239
+ | Amass | Subdomain enumeration |
240
+ | Subfinder | Fast subdomain discovery |
241
+ | httpx/httprobe | Live host detection |
242
+ | ffuf | Content discovery |
243
+ | Nuclei | Vulnerability scanning |
244
+ | Burp Suite | Manual testing |
245
+ | Dalfox | XSS automation |
246
+ | waybackurls | Historical URL mining |
247
+
248
+ ### Key API Endpoints to Check
249
+
250
+ ```
251
+ /api/v1/users
252
+ /api/v1/admin
253
+ /api/v1/profile
254
+ /api/users/me
255
+ /api/config
256
+ /api/debug
257
+ /api/swagger
258
+ /api/graphql
259
+ ```
260
+
261
+ ### XSS Filter Testing
262
+
263
+ ```html
264
+ <!-- Test encoding handling -->
265
+ <h1><img><table>
266
+ <script>
267
+ %3Cscript%3E
268
+ %253Cscript%253E
269
+ %26lt;script%26gt;
270
+ ```
271
+
272
+ ## Constraints
273
+
274
+ - Respect program scope boundaries
275
+ - Avoid DoS or fuzzing on production without permission
276
+ - Rate limit requests to avoid blocking
277
+ - Some tools may generate false positives
278
+ - API keys required for full functionality of some tools
279
+
280
+ ## Examples
281
+
282
+ ### Example 1: Quick Subdomain Recon
283
+
284
+ ```bash
285
+ subfinder -d target.com | httpx -title | tee results.txt
286
+ ```
287
+
288
+ ### Example 2: XSS Hunting Pipeline
289
+
290
+ ```bash
291
+ waybackurls target.com | grep "=" | qsreplace "test" | httpx -silent | dalfox pipe
292
+ ```
293
+
294
+ ### Example 3: Comprehensive Scan
295
+
296
+ ```bash
297
+ # Full recon chain
298
+ amass enum -d target.com | httpx | nuclei -t ~/nuclei-templates/
299
+ ```
300
+
301
+ ## Troubleshooting
302
+
303
+ | Issue | Solution |
304
+ |-------|----------|
305
+ | Rate limited | Use proxy rotation, reduce concurrency |
306
+ | Too many results | Focus on specific technology stacks |
307
+ | False positives | Manually verify findings before reporting |
308
+ | Missing subdomains | Combine multiple enumeration sources |
309
+ | API key errors | Verify keys in config files |
310
+ | Tools not found | Install Go tools with `go install` |