| Server IP : 172.67.159.97 / Your IP : 216.73.217.154 Web Server : nginx/1.24.0 System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/rebeccaone.com/wp-content/plugins/weforms/trunk/security-tests/ |
Upload File : |
╔══════════════════════════════════════════════════════════════════╗
║ ║
║ WEFORMS SECURITY TESTING - QUICK START GUIDE ║
║ ║
╚══════════════════════════════════════════════════════════════════╝
📍 You are here: security-tests/
🎯 GOAL: Test the PHP Object Injection vulnerability patch
═══════════════════════════════════════════════════════════════════
🚀 FASTEST WAY TO TEST (30 seconds):
cd /home/jacobd/public_html/wp-content/plugins/weforms
./security-tests/run-all-tests.sh $(pwd)
═══════════════════════════════════════════════════════════════════
📋 WHAT GETS TESTED:
✓ Scans for unsafe unserialize() calls
✓ Verifies safe deserialization patterns
✓ Tests exploit prevention with PoC
✓ Validates allowed_classes parameter
✓ Confirms patch coverage (100%)
═══════════════════════════════════════════════════════════════════
📂 AVAILABLE TESTS:
1️⃣ AUTOMATED (Recommended)
./run-all-tests.sh $(pwd)
→ Runs all tests, provides summary
2️⃣ PROOF OF CONCEPT
php exploit-poc.php
→ Demonstrates vulnerability safely
3️⃣ PLUGIN SCANNER
php automated-test.php $(pwd)
→ Scans plugin code for issues
4️⃣ MANUAL TESTING
See: MANUAL_TESTING_GUIDE.md
→ Step-by-step instructions
═══════════════════════════════════════════════════════════════════
⚡ QUICK TESTS:
# Test current version
./security-tests/run-all-tests.sh $(pwd)
# Test vulnerable version (before patch)
git stash
git checkout master
./security-tests/run-all-tests.sh $(pwd)
# Test patched version (after patch)
git checkout fix-access-vulnerable
./security-tests/run-all-tests.sh $(pwd)
═══════════════════════════════════════════════════════════════════
✅ EXPECTED RESULTS (Patched):
✅ PASS: No unsafe unserialize() calls found
✅ PASS: All expected safe patterns verified
✅ PASS: No maybe_unserialize() calls found
✅ PASS: All unserialize() calls have allowed_classes => false
✅ VERDICT: SECURE - All tests passed!
❌ EXPECTED RESULTS (Vulnerable):
❌ FAIL: Found unsafe unserialize() calls
❌ FAIL: Some safe patterns missing
❌ VERDICT: VULNERABLE - Patch incomplete or not applied
═══════════════════════════════════════════════════════════════════
📖 DOCUMENTATION:
README.md → Overview and reference
MANUAL_TESTING_GUIDE.md → Detailed step-by-step guide
QUICKSTART.txt → This file
═══════════════════════════════════════════════════════════════════
🔧 TROUBLESHOOTING:
Problem: "Permission denied"
Solution: chmod +x run-all-tests.sh
Problem: "PHP not found"
Solution: Install PHP CLI (apt-get install php-cli)
Problem: Tests fail
Solution: Check you're on fix-access-vulnerable branch
═══════════════════════════════════════════════════════════════════
🎯 STEP-BY-STEP TEST PROCESS:
1. Test vulnerable version:
$ git checkout master
$ ./security-tests/run-all-tests.sh $(pwd)
Expected: ❌ TESTS FAILED (Vulnerable)
2. Apply patch:
$ git checkout fix-access-vulnerable
3. Test patched version:
$ ./security-tests/run-all-tests.sh $(pwd)
Expected: ✅ ALL TESTS PASSED (Secure)
4. Compare results to confirm fix worked!
═══════════════════════════════════════════════════════════════════
Questions? See README.md or MANUAL_TESTING_GUIDE.md