---
title: "skill by agenticluke · skilld"
canonical_url: "https://skilld.dev/gh/agenticluke/bounty-path-finder-plus"
meta:
  description: "Find real, report-ready security flaws in a code repo. Use for bounty work, responsible reports, and checks for remote attack paths. Focus on flaws an… From agenticluke/bounty-path-finder-plus."
  "og:description": "Find real, report-ready security flaws in a code repo. Use for bounty work, responsible reports, and checks for remote attack paths. Focus on flaws an… From agenticluke/bounty-path-finder-plus."
  "og:title": "skill by agenticluke"
  "twitter:description": "Find real, report-ready security flaws in a code repo. Use for bounty work, responsible reports, and checks for remote attack paths. Focus on flaws an… From agenticluke/bounty-path-finder-plus."
  "twitter:title": "skill by agenticluke"
---

`

[All skills](https://skilld.dev/skills)

[![agenticluke avatar](https://skilld.dev/_img/avatar?url=https%3A%2F%2Fgithub.com%2Fagenticluke.png%3Fsize%3D96)](https://skilld.dev/gh/agenticluke)

# **/skill**

[@d8058d0](https://github.com/agenticluke/bounty-path-finder-plus/commit/d8058d06a1e26892d87d8b111ff37fd3b94b5548 "Your agent reads SKILL.md at commit d8058d0")

by [agenticluke](https://skilld.dev/gh/agenticluke)· [agenticluke](https://skilld.dev/gh/agenticluke)/ [bounty-path-finder-plus](https://skilld.dev/gh/agenticluke/bounty-path-finder-plus)

Find real, report-ready security flaws in a code repo. Use for bounty work, responsible reports, and checks for remote attack paths. Focus on flaws an outside attacker can reach and use. Skip weak, local-only, test-only, and out-of-scope findings.

- 1 file
- 6.7 KB
- Updated 2 weeks ago
- [GitHub](https://github.com/agenticluke/bounty-path-finder-plus/blob/d8058d06a1e26892d87d8b111ff37fd3b94b5548/skill/SKILL.md "View SKILL.md on GitHub")

## SKILL.md

6.7 KB

**≈64** tokens always: the name and description. **≈1.6k** when used: this file.

## Security Bounty Hunter

Find security flaws that can lead to a valid bounty report. Do not run a broad best-practice review.

Only test code and systems you have clear permission to test. Use safe proof steps. Do not harm users, delete data, or access private data.

### Main Goal

Find a full attack path:

1. An attacker can reach the entry point.
2. The attacker can control the input.
3. The input reaches a risky action.
4. The app does not stop or clean the input.
5. The flaw causes clear harm.

Do not report a risky code line unless you can prove this path.

### High-Value Patterns

| Pattern | CWE | Common harm |
| --- | --- | --- |
| User-set URL causes a server request | CWE-918 | Access to private networks or cloud data |
| Login or access check can be skipped | CWE-287 | Access to other accounts or private data |
| Unsafe data load or file upload leads to code run | CWE-502 | Code runs on the server |
| User input changes a database query | CWE-89 | Data theft, login skip, or data loss |
| User input reaches a shell command | CWE-78 | Code runs on the server |
| User input changes a file path | CWE-22 | Read or write files outside the safe folder |
| XSS runs when a victim opens a normal page | CWE-79 | Account or admin takeover |

Also check for chains. Two small bugs may join into one serious flaw.

### Low-Value Findings to Skip

Skip these unless the bounty rules say they are in scope:

- Local-only use of `pickle.loads`, `torch.load`, or similar code
- `eval()` or `exec()` in a command-line tool with no remote input
- `shell=True` with a fixed command and no user-set part
- Missing security headers with no clear attack
- Rate-limit claims with no clear harm or repeatable proof
- Self-XSS that needs the victim to paste or run code
- CI or build attacks outside the bounty scope
- Code used only in tests, demos, examples, or fixtures
- Dead code or features that are off in real builds
- Debug mode that only works after local setup
- Dependency version warnings with no proof the app is exposed
- Secrets that are fake, old, revoked, or only used in tests
- Denial of service that needs huge cost, local access, or unsafe testing

Do not ignore a test or demo file if the real app ships or runs it.

### Workflow

1. Read the bounty rules, `SECURITY.md`, scope list, and report steps.
2. Note banned tests, safe-harbor terms, and rate limits.
3. Find real entry points such as web routes, APIs, uploads, webhooks, parsers, sockets, and jobs started by remote input.
4. Track user input from the entry point to the risky action.
5. Check each guard, clean-up step, type check, allowlist, and access check.
6. Check the real build settings. A flaw may depend on a flag, role, or version.
7. Use a small and safe proof of concept.
8. Test only with data and accounts you own.
9. Stop if a test may harm users, change real data, or cause a service outage.
10. Check open issues, past reports, advisories, and CVEs for copies.
11. Write the report only when reach, control, harm, and scope are clear.

Static tools may help find leads. Their output is not proof.

```
semgrep --config=auto --severity=ERROR --severity=WARNING --json
```

Remove results from tests, demos, fixtures, copied code, and dead paths. Keep only results with a clear route from remote input to real harm.

### Edge Cases

- If login is needed, state the lowest role needed.
- If admin action is needed, explain why an attacker can cause it.
- If a job runs later, prove remote input starts or shapes that job.
- If a proxy or gateway blocks the attack, test the normal setup too.
- If the flaw only works with rare settings, list those settings.
- For SSRF, check redirects, DNS changes, URL parsing, IPv6, and private IP forms.
- For file paths, check encoded paths, mixed path marks, links, and archive files.
- For uploads, check both file checks and what later opens the file.
- For XSS, state who must view the page and whether normal use will trigger it.
- For race bugs, use the smallest safe test and show that results repeat.
- For third-party code, prove the project uses the weak path in a shipped version.
- If you cannot test safely, give code proof and label the missing proof. Do not claim full impact.

### Concrete Example

A route accepts a URL and asks the server to fetch it:

```
@app.post("/preview")
def preview():
    url = request.json["url"]
    return requests.get(url).text
```

Check the full path:

1. Confirm `/preview` is on in the normal app.
2. Find out if a guest or basic user can call it.
3. Confirm `url` comes from the request.
4. Check for URL rules, redirect checks, DNS checks, and network blocks.
5. Use a server you own to prove the app makes the request.
6. Do not request cloud data or private services without clear permission.
7. Report SSRF only if the server can reach a target that creates real harm.

A safe proof request may look like this:

```
curl -X POST https://target.example/preview \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://server-you-own.example/proof"}'
```

Save the request time and the matching log from your own server.

### Report Format

```
## Summary
[One short line that names the flaw and the harm.]

## Scope
[Why this target and feature are in scope.]

## Attack Path
[Who can attack, what input they control, and where it goes.]

## Weak Code
[File path, line numbers, and a small code part.]

## Proof of Concept
[Small, safe steps that another person can repeat.]

## Result
[What happened. Include safe logs or output.]

## Impact
[What the attacker can read, change, or run.]

## Needed Conditions
[Role, settings, user action, network access, or timing.]

## Affected Versions
[Tested version, commit, build, or live target.]

## Fix Idea
[A short fix, if it is clear.]
```

Remove tokens, cookies, private data, and secrets from all proof files.

### Final Check

Before filing a report, confirm:

- The target and feature are in scope.
- The attack starts at a real user or network edge.
- The attacker controls the key input.
- The input reaches the risky action.
- Normal guards do not stop the attack.
- The proof works more than once when safe to repeat.
- The harm is clear and not just a guess.
- The issue is not already public or reported.
- The proof does not expose secrets or private user data.
- Every claim says what was tested and what was only inferred.

If any key point is missing, keep the item as a lead. Do not call it a confirmed flaw.

Source: [SKILL.md on GitHub](https://github.com/agenticluke/bounty-path-finder-plus/blob/d8058d06a1e26892d87d8b111ff37fd3b94b5548/skill/SKILL.md)

## Third-party checks

No third-party reports yet.

## Provenance

[Signed by skilld at d8058d0.](https://github.com/agenticluke/bounty-path-finder-plus/commit/d8058d06a1e26892d87d8b111ff37fd3b94b5548 "d8058d06a1e26892d87d8b111ff37fd3b94b5548") This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 weeks ago

## Capability

<dl>

<dt>origin</dt>
<dd>ECC direct-port adaptation</dd>

<dt>version</dt>
<dd>1.0.0</dd>

</dl>

## README badge

![README badge for agenticluke/bounty-path-finder-plus](https://skilld.dev/b/agenticluke/bounty-path-finder-plus?theme=light&label=0)

## Related skills

-
-
-
-
-
-