wphp-scan 20.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,84 @@
1
+ Metadata-Version: 2.4
2
+ Name: wphp-scan
3
+ Version: 20.0.0
4
+ Summary: wphp-scan v20.0 - Enterprise Web Penetration Testing Framework (100+ WAF signatures, vulnerability scanning, tech fingerprinting)
5
+ Author: Security Research
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Programming Language :: Python :: 3.7
8
+ Classifier: Programming Language :: Python :: 3.8
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Topic :: Security
15
+ Requires-Python: >=3.7
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: requests>=2.25.0
18
+ Dynamic: author
19
+ Dynamic: classifier
20
+ Dynamic: description
21
+ Dynamic: description-content-type
22
+ Dynamic: requires-dist
23
+ Dynamic: requires-python
24
+ Dynamic: summary
25
+
26
+ # wphp-scan v20.0 - Enterprise Web Penetration Testing Framework
27
+
28
+ **Professional Security Auditor | Advanced Vulnerability Scanner | Network Analysis Suite**
29
+
30
+ ## 🚀 Version 20.0 - ENTERPRISE EDITION
31
+
32
+ ### Key Specifications
33
+ - **100+ WAF Signatures** - Advanced firewall detection
34
+ - **200+ Vulnerability Signatures** - SQL, XSS, Command Injection, Path Traversal, XXE, LDAP, Template Injection
35
+ - **150+ Technology Signatures** - Framework, CMS, server, library detection
36
+ - **11-Phase Scanning** - Comprehensive security assessment
37
+ - **Credibility Scoring** - 0-100% security posture calculation
38
+ - **Compliance Ready** - PCI-DSS, HIPAA, GDPR, NIST aligned
39
+ - **Professional Reporting** - JSON, HTML, CSV, PDF exports
40
+ - **Enterprise Features** - Concurrent scanning, caching, analytics
41
+
42
+ ### Installation
43
+
44
+ ```bash
45
+ pip install wphp-scan
46
+ wphp-scan https://example.com
47
+ ```
48
+
49
+ ### Usage
50
+
51
+ ```bash
52
+ wphp-scan https://example.com # Basic scan
53
+ wphp-scan example.com -o results.json # Save results
54
+ ```
55
+
56
+ ### Features
57
+
58
+ ✅ Subdomain Enumeration (50+ subdomains)
59
+ ✅ PHP ID Extraction (Cookies, Sessions, Parameters)
60
+ ✅ Path Discovery (60+ patterns)
61
+ ✅ Link Verification (30+ links)
62
+ ✅ WAF Detection (100+ signatures)
63
+ ✅ Vulnerability Scanning (200+ patterns)
64
+ ✅ Technology Detection (150+ signatures)
65
+ ✅ SSL/TLS Verification
66
+ ✅ DNS Analysis
67
+ ✅ Credibility Scoring
68
+ ✅ Compliance Reporting
69
+ ✅ Professional UI & Reporting
70
+
71
+ ### Compliance
72
+
73
+ - OWASP Top 10
74
+ - SANS Top 25
75
+ - NIST Guidelines
76
+ - PCI-DSS
77
+ - HIPAA
78
+ - GDPR
79
+ - ISO 27001
80
+ - SOC 2
81
+
82
+ ---
83
+
84
+ **wphp-scan v20.0** - Enterprise Security Testing Framework
@@ -0,0 +1,59 @@
1
+ # wphp-scan v20.0 - Enterprise Web Penetration Testing Framework
2
+
3
+ **Professional Security Auditor | Advanced Vulnerability Scanner | Network Analysis Suite**
4
+
5
+ ## 🚀 Version 20.0 - ENTERPRISE EDITION
6
+
7
+ ### Key Specifications
8
+ - **100+ WAF Signatures** - Advanced firewall detection
9
+ - **200+ Vulnerability Signatures** - SQL, XSS, Command Injection, Path Traversal, XXE, LDAP, Template Injection
10
+ - **150+ Technology Signatures** - Framework, CMS, server, library detection
11
+ - **11-Phase Scanning** - Comprehensive security assessment
12
+ - **Credibility Scoring** - 0-100% security posture calculation
13
+ - **Compliance Ready** - PCI-DSS, HIPAA, GDPR, NIST aligned
14
+ - **Professional Reporting** - JSON, HTML, CSV, PDF exports
15
+ - **Enterprise Features** - Concurrent scanning, caching, analytics
16
+
17
+ ### Installation
18
+
19
+ ```bash
20
+ pip install wphp-scan
21
+ wphp-scan https://example.com
22
+ ```
23
+
24
+ ### Usage
25
+
26
+ ```bash
27
+ wphp-scan https://example.com # Basic scan
28
+ wphp-scan example.com -o results.json # Save results
29
+ ```
30
+
31
+ ### Features
32
+
33
+ ✅ Subdomain Enumeration (50+ subdomains)
34
+ ✅ PHP ID Extraction (Cookies, Sessions, Parameters)
35
+ ✅ Path Discovery (60+ patterns)
36
+ ✅ Link Verification (30+ links)
37
+ ✅ WAF Detection (100+ signatures)
38
+ ✅ Vulnerability Scanning (200+ patterns)
39
+ ✅ Technology Detection (150+ signatures)
40
+ ✅ SSL/TLS Verification
41
+ ✅ DNS Analysis
42
+ ✅ Credibility Scoring
43
+ ✅ Compliance Reporting
44
+ ✅ Professional UI & Reporting
45
+
46
+ ### Compliance
47
+
48
+ - OWASP Top 10
49
+ - SANS Top 25
50
+ - NIST Guidelines
51
+ - PCI-DSS
52
+ - HIPAA
53
+ - GDPR
54
+ - ISO 27001
55
+ - SOC 2
56
+
57
+ ---
58
+
59
+ **wphp-scan v20.0** - Enterprise Security Testing Framework
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env python3
2
+ import os
3
+ from setuptools import setup
4
+
5
+ _here = os.path.abspath(os.path.dirname(__file__))
6
+ try:
7
+ with open(os.path.join(_here, "README.md"), encoding="utf-8") as f:
8
+ long_description = f.read()
9
+ except FileNotFoundError:
10
+ long_description = "wphp-scan v20.0 - Enterprise Web Penetration Testing Framework"
11
+
12
+ setup(
13
+ name="wphp-scan",
14
+ version="20.0.0",
15
+ author="Security Research",
16
+ description="wphp-scan v20.0 - Enterprise Web Penetration Testing Framework (100+ WAF signatures, vulnerability scanning, tech fingerprinting)",
17
+ long_description=long_description,
18
+ long_description_content_type="text/markdown",
19
+ py_modules=["wphp_scan", "wphp_help", "wphp_report"],
20
+ classifiers=[
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.7",
23
+ "Programming Language :: Python :: 3.8",
24
+ "Programming Language :: Python :: 3.9",
25
+ "Programming Language :: Python :: 3.10",
26
+ "Programming Language :: Python :: 3.11",
27
+ "Programming Language :: Python :: 3.12",
28
+ "Operating System :: OS Independent",
29
+ "Topic :: Security",
30
+ ],
31
+ python_requires=">=3.7",
32
+ install_requires=["requests>=2.25.0"],
33
+ entry_points={"console_scripts": ["wphp-scan=wphp_scan:main"]},
34
+ )
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ wphp_help.py - Extended help / usage documentation module for wphp-scan v20.0
5
+
6
+ This module is imported by wphp_scan.py to provide the [h] Help menu option.
7
+ Kept in a separate file so the help text can be extended without touching
8
+ the scanning engine itself.
9
+ """
10
+
11
+
12
+ def build_help_text(C):
13
+ """Return the full help screen as a single formatted string.
14
+
15
+ C is the wphp_scan.C color class, passed in so this module does not
16
+ need to import wphp_scan (avoids a circular import).
17
+ """
18
+ R = C.R
19
+ B = C.B
20
+ CY = C.BC1
21
+ GR = C.BG1
22
+ YL = C.BY1
23
+ BL = C.BB1
24
+ MG = C.BM1
25
+
26
+ lines = []
27
+ add = lines.append
28
+
29
+ add(f"{CY}{'='*84}{R}")
30
+ add(f"{B}{MG} wphp-scan v20.0 - HELP & USAGE GUIDE {R}")
31
+ add(f"{CY}{'='*84}{R}")
32
+ add("")
33
+ add(f"{B}{GR}WHAT THIS TOOL DOES{R}")
34
+ add(f"{CY}-{R}" * 84)
35
+ add("wphp-scan is a web reconnaissance and penetration-testing framework for")
36
+ add("authorized security assessments. In a single run it will:")
37
+ add("")
38
+ add(" 1. Confirm the target is reachable")
39
+ add(" 2. Fingerprint any Web Application Firewall (WAF) in front of it")
40
+ add(" 3. Enumerate likely subdomains via DNS + content scraping")
41
+ add(" 4. Extract session cookies, PHP session IDs, and interesting parameters")
42
+ add(" 5. Probe common administrative / sensitive paths")
43
+ add(" 6. Verify which discovered links actually respond, and with what status")
44
+ add(" 7. Run passive + active vulnerability checks (SQLi, XSS, LFI, command")
45
+ add(" injection, missing security headers, verbose error leakage)")
46
+ add(" 8. Fingerprint the technology stack (CMS, framework, server, frontend libs)")
47
+ add(" 9. Validate the TLS/SSL certificate")
48
+ add(" 10. Resolve DNS A records")
49
+ add(" 11. Calculate an overall 0-100 credibility / security-posture score")
50
+ add("")
51
+ add(f"{B}{GR}BASIC USAGE{R}")
52
+ add(f"{CY}-{R}" * 84)
53
+ add(f" {YL}wphp-scan <target>{R}")
54
+ add(" Run a full scan against a target and print the report to the terminal.")
55
+ add(" The target may be given with or without a scheme; if you omit")
56
+ add(" http:// or https://, https:// is assumed automatically.")
57
+ add("")
58
+ add(f" {YL}wphp-scan <target> -o results.json{R}")
59
+ add(" Run the same scan, and additionally write the complete machine-")
60
+ add(" readable result set (every field the scanner collected) to")
61
+ add(" results.json in the current directory.")
62
+ add("")
63
+ add(f" {YL}wphp-scan <target> -o report.html{R}")
64
+ add(" Same as above, but if the -o path ends in .html, a styled,")
65
+ add(" self-contained HTML report is written instead of raw JSON.")
66
+ add(" The HTML report has no external dependencies and can be")
67
+ add(" opened offline or attached to an email/ticket.")
68
+ add("")
69
+ add(f"{B}{GR}USAGE EXAMPLES{R}")
70
+ add(f"{CY}-{R}" * 84)
71
+ add(f" {YL}wphp-scan example.com{R}")
72
+ add(" Scans https://example.com (scheme auto-added).")
73
+ add("")
74
+ add(f" {YL}wphp-scan https://example.com{R}")
75
+ add(" Scans the exact URL given.")
76
+ add("")
77
+ add(f" {YL}wphp-scan http://192.168.1.10 -o lab_scan.json{R}")
78
+ add(" Scans a local/lab target over plain HTTP and saves full JSON output.")
79
+ add("")
80
+ add(f" {YL}wphp-scan staging.example.com -o /tmp/staging_report.json{R}")
81
+ add(" Scans a staging subdomain and stores the report at an absolute path.")
82
+ add("")
83
+ add(f" {YL}python3 wphp_scan.py example.com{R}")
84
+ add(" Equivalent direct invocation if you are running from source instead")
85
+ add(" of the installed 'wphp-scan' console command.")
86
+ add("")
87
+ add(f"{B}{GR}READING THE OUTPUT{R}")
88
+ add(f"{CY}-{R}" * 84)
89
+ add(" [CRIT] / [HIGH] / [MED] / [STD] / [ENT] / [SPEC] / [OSS] / [GEN]")
90
+ add(" WAF confidence/severity tier prefixes shown before a firewall name.")
91
+ add(" CRIT and HIGH tiers are large commercial WAF/CDN vendors; STD and")
92
+ add(" OSS tiers are typically self-hosted or open-source protections.")
93
+ add("")
94
+ add(" CRITICAL / HIGH / MEDIUM (in the vulnerabilities section)")
95
+ add(" Rough triage severity for each finding. CRITICAL findings (SQLi,")
96
+ add(" LFI, command injection) should be investigated first.")
97
+ add("")
98
+ add(" Credibility score (0-100%)")
99
+ add(" A composite heuristic combining WAF presence, valid TLS, subdomain")
100
+ add(" surface, technology diversity, DNS presence, and a penalty per")
101
+ add(" vulnerability found. It is a quick triage signal, not a certification.")
102
+ add("")
103
+ add(f"{B}{GR}MENU OPTIONS AFTER A SCAN{R}")
104
+ add(f"{CY}-{R}" * 84)
105
+ add(f" {YL}0{R} Clear the terminal screen")
106
+ add(f" {YL}h{R} Show this help screen")
107
+ add(f" {YL}q{R} Quit / exit wphp-scan")
108
+ add("")
109
+ add(f"{B}{GR}IMPORTANT NOTES{R}")
110
+ add(f"{CY}-{R}" * 84)
111
+ add(" - Only scan targets you own or are explicitly authorized to test.")
112
+ add(" - Active checks (SQLi, XSS, LFI, command injection payloads) send")
113
+ add(" modified requests to the target; running them against systems you")
114
+ add(" do not have permission to test may be illegal in your jurisdiction.")
115
+ add(" - Results are heuristic. Always manually verify findings before")
116
+ add(" reporting or remediating; false positives and false negatives")
117
+ add(" are possible with any automated scanner.")
118
+ add(" - Network timeouts and per-request limits are configurable in the")
119
+ add(" CONFIG dictionary near the top of wphp_scan.py.")
120
+ add("")
121
+ add(f"{CY}{'='*84}{R}")
122
+ return "\n".join(lines)
123
+
124
+
125
+ def print_help(C):
126
+ """Print the help screen directly to stdout."""
127
+ print(build_help_text(C))
@@ -0,0 +1,230 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ wphp_report.py - HTML report generator for wphp-scan v20.0
5
+
6
+ Converts the JSON result dictionary produced by SCANNER_V20.run_scan()
7
+ into a single self-contained, styled HTML file. No emoji, no external
8
+ CSS/JS dependencies - safe to open offline or attach to an email/ticket.
9
+
10
+ Usage from wphp_scan.py:
11
+
12
+ from wphp_report import write_html_report
13
+ write_html_report(results, "report.html")
14
+
15
+ Usage standalone (convert an existing -o results.json into HTML):
16
+
17
+ python3 wphp_report.py results.json report.html
18
+ """
19
+
20
+ import json
21
+ import sys
22
+ import html
23
+ from datetime import datetime
24
+
25
+
26
+ def _escape(value):
27
+ """HTML-escape any value, coercing non-strings first."""
28
+ return html.escape(str(value))
29
+
30
+
31
+ def _severity_class(severity):
32
+ sev = (severity or "").upper()
33
+ if sev == "CRITICAL":
34
+ return "sev-critical"
35
+ if sev == "HIGH":
36
+ return "sev-high"
37
+ if sev == "MEDIUM":
38
+ return "sev-medium"
39
+ return "sev-low"
40
+
41
+
42
+ def _render_list_section(title, items, formatter):
43
+ if not items:
44
+ return f"<h2>{_escape(title)}</h2><p class='empty'>None found.</p>"
45
+ rows = "\n".join(formatter(item) for item in items)
46
+ return f"<h2>{_escape(title)} ({len(items)})</h2><table>{rows}</table>"
47
+
48
+
49
+ def build_html(results):
50
+ """Build the full HTML document as a string from a wphp-scan results dict."""
51
+ target = _escape(results.get("target", "unknown"))
52
+ timestamp = _escape(results.get("timestamp", datetime.now().isoformat()))
53
+ score = results.get("credibility_score", 0)
54
+ stats = results.get("statistics", {})
55
+
56
+ score_class = "score-good" if score >= 70 else ("score-warn" if score >= 40 else "score-bad")
57
+
58
+ waf_rows = "".join(
59
+ f"<tr><td>{_escape(w)}</td></tr>" for w in results.get("waf_detected", [])
60
+ ) or "<tr><td class='empty'>No WAF signatures matched.</td></tr>"
61
+
62
+ vuln_rows = "".join(
63
+ f"<tr class='{_severity_class(v.get('severity'))}'>"
64
+ f"<td>{_escape(v.get('severity','-'))}</td>"
65
+ f"<td>{_escape(v.get('type','-'))}</td>"
66
+ f"<td>{_escape(v.get('description','-'))}</td></tr>"
67
+ for v in results.get("vulnerabilities", [])
68
+ ) or "<tr><td colspan='3' class='empty'>No vulnerabilities logged.</td></tr>"
69
+
70
+ link_rows = "".join(
71
+ f"<tr><td>{_escape(l.get('status','-'))}</td>"
72
+ f"<td>{_escape(l.get('type','-'))}</td>"
73
+ f"<td>{_escape(l.get('url','-'))}</td></tr>"
74
+ for l in results.get("verified_links", [])
75
+ ) or "<tr><td colspan='3' class='empty'>No links verified.</td></tr>"
76
+
77
+ path_rows = "".join(
78
+ f"<tr><td>{_escape(p.get('status_code','-'))}</td>"
79
+ f"<td>{_escape(p.get('path','-'))}</td></tr>"
80
+ for p in results.get("paths", [])
81
+ ) or "<tr><td colspan='2' class='empty'>No paths discovered.</td></tr>"
82
+
83
+ sub_rows = "".join(
84
+ f"<tr><td>{_escape(s)}</td></tr>" for s in results.get("subdomains", [])
85
+ ) or "<tr><td class='empty'>No subdomains discovered.</td></tr>"
86
+
87
+ tech_badges = "".join(
88
+ f"<span class='badge'>{_escape(t)}</span>" for t in results.get("technologies", [])
89
+ ) or "<span class='empty'>No technologies fingerprinted.</span>"
90
+
91
+ error_rows = "".join(
92
+ f"<li>{_escape(e)}</li>" for e in results.get("errors", [])
93
+ ) or "<li class='empty'>None.</li>"
94
+
95
+ ssl_info = results.get("ssl_info", {})
96
+ ssl_status = _escape(ssl_info.get("status", "unknown"))
97
+
98
+ dns_rows = "".join(
99
+ f"<tr><td>{_escape(d.get('type','-'))}</td><td>{_escape(d.get('value','-'))}</td></tr>"
100
+ for d in results.get("dns_records", [])
101
+ ) or "<tr><td colspan='2' class='empty'>No DNS records resolved.</td></tr>"
102
+
103
+ html_doc = f"""<!DOCTYPE html>
104
+ <html lang="en">
105
+ <head>
106
+ <meta charset="utf-8">
107
+ <title>wphp-scan report - {target}</title>
108
+ <style>
109
+ :root {{
110
+ --bg: #0f1117; --panel: #161a23; --border: #262b38;
111
+ --text: #d9dde5; --muted: #8891a5; --accent: #5aa9ff;
112
+ }}
113
+ * {{ box-sizing: border-box; }}
114
+ body {{
115
+ background: var(--bg); color: var(--text);
116
+ font-family: -apple-system, "Segoe UI", Roboto, sans-serif;
117
+ margin: 0; padding: 32px; line-height: 1.5;
118
+ }}
119
+ h1 {{ margin: 0 0 4px 0; font-size: 22px; }}
120
+ h2 {{ margin: 28px 0 8px 0; font-size: 15px; color: var(--accent);
121
+ border-bottom: 1px solid var(--border); padding-bottom: 6px; }}
122
+ .meta {{ color: var(--muted); font-size: 13px; margin-bottom: 20px; }}
123
+ .score-panel {{
124
+ display: inline-block; padding: 14px 22px; border-radius: 8px;
125
+ border: 1px solid var(--border); background: var(--panel); margin-bottom: 8px;
126
+ }}
127
+ .score-good {{ color: #4ade80; }}
128
+ .score-warn {{ color: #facc15; }}
129
+ .score-bad {{ color: #f87171; }}
130
+ .score-value {{ font-size: 30px; font-weight: 700; }}
131
+ table {{ width: 100%; border-collapse: collapse; font-size: 13px; }}
132
+ td, th {{ padding: 6px 10px; border-bottom: 1px solid var(--border); text-align: left; }}
133
+ tr.sev-critical td:first-child {{ color: #f87171; font-weight: 700; }}
134
+ tr.sev-high td:first-child {{ color: #fb923c; font-weight: 700; }}
135
+ tr.sev-medium td:first-child {{ color: #facc15; }}
136
+ .empty {{ color: var(--muted); font-style: italic; }}
137
+ .badge {{
138
+ display: inline-block; background: var(--panel); border: 1px solid var(--border);
139
+ border-radius: 4px; padding: 3px 9px; margin: 3px 4px 3px 0; font-size: 12px;
140
+ }}
141
+ .stat-grid {{ display: flex; gap: 14px; flex-wrap: wrap; margin: 10px 0 18px 0; }}
142
+ .stat-box {{
143
+ background: var(--panel); border: 1px solid var(--border); border-radius: 8px;
144
+ padding: 10px 16px; min-width: 100px;
145
+ }}
146
+ .stat-box .n {{ font-size: 20px; font-weight: 700; }}
147
+ .stat-box .l {{ font-size: 11px; color: var(--muted); text-transform: uppercase; }}
148
+ footer {{ margin-top: 40px; color: var(--muted); font-size: 11px; }}
149
+ </style>
150
+ </head>
151
+ <body>
152
+
153
+ <h1>wphp-scan Report</h1>
154
+ <div class="meta">Target: {target} &nbsp;|&nbsp; Generated: {timestamp}</div>
155
+
156
+ <div class="score-panel {score_class}">
157
+ <div class="score-value">{score}%</div>
158
+ <div style="font-size:12px;color:var(--muted);">Credibility / security posture score</div>
159
+ </div>
160
+
161
+ <div class="stat-grid">
162
+ <div class="stat-box"><div class="n">{stats.get('subdomains_found', 0)}</div><div class="l">Subdomains</div></div>
163
+ <div class="stat-box"><div class="n">{stats.get('paths_discovered', 0)}</div><div class="l">Paths</div></div>
164
+ <div class="stat-box"><div class="n">{stats.get('links_verified', 0)}</div><div class="l">Links Verified</div></div>
165
+ <div class="stat-box"><div class="n">{stats.get('vulnerabilities', 0)}</div><div class="l">Vulnerabilities</div></div>
166
+ <div class="stat-box"><div class="n">{stats.get('technologies', 0)}</div><div class="l">Technologies</div></div>
167
+ <div class="stat-box"><div class="n">{stats.get('waf_instances', 0)}</div><div class="l">WAF Signatures</div></div>
168
+ </div>
169
+
170
+ <h2>WAF Detection</h2>
171
+ <table>{waf_rows}</table>
172
+
173
+ <h2>Vulnerabilities</h2>
174
+ <table><tr><th>Severity</th><th>Type</th><th>Description</th></tr>{vuln_rows}</table>
175
+
176
+ <h2>Verified Links</h2>
177
+ <table><tr><th>Status</th><th>Type</th><th>URL</th></tr>{link_rows}</table>
178
+
179
+ <h2>Discovered Paths</h2>
180
+ <table><tr><th>Status</th><th>Path</th></tr>{path_rows}</table>
181
+
182
+ <h2>Subdomains</h2>
183
+ <table>{sub_rows}</table>
184
+
185
+ <h2>Technologies</h2>
186
+ <div>{tech_badges}</div>
187
+
188
+ <h2>SSL / TLS</h2>
189
+ <p>Status: <strong>{ssl_status}</strong></p>
190
+
191
+ <h2>DNS Records</h2>
192
+ <table><tr><th>Type</th><th>Value</th></tr>{dns_rows}</table>
193
+
194
+ <h2>Errors / Notices</h2>
195
+ <ul>{error_rows}</ul>
196
+
197
+ <footer>Generated by wphp-scan v20.0 (wphp_report.py). Heuristic results - verify manually before acting on findings.</footer>
198
+
199
+ </body>
200
+ </html>
201
+ """
202
+ return html_doc
203
+
204
+
205
+ def write_html_report(results, output_path):
206
+ """Build and write the HTML report to output_path. Returns the path written."""
207
+ doc = build_html(results)
208
+ with open(output_path, "w", encoding="utf-8") as f:
209
+ f.write(doc)
210
+ return output_path
211
+
212
+
213
+ def main():
214
+ """Standalone CLI: python3 wphp_report.py results.json [report.html]"""
215
+ if len(sys.argv) < 2:
216
+ print("Usage: python3 wphp_report.py <results.json> [output.html]")
217
+ sys.exit(1)
218
+
219
+ in_path = sys.argv[1]
220
+ out_path = sys.argv[2] if len(sys.argv) > 2 else "wphp_report.html"
221
+
222
+ with open(in_path, "r", encoding="utf-8") as f:
223
+ results = json.load(f)
224
+
225
+ written = write_html_report(results, out_path)
226
+ print(f"HTML report written to {written}")
227
+
228
+
229
+ if __name__ == "__main__":
230
+ main()
@@ -0,0 +1,84 @@
1
+ Metadata-Version: 2.4
2
+ Name: wphp-scan
3
+ Version: 20.0.0
4
+ Summary: wphp-scan v20.0 - Enterprise Web Penetration Testing Framework (100+ WAF signatures, vulnerability scanning, tech fingerprinting)
5
+ Author: Security Research
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Programming Language :: Python :: 3.7
8
+ Classifier: Programming Language :: Python :: 3.8
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Topic :: Security
15
+ Requires-Python: >=3.7
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: requests>=2.25.0
18
+ Dynamic: author
19
+ Dynamic: classifier
20
+ Dynamic: description
21
+ Dynamic: description-content-type
22
+ Dynamic: requires-dist
23
+ Dynamic: requires-python
24
+ Dynamic: summary
25
+
26
+ # wphp-scan v20.0 - Enterprise Web Penetration Testing Framework
27
+
28
+ **Professional Security Auditor | Advanced Vulnerability Scanner | Network Analysis Suite**
29
+
30
+ ## 🚀 Version 20.0 - ENTERPRISE EDITION
31
+
32
+ ### Key Specifications
33
+ - **100+ WAF Signatures** - Advanced firewall detection
34
+ - **200+ Vulnerability Signatures** - SQL, XSS, Command Injection, Path Traversal, XXE, LDAP, Template Injection
35
+ - **150+ Technology Signatures** - Framework, CMS, server, library detection
36
+ - **11-Phase Scanning** - Comprehensive security assessment
37
+ - **Credibility Scoring** - 0-100% security posture calculation
38
+ - **Compliance Ready** - PCI-DSS, HIPAA, GDPR, NIST aligned
39
+ - **Professional Reporting** - JSON, HTML, CSV, PDF exports
40
+ - **Enterprise Features** - Concurrent scanning, caching, analytics
41
+
42
+ ### Installation
43
+
44
+ ```bash
45
+ pip install wphp-scan
46
+ wphp-scan https://example.com
47
+ ```
48
+
49
+ ### Usage
50
+
51
+ ```bash
52
+ wphp-scan https://example.com # Basic scan
53
+ wphp-scan example.com -o results.json # Save results
54
+ ```
55
+
56
+ ### Features
57
+
58
+ ✅ Subdomain Enumeration (50+ subdomains)
59
+ ✅ PHP ID Extraction (Cookies, Sessions, Parameters)
60
+ ✅ Path Discovery (60+ patterns)
61
+ ✅ Link Verification (30+ links)
62
+ ✅ WAF Detection (100+ signatures)
63
+ ✅ Vulnerability Scanning (200+ patterns)
64
+ ✅ Technology Detection (150+ signatures)
65
+ ✅ SSL/TLS Verification
66
+ ✅ DNS Analysis
67
+ ✅ Credibility Scoring
68
+ ✅ Compliance Reporting
69
+ ✅ Professional UI & Reporting
70
+
71
+ ### Compliance
72
+
73
+ - OWASP Top 10
74
+ - SANS Top 25
75
+ - NIST Guidelines
76
+ - PCI-DSS
77
+ - HIPAA
78
+ - GDPR
79
+ - ISO 27001
80
+ - SOC 2
81
+
82
+ ---
83
+
84
+ **wphp-scan v20.0** - Enterprise Security Testing Framework
@@ -0,0 +1,11 @@
1
+ README.md
2
+ setup.py
3
+ wphp_help.py
4
+ wphp_report.py
5
+ wphp_scan.py
6
+ wphp_scan.egg-info/PKG-INFO
7
+ wphp_scan.egg-info/SOURCES.txt
8
+ wphp_scan.egg-info/dependency_links.txt
9
+ wphp_scan.egg-info/entry_points.txt
10
+ wphp_scan.egg-info/requires.txt
11
+ wphp_scan.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ wphp-scan = wphp_scan:main
@@ -0,0 +1 @@
1
+ requests>=2.25.0
@@ -0,0 +1,3 @@
1
+ wphp_help
2
+ wphp_report
3
+ wphp_scan