ronin-rb/ronin-vulns

GitHub: ronin-rb/ronin-vulns

一个基于 Ruby 的 Web 漏洞盲测库,支持对 LFI、RFI、SQLi、XSS、SSTI 和开放重定向等多种漏洞类型的快速检测与扫描。

Stars: 78 | Forks: 20

# ronin-vulns [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/da15d9e0f5232503.svg)](https://github.com/ronin-rb/ronin-vulns/actions/workflows/ruby.yml) [![Code Climate](https://codeclimate.com/github/ronin-rb/ronin-vulns.svg)](https://codeclimate.com/github/ronin-rb/ronin-vulns) [![Gem Version](https://badge.fury.io/rb/ronin-vulns.svg)](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, 加密文件系统, 安全测试, 开放重定向, 攻击性安全, 服务端模板注入, 本地文件包含, 漏洞情报, 盲测, 知识库, 蓝队分析, 跨站脚本攻击, 远程文件包含