Learning paths

Python learning path

16 resources, ordered. Work down the list — each stage assumes the one above it.

Python

A route through the library rather than a dump of it. Items are drawn from the full Python collection, filtered to teaching material (news items are excluded) and ordered within each stage by depth signals — whether the piece carries code, how substantial it is, and what readers actually open.

1

Start here

5 resources

Orientation and first principles — what the bug class is and how it behaves.

  1. wapiti-scanner/wapiti: Web vulnerability scanner written in Python3
    5 min readgithub.com2026
    Library for "black-box" web vulnerability scanning in Python3, acting as a fuzzer to detect issues like SQL Injections, XSS, File Disclosure, Command Execution, XXE, CRLF Injection, Shellshock, SSRF, and Log4Shell (CVE-2021-44228) by attacking scripts and forms. It supports various reporting formats, session management for resuming scans, proxy integration, authenticated scans, URL scope limitation, cookie import from browsers, and includes modules for CMS enumeration, subdomain takeover detection, and security header checks.
  2. The ultimate guide to creating a secure Python package
    14 min readsnyk.io2026
    Guide to creating secure Python packages, this tutorial details package structure, naming conventions, and configuration using `pyproject.toml`. It covers importing, installing from PyPI and private indexes with TLS recommendations, and specifying dependencies like NumPy. Modern packaging practices using `setuptools` as a build backend are emphasized over older `setup.py` methods.
  3. Symmetric vs. asymmetric encryption: Practical Python examples
    14 min readsnyk.io2026
    Library implementing symmetric and asymmetric encryption in Python, demonstrating practical use cases with examples for TLS/SSL, end-to-end messaging, and secure data storage. It covers algorithms like DES, 3DES, and AES, with a focus on envelope encryption for secure key management, using AWS KMS and the AWS Encryption SDK for practical implementation.
  4. Defense in Depth: A Practical Guide to Python Supply Chain Security
    32 min readbernat.tech2026
    Library for Python supply chain security, detailing defenses against attacks like the Ultralytics compromise. It advocates for layered security, starting with static analysis using Ruff, dependency pinning with cryptographic hashes via uv, and vulnerability scanning with pip-audit. The library also covers generating SBOMs with CycloneDX for rapid impact assessment, and adopting Trusted Publishing with OIDC for secure package distribution, emphasizing that no single control is perfect but multiple layers mitigate risk.
  5. Python Security Vulnerabilities | Top Issues | Aikido
    25 min readaikido.dev2026
    Library for identifying and mitigating common Python security vulnerabilities. It details risks like arbitrary code execution via `eval()` and `exec()`, OS command injection through `subprocess` and `os.system`, and the dangers of hardcoded secrets. The library emphasizes practical mitigation techniques, such as avoiding unsafe function usage, using argument lists with `subprocess`, and employing secure secret management practices. It highlights how SAST tools can detect these patterns early in development.
2

Build depth

5 resources

Real testing methodology, tooling, and writeups that show the work.

  1. Insecure Deserialization in Python | Semgrep
    5 min readsemgrep.dev2026
    Library for detecting insecure deserialization vulnerabilities in Python code, focusing on the dangers of libraries like `pickle`, `dill`, `jsonpickle`, and `shelve` when processing untrusted input. It highlights how these libraries can lead to remote code execution and provides examples of exploitation, including a demonstration with `pickle.dumps` and `os.system`. The library's rules identify data flow from untrusted sources to sensitive deserialization functions, offering practical recommendations to avoid risks such as avoiding `pickle` for untrusted data, using safer alternatives like JSON or `PyYAML`'s `safe_load`, and integrating Semgrep scans into CI pipelines. Specific mitigations for Django, NumPy, and PyTorch are also mentioned.
  2. pwviptbl/ProxyHunter: Aplicação Python com interface gráfica que permite configurar regras de interceptação para modificar parâmetros de requisições HTTP. Quando o navegador envia uma requisição para uma rota configurada, o proxy intercepta, modifica apenas os parâmetros especificados e encaminha a requisição mantendo todos os outros parâmetros originais.
    12 min readgithub.com2026
    Tool that intercepts HTTP requests to modify specific parameters. ProxyHunter is a Python application with a graphical interface that allows users to configure interception rules for HTTP requests. It intercepts requests to configured routes, modifies only specified parameters, and forwards the request while preserving all other original parameters. Features include a GUI, multiple rule configuration, GET and POST support, individual rule activation/deactivation, JSON persistence, configurable port, manual interception, WebSocket support, an advanced Intruder, and a vulnerability scanner detecting SQL Injection, XSS, CSRF, Path Traversal, and exposed sensitive information.
  3. Writing API exploits in Python
    7 min readdanaepp.com2025
    Library for generating Python API exploit proof-of-concepts, focusing on BOLA vulnerabilities within the crAPI project. It demonstrates converting requests captured in Burp Suite's Repeater or Intruder into executable Python code using the `curlconverter` tool. The process involves cleaning up `curl` commands, transpiling them to Python, and then refining the generated code for better usability, incorporating features like argument parsing for target URLs and report IDs.
  4. Using JWTs in Python Flask REST Framework | AppSignal Blog
    8 min readblog.appsignal.com2025
    Library implementing JSON Web Tokens (JWTs) for secure authentication in Python Flask REST frameworks. It details JWT structure (header, payload, signature), benefits like stateless sessions and efficiency, and provides practical examples for user registration, login, token creation using `Flask-JWT-Extended`, and securing API endpoints with `@jwt_required()`. The entry also covers implementing refresh tokens for longer sessions and managing token expiration.
  5. GitHub - xnl-h4ck3r/knoxnl: This is a python wrapper around the amazing KNOXSS API by Brute Logic
    8 min readgithub.com2024
    Library for interacting with the KNOXSS API, enabling automated scanning for XSS and Open Redirect vulnerabilities. This Python wrapper supports various input methods, including single URLs and files, and allows for custom configurations for API keys, Discord webhooks, and output formats. It integrates with Burp Suite via the Piper extension, facilitating in-proxy security testing. The library respects KNOXSS API rate limits and offers features like Flash Mode for quick polyglot tests and handling of POST requests.
3

Go deep

6 resources

Novel research, edge cases, and the techniques that push the class forward.

  1. GitHub - WafflesExploits/hide-payload-in-images: A project that demonstrates embedding shellcode payloads into image files (like PNGs) using Python and extracting them using C/C++. Payloads can be retrieved directly from the file on disk or from the image stored in a binary's resources section (.rsrc)
    1 min readgithub.com2024
    Library for embedding and extracting shellcode payloads within image files like PNGs. Utilizes Python for embedding and C/C++ for extraction, supporting retrieval from disk or a binary's `.rsrc` section. Includes stealthy extraction via manual PE header parsing and PEB access, avoiding WinAPI calls for enhanced evasion. Supports both executable and DLL builds with improved PEB structure definitions for portability.
  2. Type Level Security for Secure AI Code Generation
    6 min readsnyk.io2026
    Library implementing type-level security to prevent vulnerabilities like Insecure Direct Object Reference (IDOR) and DOM XSS. It demonstrates code patterns in Python and Rust, showcasing how opaque types and access restrictions can enforce authentication and authorization checks at compile or lint time, ensuring secure data handling for both human developers and AI code generation.
  3. Multi-Stage Malware Attack on Python Package Index
    4 min readsecuritymagazine.com2026
    Tool for verifying Python Package Index (PyPI) dependencies, specifically addressing the chimera-sandbox-extensions malware that harvested developer credentials and environment variables. It emphasizes implementing curated package registries, software composition analysis within CI/CD pipelines, lock file usage, and hash-based verification to prevent supply chain attacks. The tool supports techniques like static and dynamic analysis to detect credential harvesting and DGA calls, alongside runtime sandboxing and secret management to mitigate risks from compromised dependencies.
  4. Isolating risk in the CPython release process
    3 min readsethmlarson.dev2024
    Analysis of CPython's release process improvements, funded by Alpha-Omega, detailing the isolation of source artifact builds using GitHub Actions. This change significantly reduces the dependency footprint for critical build stages, decreasing supply chain risk by separating source artifact generation from documentation builds and testing, with the "Build Source" task now requiring approximately 170 dependencies instead of over 800.
  5. A Large-Scale Security-Oriented Static Analysis of Python Packages in PyPI
    arxiv.org2026
    A Large-Scale Security-Oriented Static Analysis of Python Packages in PyPI
  6. GitHub - danialhalo/SqliSniper: Advanced Time-based Blind SQL Injection fuzzer for HTTP Headers
    3 min readgithub.com2024
    Tool for advanced time-based blind SQL injection fuzzing in HTTP headers. SqliSniper utilizes multi-threaded scanning for efficiency and employs response time analysis to reduce false positives. It supports custom payloads and headers, and can send alerts to Discord webhooks upon detecting vulnerabilities. The tool can scan single URLs, lists of URLs from a file, or process piped input from other security tools.