LewisArdern/bXSS
GitHub: LewisArdern/bXSS
一款专为发现和验证盲打跨站脚本漏洞而设计的自动化回调监控工具,支持丰富的实时告警推送。
Stars: 570 | Forks: 65
# [bXSS](https://github.com/LewisArdern/bXSS)
bXSS 是一款实用工具,漏洞猎手和组织可利用它来识别 [Blind Cross-Site Scripting](https://ardern.io/2017/12/10/blind-xss/)。
bXSS 支持以下功能:
- [干扰级别](./Images/intrusion.jpg)
- [Email](./Images/email.jpg)
- [通过 /.well-known/security.txt 自动报告](./Images/securitytxt.jpg)
- [Twilio](./Images/sms.jpg)
- [Slack](./Images/slack.jpg)
- [Webex Teams](./Images/cisco.jpg)
- [Discord](./Images/discord.jpg)
- [Twitter](./Images/twitter.jpg)
- [Github](./Images/github.JPG)
- [Payload 生成](./Images/payloads.jpg)
- [本地保存](./Images/file.jpg)
# 环境要求
## 必要条件
- 你控制的服务器
- 可用的域名
- Node.js 和 Express.js
## 可选条件
- [SMTP](https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol)
- [Twilio 账号](https://www.twilio.com/sms)
- [Slack Token](https://api.slack.com/docs/token-types)
- [Cisco Token](https://developer.webex.com/docs/api/v1/people/get-my-own-details)
- [Discord Token](https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token)
- [Github Access Token](https://github.com/settings/tokens)
- [Twitter 开发者账号](https://developer.twitter.com/en/apply/user)
- [SSL/TLS 证书](https://letsencrypt.org)
# 设置
## 默认设置
- cd bXSS && npm install
- 更新配置 || 环境变量
- 域名
- config.url = 打算使用的域名,例如 ardern.io
- config.port.http = 运行 Node.js 应用的端口,例如 80
- 将 configExample.js 重命名为 config.js
## 配置服务
服务是可选的,默认情况下 bXSS 会将 Markdown 文件保存到磁盘。如果你不想使用下面列出的任何服务,只需从配置中删除该服务即可。
- Twilio
- config.twilio.accountSid = [Twilio SID](https://support.twilio.com/hc/en-us/articles/223136607-What-is-an-Application-SID)
- config.twilio.authToken = [Twilio Auth Token](https://support.twilio.com/hc/en-us/articles/223136027-Auth-Tokens-and-how-to-change-them)
- config.twilio.to = ['+447500000000','+0018056826043'] 你的电话号码
- config.twilio.from = [Twilio 电话号码](https://support.twilio.com/hc/en-us/articles/223136207-Getting-started-with-your-new-Twilio-phone-number)
- Slack
- config.slack.token = [Slack Token](https://api.slack.com/docs/token-types)
- config.slack.channel = [你想要发送报告的频道](https://get.slack.help/hc/en-us/articles/201402297-Create-a-channel)
- 所需的 Slack 权限 [channels:read](https://api.slack.com/scopes/channels:read) 和 [chat:write](https://api.slack.com/scopes/chat:write)
- Cisco
- config.ciscoSpark.token = [Cisco Token](https://developer.webex.com/docs/api/v1/people/get-my-own-details)
- config.ciscoSpark.sparkRoom = ['email1@domain.com','email2@domain.com']
- Discord
- 创建机器人的步骤:
- 访问 https://discordapp.com/developers/applications/
- 创建一个新的应用(例如 bXSSForCompany)
- 记下你的 CLIENT ID
- 选择 'Bot'
- 选择一个 USERNAME 并点击 'Click to Reveal Token'(复制该 token)
- 访问以下 URL(替换为你的 CLIENT ID) https://discordapp.com/oauth2/authorize?&client_id=YOUR_CLIENT_ID&scope=bot&permissions=2048
- 选择你希望机器人加入的服务器并进行授权
- 更新以下值,以便机器人能将消息发送到 'text channel',例如 ('general')
- config.discord.token = '你的机器人 token'
- config.discord.channel = '你希望它加入的频道,例如 general'
- Twitter
- config.twitter.consumer_key = API Key
- config.twitter.consumer_secret = API Secret Key
- config.twitter.access_token_key = Application Access Token
- config.twitter.access_token_secret = Application Access Token Secret
- 权限 (Write)
- config.twitter.recipient_id = Twitter User ID,可以在[这里](https://twitter.com/settings/your_twitter_data)找到
- SMTP
- config.smtp.user = 邮箱用户名
- config.smtp.pass = 邮箱密码
- config.smtp.port = 你要连接的端口,例如 465
- config.smtp.host = 你要连接的主机,例如 smtp.example.com
- config.smtp.to = ['email1@domain.com','email2@domain.com'] 你想要发送邮件的目标地址
- config.smtp.tls = 使用 TLS,布尔值 true 或 false
- Github
- [config.github.accessToken](https://github.com/settings/tokens) = ''
- config.github.repo = '' 示例为 lewisardern/bXSS
## 设置 HTTPS
建议使用[反向代理](https://www.nginx.com/resources/glossary/reverse-proxy-server/),例如 [NGINX](https://pastebin.com/nCVSh5iv)。但如果你想使用 Express 配置 HTTPS,请按照以下步骤操作:
- 获取 Let's Encrypt 证书
- [手动获取](https://gist.github.com/davestevens/c9e437afbb41c1d5c3ab)
- [certbot](https://medium.com/@yash.kulshrestha/using-lets-encrypt-with-express-e069c7abe625)
- 使用 Node.js
- 更新配置
- config.letsEncrypt.TLS = true;
- config.letsEncrypt.publicKey = \$Path/fullchain.pem
- config.letsEncrypt.privateKey = \$Path/privkey.pem
- config.letsEncrypt.ca = \$Path/chain.pem
- config.port.https = 443
## 启动应用
完成上述配置后,只需在应用根目录下使用任何可用的工具启动服务器即可:
- node app.js
- nodemon app.js
- pm2 start app.js
# 使用方法
应用启动并正常运行后,你只需找出已获授权测试的网站,并开始注入各种旨在加载你资源的 payload,最简单的例子是:
```
">
```
该应用包含以下路由:
- POST - /m(捕获 DOM 信息)
- GET - /mH(捕获 HTTP 交互)
- GET - /alert(显示 alert(1))
- GET - /payloads(提供可用于测试 Blind XSS 的 payload)
- GET - /\*\*(所有其他路由都会加载该 payload)
# 贡献?
如果你喜欢这个项目,欢迎随时贡献。或者如果你想提出改进建议,亦或发现了任何问题,请提交一个 [issue](https://github.com/LewisArdern/bXSS/issues)。
标签:Blind XSS, Bug Bounty, CISA项目, CMS安全, Discord, Express.js, GitHub安全, GNU通用公共许可证, JavaScript, MITM代理, Node.js, Payload生成, SEO关键词, Slack, Twilio, Webhook, Web安全, XSS测试工具, 力导向图, 可自定义解析器, 安全测试, 安全通知, 攻击性安全, 漏洞赏金猎人, 盲打XSS, 自定义脚本, 蓝队分析