ronin-rb/ronin-vulns
GitHub: ronin-rb/ronin-vulns
一个基于 Ruby 的 Web 漏洞盲测库,支持对 LFI、RFI、SQLi、XSS、SSTI 和开放重定向等多种漏洞类型的快速检测与扫描。
Stars: 78 | Forks: 20
# ronin-vulns
[](https://github.com/ronin-rb/ronin-vulns/actions/workflows/ruby.yml)
[](https://codeclimate.com/github/ronin-rb/ronin-vulns)
[](https://badge.fury.io/rb/ronin-vulns)
* [官方网站](https://ronin-rb.dev/)
* [源代码](https://github.com/ronin-rb/ronin-vulns)
* [问题追踪](https://github.com/ronin-rb/ronin-vulns/issues)
* [文档](https://ronin-rb.dev/docs/ronin-vulns/frames)
* [Discord](https://discord.gg/6WAb3PsVX9) |
[Mastodon](https://infosec.exchange/@ronin_rb)
## 简介
ronin-vulns 是一个用于盲测漏洞测试的 Ruby 库。目前支持测试
Local File Inclusion (LFI)、Remote File Inclusion (RFI)、
SQL injection (SQLi)、reflected Cross Site Scripting (XSS)、Server Side
Template Injection (SSTI) 和 Open Redirects。
ronin-vulns 是 [ronin-rb] 项目的一部分,这是一个用于安全研究和开发的 [Ruby] 工具包。
## 功能特性
* 支持测试:
* Local File Inclusion (LFI)
* Remote File Inclusion (RFI)
* PHP
* ASP Class / ASP.NET
* JSP
* ColdFusion
* Perl
* SQL Injection (SQLi)
* Reflected Cross Site Scripting (XSS)
* Server Side Template Injection (SSTI)
* Open Redirects
* 支持测试:
* URL 查询参数。
* HTTP Headers。
* HTTP `Cookie` 参数。
* 表单参数。
* 拥有 96% 的文档覆盖率。
* 拥有 99% 的测试覆盖率。
## 概要
```
Usage: ronin-vulns [options] [COMMAND [ARGS...]]
Options:
-h, --help Print help information
Arguments:
[COMMAND] The command name to run
[ARGS ...] Additional arguments for the command
Commands:
completion
help
irb
lfi
open-redirect
reflected-xss, xss
rfi
scan
sqli
ssti
```
测试 URL 是否存在任何 Web 漏洞:
```
$ ronin-vulns scan "http://www.example.com/page.php?lang=en"
```
测试 URL 是否存在 Remote File Inclusion (RFI):
```
$ ronin-vulns rfi "http://www.example.com/page.php?lang=en"
```
测试 URL 是否存在 Local File Inclusion (LFI):
```
$ ronin-vulns lfi "http://www.example.com/page.php?lang=en"
```
测试 URL 是否存在 SQL injection (SQLi):
```
$ ronin-vulns sqli "http://testphp.vulnweb.com/listproducts.php?cat=1"
```
测试 URL 是否存在 Server Side Template Injection (SSTI):
```
$ ronin-vulns ssti "http://www.example.com/page.php?lang=en"
```
测试 URL 是否存在 Open Redirects:
```
$ ronin-vulns open-redirect "http://www.example.com/page.php?lang=en"
```
测试 URL 是否存在 reflected Cross Site Scripting (XSS):
```
$ ronin-vulns reflected-xss "http://www.example.com/page.php?lang=en"
```
## 示例
测试 URL 是否存在任何 Web 漏洞:
```
require 'ronin/vulns/url_scanner'
vuln = Ronin::Vulns::URLScanner.test('http://www.example.com/page.php?lang=en')
# => #
```
扫描 URL 查找所有 Web 漏洞:
```
require 'ronin/vulns/url_scanner'
vulns = Ronin::Vulns::URLScanner.scan('http://www.example.com/page.php?lang=en')
do |vuln|
puts "Found #{vuln.class} on #{vuln.url} query param #{vuln.query_param}"
end
# => [#, #, ...]
```
### 远程文件包含 (RFI)
测试 URL 是否存在 Remote File Inclusion (RFI):
```
require 'ronin/vulns/rfi'
vuln = Ronin::Vulns::RFI.test('http://www.example.com/page.php?lang=en')
# => #
```
查找给定 URL 的所有 Remote File Inclusion (RFI) 漏洞:
```
vulns = Ronin::Vulns::RFI.scan('http://www.example.com/page.php?lang=en')
# => [#, ...]
vulns = Ronin::Vulns::RFI.scan('http://www.example.com/page.php?lang=en') do |vuln|
puts "Found RFI on #{vuln.url} query param #{vuln.query_param}"
end
# => [#, ...]
```
### 本地文件包含 (LFI)
测试 URL 是否存在 Local File Inclusion (LFI):
```
require 'ronin/vulns/lfi'
vuln = Ronin::Vulns::LFI.test('http://www.example.com/page.php?lang=en')
# => #
```
查找给定 URL 的所有 Local File Inclusion (LFI) 漏洞:
```
vulns = Ronin::Vulns::LFI.scan('http://www.example.com/page.php?lang=en')
# => [#, ...]
vulns = Ronin::Vulns::LFI.scan('http://www.example.com/page.php?lang=en') do |vuln|
puts "Found LFI on #{vuln.url} query param #{vuln.query_param}"
end
```
### SQL 注入 (SQLI)
测试 URL 是否存在 SQL Injection (SQLi):
```
require 'ronin/vulns/sqli'
vuln = Ronin::Vulns::SQLI.test('http://testphp.vulnweb.com/listproducts.php?cat=1')
# => #
```
查找给定 URL 的所有 Server Side Template Injection (SQLI) 漏洞:
```
vulns = Ronin::Vulns::SQLI.scan('http://testphp.vulnweb.com/listproducts.php?cat=1')
# => [#, ...]
vulns = Ronin::Vulns::SQLI.scan('http://testphp.vulnweb.com/listproducts.php?cat=1') do |vuln|
puts "Found SQLi on #{vuln.url} query param #{vuln.query_param}"
end
# => [#, ...]
```
### 服务端模板注入 (SSTI)
测试 URL 是否存在 Server Side Template Injection (SSTI):
```
require 'ronin/vulns/ssti'
vuln = Ronin::Vulns::SSTI.test('http://www.example.com/page.php?lang=en')
# => #
```
查找给定 URL 的所有 Server Side Template Injection (SSTI) 漏洞:
```
vulns = Ronin::Vulns::SSTI.scan('http://www.example.com/page.php?lang=en')
# => [#, ...]
vulns = Ronin::Vulns::SSTI.scan('http://www.example.com/page.php?lang=en') do |vuln|
puts "Found SSTI on #{vuln.url} query param #{vuln.query_param}"
end
# => [#, ...]
```
### 反射型跨站脚本 (XSS)
测试 URL 是否存在 (Reflected) Cross Site Scripting (XSS) 漏洞:
```
require 'ronin/vulns/reflected_xss'
vuln = Ronin::Vulns::ReflectedXSS.test('http://www.example.com/page.php?lang=en')
# => #
```
查找给定 URL 的所有 漏洞:
```
vulns = Ronin::Vulns::ReflectedXSS.scan('http://www.example.com/page.php?lang=en')
# => [#, ...]
vulns = Ronin::Vulns::ReflectedXSS.scan('http://www.example.com/page.php?lang=en') do |vuln|
puts "Found ReflectedXSS on #{vuln.url} query param #{vuln.query_param}"
end
# => [#, ...]
```
### 开放重定向
测试 URL 是否存在 Open Redirect 漏洞:
```
require 'ronin/vulns/open_redirect'
vuln = Ronin::Vulns::OpenRedirect.test('http://www.example.com/page.php?lang=en')
# => #
```
查找给定 URL 的所有 Open Redirect 漏洞:
```
vulns = Ronin::Vulns::OpenRedirect.scan('http://www.example.com/page.php?lang=en')
# => [#, ...]
vulns = Ronin::Vulns::OpenRedirect.scan('http://www.example.com/page.php?lang=en') do |vuln|
puts "Found OpenRedirect on #{vuln.url} query param #{vuln.query_param}"
end
# => [#, ...]
```
## 环境要求
* [Ruby] >= 3.0.0
* [base64] ~> 0.1
* [ronin-support] ~> 1.0
* [ronin-core] ~> 0.2
* [ronin-db] ~> 0.2
## 安装
```
$ gem install ronin-vulns
```
### Gemfile
```
gem 'ronin-vulns', '~> 0.1'
```
### gemspec
```
gem.add_dependency 'ronin-vulns', '~> 0.1'
```
## 开发
1. [Fork It!](https://github.com/ronin-rb/ronin-vulns/fork)
2. Clone It!
3. `cd ronin-vulns/`
4. `./scripts/setup`
5. `git checkout -b my_feature`
6. Code It!
7. `bundle exec rake spec`
8. `git push origin my_feature`
## 许可证
Copyright (c) 2022-2026 Hal Brodigan (postmodern.mod3 at gmail.com)
ronin-vulns 是自由软件:您可以重新分发和/或修改
它根据由自由软件基金会发布的
GNU Lesser General Public License 的条款,无论是该许可证的第三版,还是
(根据您的选择)任何更高版本。
分发 ronin-vulns 是希望它能派上用场,
但没有任何保证;甚至没有
适销性或特定用途适用性的默示保证。有关更多详细信息,请参见
GNU Lesser General Public License。
您应该已经随 ronin-vulns 收到了 GNU Lesser General Public License 的副本。
如果没有,请参阅 。
标签:CISA项目, DOE合作, HTTP参数测试, Kali工具, LFI, RFI, Ronin, Ruby, Ruby库, SQLi, SSTI, URL测试, Web安全, XSS, 加密文件系统, 安全测试, 开放重定向, 攻击性安全, 服务端模板注入, 本地文件包含, 漏洞情报, 盲测, 知识库, 蓝队分析, 跨站脚本攻击, 远程文件包含