Skip to main content

mitm-find-otp

Find OTP implementation vulnerabilities. Use when user asks about OTP security, verification bypass, SMS security, or two-factor authentication issues.

Jump to install

Source facts

Repository
instavm/security-skills
Last source activity
March 23, 2026 at 05:24
Detected SKILL.md language
English
Stars
86
Forks
11

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
mitm-find-otp
description
Find OTP implementation vulnerabilities. Use when user asks about OTP security, verification bypass, SMS security, or two-factor authentication issues.
# Find OTP Vulnerabilities Analyze the mitmproxy dump (log.txt) for OTP issues for: $ARGUMENTS > **Requires**: `log.txt` in the current directory. If it's missing, capture traffic first: > ```bash > mitmdump --set flow_detail=3 2>&1 | tee log.txt > ``` ## Vulnerability Types ### 1. OTP in Response - OTP returned in API response body - OTP in page source/JavaScript - OTP in error messages - Should only be sent via SMS/email, never in API response ### 2. No Rate Limiting - Unlimited OTP generation requests - Unlimited verification attempts - Can brute force 4-6 digit OTP ### 3. OTP Bypass - Response manipulation bypasses OTP - Changing `verified: false` to `verified: true` - Empty OTP accepted - Old OTP still valid ### 4. Predictable OTP - Sequential OTPs - Timestamp-based OTPs - Same OTP for multiple requests ### 5. OTP Leakage - OTP in URL parameters (logged) - OTP visible in function names in source - OTP sent in GET request ## Testing Approach ```bash # Check for OTP in response curl -X POST "https://target.com/api/send-otp" \ -d "phone=1234567890" | grep -i otp # Test rate limiting for i in {1..20}; do curl -X POST "https://target.com/api/verify-otp" \ -d "phone=1234567890&otp=$i" done # Test with empty/invalid OTP curl -X POST "https://target.com/api/verify-otp" \ -d "phone=1234567890&otp=" ``` ## Output Format For each finding: - **Endpoint**: OTP send/verify URL - **Issue**: Type of vulnerability - **Evidence**: What was observed - **Exploit**: Steps to reproduce - **Impact**: Account takeover risk - **Fix**: Server-side validation, rate limiting
View on GitHub