Use when monetize bug bounty findings through writeups, tools, and consulting.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add oyi77/1ai-skills --skill writeup-cash --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Writeup Cash?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/oyi77-writeup-cash)More formats (shields.io, HTML) on the badges page.
---
name: writeup-cash
description: Use when monetize bug bounty findings through writeups, tools, and consulting.
Use when turning security research into income streams, writing paid writeups, or
building a security brand.
domain: cybersecurity
author: oyi77
license: Apache-2.0
subdomain: general-cybersecurity
tags:
- cash
- cybersecurity
- money
- security
- threat-defense
- writeup
version: 1.0.0
category: cybersecurity
---
# Writeup Cash
## Overview
Cybersecurity skill for writeup cash. Follows industry best practices and security standards.
Turn your bug bounty findings, vulnerability research, and security tooling into multiple income
streams: paid writeups on platforms like PentesterLand and Infosec Writeups, commercial security
tools sold on GitHub Marketplace or Gumroad, and consulting upsells to organizations that read
your published research.
## Money-Making Overview
**Buyer personas:** Bug bounty hunters with validated findings but no monetization pipeline;
penetration testers who want to build a public brand; security researchers sitting on unpublished
tooling.
**Three revenue tiers:**
| Tier | Product | Price Range | Time to First Dollar |
|------|---------|-------------|---------------------|
| Writeups | Published technical writeups on paid platforms (PentesterLand, InfoSec Writeups, personal blog with ad/affiliate revenue) | $100-$1,000 / writeup | 2-7 days |
| Tools | CLI tools, PoC scripts, BurpSuite extensions, automation frameworks | $500-$5,000 / tool | 7-30 days |
| Consulting | Brand-driven security consulting, code review, pentest subcontracting | $2,000-$10,000 / engagement | 30-90 days |
**Stacking path:** Publish 1 writeup/week on paid platforms → bundle 3-5 related PoCs into a
$497 tool → use published work as portfolio to land $5K retainer clients.
## When to Use
**Trigger phrases:**
- "writeup cash"
- "Have accepted bug bounty reports to share"
- "Want to build passive income from security research"
- "Building a personal brand in security"
- Have accepted bug bounty reports to share
- Want to build passive income from security research
- Building a personal brand in security
- Creating content for paid platforms
- Developing and selling security tools
## When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
- When the finding is already publicly documented by someone else (commoditized)
- When the vulnerability disclosure agreement prohibits publication (always verify NDAs/VDP terms first)
## Prerequisites
- Access to relevant log sources and security tools
- Understanding of cash fundamentals
- Appropriate permissions for data access and tool operation
- A validated, non-disclosed vulnerability finding (CVE, bug bounty report, or pentest finding)
- A publisher account on at least one paid platform (Medium Partner Program, PentesterLand, or self-hosted blog with Stripe)
## First Action in 60 Minutes
Run this script to convert a raw finding into a publishable writeup:
```python
#!/usr/bin/env python3
"""writeupify.py — Turn a bug bounty finding into a publication-ready writeup."""
import sys, json, datetime, re
TEMPLATE = """---
title: "{title}"
published: {published}
date: {date}
tags: [{tags_str}]
canonical_url: ""
seo_keywords: [{seo_str}]
---
# {title}
**Vulnerability Type:** {vuln_type}
**Target:** {target}
**Severity:** {severity} (CVSS: {cvss})
**Reported:** {reported_date}
**Bounty:** ${bounty}
## TL;DR
{tldr}
## Background
{background}
## Reproduction Steps
1. {step1}
2. {step2}
3. {step3}
## Impact
{impact}
## Remediation
{remediation}
## Timeline
- **Discovery:** {disc_date}
- **Reported:** {rep_date}
- **Triaged:** {tri_date}
- **Bounty Paid:** {pay_date}
- **Disclosure:** {disc_date}
## References
- {ref1}
- {ref2}
"""
def prompt_finding():
print("=== Writeupify — Interactive Finding to Writeup ===", file=sys.stderr)
fields = {}
prompts = [
("title", "Title"),
("vuln_type", "Vulnerability Type (e.g. SQLi, XSS, IDOR)"),
("target", "Target Application / Program"),
("severity", "Severity (Critical/High/Medium/Low)"),
("cvss", "CVSS Score (e.g. 7.5)"),
("bounty", "Bounty Amount (USD)"),
("tldr", "TL;DR (one-sentence summary)"),
("background", "Background (2-3 sentences on the component)"),
("step1", "Step 1 of reproduction"),
("step2", "Step 2 of reproduction"),
("step3", "Step 3 of reproduction"),
("impact", "Impact description"),
("remediation", "Remediation recommendation"),
("disc_date", "Discovery date (YYYY-MM-DD)"),
("rep_date", "Report date (YYYY-MM-DD)"),
("tri_date", "Triage date (YYYY-MM-DD)"),
("pay_date", "Bounty paid date (YYYY-MM-DD)"),
("pub_date", "Publication date (YYYY-MM-DD)"),
("ref1", "Reference URL 1"),
("ref2", "Reference URL 2"),
]
for key, prompt_text in prompts:
val = input(f" {prompt_text}: ").strip() if sys.stdin.isatty() else ""
fields[key] = val or "TBD"
fields["tags_str"] = ", ".join([fields["vuln_type"], fields["severity"], "bug-bounty", "writeup", "infosec"])
fields["seo_str"] = ", ".join([
f"{fields['vuln_type']} writeup",
f"bug bounty {fields['vuln_type']}",
fields["target"],
"how to find " + fields["vuln_type"],
f"{fields['severity']} vulnerability example",
])
fields["date"] = fields.get("pub_date", datetime.date.today().isoformat())
fields["published"] = "false"
return fields
if __name__ == "__main__":
page = prompt_finding()
t = TEMPLATE.format(**page)
slug = re.sub(r"[^a-z0-9]+", "-", page["title"].lower()).strip("-")
path = f"writeups/{slug}.md"
with open(path, "w") as f:
f.write(t)
print(f"[+] Wrote {path} ({len(t)} bytes)")
print(f"[+] SEO keywords: {page['seo_str']}")
print(f"[+] Tags: {page['tags_str']}")
print(f"[+] Next: edit {path}, set published: true, and post to Medium/PentesterLand")
```
**Usage:**
```bash
python3 writeupify.py
# fills interactively, outputs writeups/<title-slug>.md
```
## Deliverable Format
Use this writeup template as your invoice-ready deliverable for paid platforms. Publish on
Medium (Partner Program), PentesterLand, or your own blog with Substack/Stripe:
**File: `writeups/TEMPLATE_WRITEUP.md`**
```markdown
---
title: "Vulnerability Title — {VulnType} in {Target}"
published: false
date: YYYY-MM-DD
tags: [vuln-type, bug-bounty, writeup, infosec, poc]
canonical_url: ""
seo_keywords: ["vuln type writeup", "bug bounty vuln type", "target", "how to find vuln type", "severity vulnerability example"]
---
# Vulnerability Title — {VulnType} in {Target}
**Vulnerability Type:** SQL Injection / XSS / IDOR / SSRF / etc.
**Target:** program.tld / app-name
**Severity:** Critical / High / Medium / Low (CVSS: X.X)
**Bounty:** $500
## TL;DR
One sentence capturing the root cause and business impact.
## Background
- What is the target? What does it do?
- Where is the vulnerable component located?
- Why is it interesting from a security perspective?
## Discovery Methodology
1. **Recon phase:** what endpoints/scopes were enumerated
2. **Testing approach:** tools used, payloads crafted, manual vs automated
3. **Trigger:** exact request/parameter that exposed the bug
## Reproduction Steps (with Evidence)
**Step 1:** Authenticate / navigate to the vulnerable page.
```
REQUEST: GET /api/users?id=1 HTTP/1.1
Host: target.com
Cookie: session=...
```
**Step 2:** Inject the attack payload.
```
REQUEST: GET /api/users?id=1' UNION SELECT ... --
```
**Step 3:** Observe the response.
```
RESPONSE 200:
{"id":1,"email":"admin@target.com","password_hash":"..."}
```
**Screenshot:** [POC.png](link-to-evidence)
## Impact
- Data exposed / accounts compromised / RCE achieved
- CVSS vector string and score
- Real-world damage scenario
## Remediation
- Specific fix: parameterized queries / input validation / access control check
- Code snippet showing the patch
- Defense-in-depth recommendations
## Timeline
| Date | Event |
|------|-------|
| YYYY-MM-DD | Discovery |
| YYYY-MM-DD | Reported to vendor |
| YYYY-MM-DD | Triaged / acknowledged |
| YYYY-MM-DD | Fix confirmed |
| YYYY-MM-DD | Bounty paid ($X) |
| YYYY-MM-DD | Public disclosure |
## References
- CVE-YYYY-NNNN (if applicable)
- OWASP page for this vulnerability class
- Related H1/Intigriti reports
## Tools Used
- Burp Suite / Caido / ZAP
- Custom script (link to GitHub)
- Nuclei template (link)
---
**Want this finding checked by a professional?** I offer code review and pentest services.
Email: researcher@example.com / Twitter: @handle
```
**SEO checklist for each publish:**
- [ ] `title` contains primary keyword + target name
- [ ] `seo_keywords` has 5 terms matching actual search queries
- [ ] First 200 characters include the vulnerability type and target
- [ ] `canonical_url` points to your primary domain
- [ ] Post includes at least 3 internal links to other writeups
- [ ] Social preview image (screenshot of POC) attached
**Monetization checklist:**
- [ ] Posted on Medium with Partner Program enabled
- [ ] Cross-posted to PentesterLand (paid per view)
- [ ] Shared on Twitter with "writeup" and "bug bounty" hashtags
- [ ] PoC script extracted and listed on Gumroad / GitHub Marketplace ($29-$97)
- [ ] CTA at bottom: "Need a deep-dive audit? DM me for consulting rates"
## Process
1. **Prepare** — Verify finding is publishable (non-confidential, novel or well-demonstrated)
2. **Write** — Run `writeupify.py`, fill template, add screenshots and request/response pairs
3. **SEO** — Optimize title, keywords, description, canonical URL for search discovery
4. **Publish** — Post to paid platform (Medium Partner Program, PentesterLand, self-hosted with ads)
5. **Promote** — Tweet the writeup, post on Reddit r/netsec, cross-post on dev.to
6. **Monetize** — Offer consulting, bundle PoC into a tool, create a video walkthrough for YouTube
## Verification
- [ ] Written finding is non-confidential and legally publishable
- [ ] Writeup includes reproduction steps with request/response evidence
- [ ] SEO metadata populated; canonical URL set
- [ ] PoC script ready for standalone sale
- [ ] Cross-published on at least 2 platforms
- [ ] CTA for consulting / tool sales included in footer
## Anti-Rationalization Table
| Rationalization | Reality |
|---|---|
| "My finding is too small for a paid writeup." | Every writeup builds your portfolio. A $100 writeup today leads to a $5K client tomorrow. Publish anyway. |
| "Someone else already wrote about this bug class." | Your specific target, methodology, and payload variations are unique. Nobody has your exact writeup. |
| "I don't have time to write polished content." | The writeupify script generates a publishable draft in 10 minutes. Polish adds 30 min. That's <1 hour for $100-500. |
| "I'll give away my competitive edge by publishing PoCs." | Public PoCs establish expertise, attract clients, and signal to programs that you understand disclosure. The edge is your brain, not one payload. |
| "Tool sales are passive income — just build it once." | Tools require documentation, support, updates for new versions, and marketing. Budget 5h/week per tool for maintenance and sales. |
| "Consulting clients will find me through my writeups automatically." | Passive discoverability is low. You must add a CTA, tweet every writeup, and DM program managers. No CTA = no leads. |
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!