Skip to content
Security
Skill

/dangerous-functions

This skill should be used when the user asks about "dangerous functions", "security sinks", "what functions are dangerous in PHP/Java/Python", "find vulnerable functions", "code execution functions", "command injection sinks", "SQL injection functions", or needs to identify

From plugin
vuln-scout
2635 skills9 agents15 commands

Claude Code

$ npx -y skills add allsmog/vuln-scout --skill dangerous-functions --agent claude-code

SKILL.md

dangerous-functions.SKILL.md
name: Dangerous Functions
description: This skill should be used when the user asks about "dangerous functions", "security sinks", "what functions are dangerous in PHP/Java/Python", "find vulnerable functions", "code execution functions", "command injection sinks", "SQL injection functions", or needs to identify security-sensitive functions in source code during whitebox security review.
version: 1.0.0

Dangerous Functions Reference

Purpose

Provide comprehensive knowledge of security-sensitive functions (sinks) across programming languages for whitebox penetration testing. These functions are common targets during code review because improper use leads to critical vulnerabilities.

When to Use

Activate this skill during:

  • Code review phase of whitebox security review
  • Searching for potential vulnerability entry points
  • Building grep patterns for sink identification
  • Understanding language-specific security risks

Core Concepts

Sources vs Sinks

**Sources**: Entry points where user input enters the application

  • HTTP parameters, headers, cookies
  • File uploads, database reads
  • Environment variables, command-line arguments

**Sinks**: Functions where malicious input causes damage

  • Command execution, SQL queries
  • File operations, deserialization
  • Code evaluation, template rendering

Risk Categories

| Category | Impact | Common Languages | |----------|--------|------------------| | Command Injection | Remote Code Execution | All | | Code Injection | Remote Code Execution | PHP, Python, JS | | SQL Injection | Data breach | All with databases | | Deserialization | Remote Code Execution | Java, PHP, Python, .NET | | File Operations | LFI/RFI/Arbitrary Write | All | | SSRF | Internal network access | All | | Template Injection | Remote Code Execution | Python, Java, JS | | Reentrancy | Fund theft | Solidity | | Flash Loan Attacks | Price/state manipulation | Solidity | | Access Control | Privilege escalation | Solidity |

Methodology

Step 1: Identify Application Language

Determine the primary language(s) used:

  • Check file extensions (.php, .java, .py, .js, .cs, .go, .rb)
  • Review package managers (composer.json, pom.xml, requirements.txt, package.json)
  • Check framework indicators

Step 2: Load Language-Specific Reference

Consult the appropriate reference file for comprehensive sink lists:

  • `references/php-sinks.md` for PHP applications
  • `references/java-sinks.md` for Java applications
  • `references/python-sinks.md` for Python applications
  • `references/javascript-sinks.md` for Node.js/JavaScript
  • `references/dotnet-sinks.md` for .NET/C# applications
  • `references/go-ruby-sinks.md` for Go and Ruby
  • `references/rust-sinks.md` for Rust applications
  • `references/kotlin-sinks.md` for Kotlin/Android applications *(preview -- not in supported language list)*
  • `references/swift-sinks.md` for Swift/iOS applications *(preview -- not in supported language list)*
  • `references/solidity-sinks.md` for Solidity smart contracts

Step 3: Search for Sinks

Use Grep tool to search for dangerous functions:

  • Search one category at a time (command, code, SQL, file, etc.)
  • Use case-insensitive search for better coverage
  • Include all relevant file extensions

Step 4: Catalog Findings

For each identified sink, document:

  • File path and line number
  • Function name and context
  • Input sources (if visible)
  • Initial risk assessment

Step 5: Prioritize for Testing

Rank findings using this framework:

| Priority | Criteria | |----------|----------| | Critical | Direct user input reaches sink | | High | Database/file data (user-controlled) reaches sink | | Medium | Authenticated user input reaches sink | | Low | Admin-only input reaches sink | | Info | Hardcoded values only |

Prioritization Framework

When reviewing identified sinks, consider:

1. **Input Proximity**: How close is user input to the sink? 2. **Authentication**: Does exploitation require authentication? 3. **Privilege Level**: What access level is needed? 4. **Impact**: What can an attacker achieve? 5. **Exploitability**: Are there filters or sanitization?

Additional Resources

Reference Files

For comprehensive function lists by language, consult:

  • **`references/php-sinks.md`** - PHP dangerous functions with grep patterns
  • **`references/java-sinks.md`** - Java dangerous functions with grep patterns
  • **`references/python-sinks.md`** - Python dangerous functions with grep patterns
  • **`references/javascript-sinks.md`** - JavaScript/Node.js dangerous functions
  • **`references/dotnet-sinks.md`** - .NET/C# dangerous functions
  • **`references/go-ruby-sinks.md`** - Go and Ruby dangerous functions
  • **`references/rust-sinks.md`** - Rust dangerous functions (unsafe, FFI, etc.)
  • **`references/kotlin-sinks.md`** - Kotlin/Android dangerous functions *(preview -- not in supported language list)*
  • **`references/swift-sinks.md`** - Swift/iOS dangerous functions *(preview -- not in supported language list)*
  • **`references/solidity-sinks.md`** - Solidity smart contract sinks (reentrancy, access control, flash loans)

Integration with Other Skills

  • Use **vuln-patterns** skill for exploitation techniques per vulnerability type
  • Use **data-flow-tracing** skill to trace input from sources to identified sinks
  • Use **exploit-techniques** skill to develop PoC for confirmed vulnerabilities
Read more
@allsmog
Ships withvuln-scout

AI-powered whitebox penetration testing plugin for Claude Code. 9 languages, 22 skills, 7 autonomous agents. STRIDE threat modeling, OWASP 2025 coverage, polyglot monorepo support.

2635 skills9 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
26
Star history of allsmog/vuln-scout on GitHub, a chart by star-history.com

Other skills on vuln-scout.

ai-ml-attacks

ai-ml-attacks

This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model…

@allsmog@allsmogInstall Skill
business-logic

business-logic

This skill should be used when the user asks about "business logic", "workflow vulnerability", "trust boundary", "state machine",…

@allsmog@allsmogInstall Skill
cache-poisoning

cache-poisoning

This skill should be used when the user asks about "cache poisoning", "web cache deception", "CDN cache", "proxy cache", "nginx…

@allsmog@allsmogInstall Skill
cloud-native

cloud-native

This skill should be used when the user asks about "cloud security", "AWS security", "GCP security", "Azure security",…

@allsmog@allsmogInstall Skill
compliance-mapping

compliance-mapping

This skill should be used when the user asks about "compliance mapping", "PCI-DSS", "HIPAA", "SOC 2", "NIST CSF", "regulatory…

@allsmog@allsmogInstall Skill
cpg-analysis

cpg-analysis

This skill should be used when the user asks about "Code Property Graph", "CPG analysis", "Joern queries", "CPGQL", "data flow…

@allsmog@allsmogInstall Skill

More skills from other plugins.

api-security

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…

@zhaoxuya520@zhaoxuya520Install Skill
nemoclaw-user-guide

nemoclaw-user-guide

Find official NemoClaw documentation for installation, configuration, operation, or troubleshooting. Also handles requested docs…

@nvidia@nvidiaInstall Skill

Questions about dangerous-functions.

Which coding agents can use dangerous-functions?
dangerous-functions installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.