Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
DBShield — 使用 Go 编写的数据库防火墙 | Kitploit
工具/GitHubGitHub/nim4/dbshield
防御工具Web安全数据库安全异常检测
GitHubnim4/dbshield

DBShield

使用 Go 编写的数据库防火墙

查看仓库网站
684161219年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Linux Windows Go 报告卡 codecov 开发者聊天 GoDoc MIT 许可

DBShield

通过检查来自应用服务器的传入查询,拒绝异常查询,从而保护您的数据。


工作原理?

例如,以下是 Web 服务器通常与数据库服务器交互的方式:

示例 Web 服务器和数据库

通过在数据库服务器前添加 DBShield,我们可以保护其免受异常查询的侵害。为了检测异常查询,我们首先以学习模式运行 DBShield。学习模式允许任何查询通过,但会记录其信息(模式、用户名、时间和来源)到内部数据库中。

学习模式

收集到足够多的模式后,我们可以以保护模式运行 DBShield。保护模式能够区分异常查询模式、用户和来源,并根据配置采取相应措施。

保护模式


演示

在演示中,我们使用 sqlmap(自动 SQL 注入和数据库接管工具)来利用 user.php 中的 SQL 注入漏洞。

在第一种场景中,当 Web 应用直接连接数据库(MySQL)时,sqlmap 成功利用了 SQL 注入。在第二种场景中,我们修改了 user.php,使 DBShield 位于 Web 应用和数据库之间,它将丢弃注入尝试,导致 sqlmap 失败。

演示


示例输出

命令行界面

$ go run main.go
2016/10/15 16:25:31 [INFO]  配置文件: /etc/dbshield.yml
2016/10/15 16:25:31 [INFO]  内部数据库: /tmp/model/10.0.0.21_postgres.db
2016/10/15 16:25:31 [INFO]  监听: 0.0.0.0:5000
2016/10/15 16:25:31 [INFO]  后端: postgres (10.0.0.21:5432)
2016/10/15 16:25:31 [INFO]  保护: true
2016/10/15 16:25:31 [INFO]  Web 界面在 https://127.0.0.1:8070/
2016/10/15 16:25:33 [INFO]  连接来自: 10.0.0.20:35910
2016/10/15 16:25:33 [INFO]  连接到: 10.0.0.21:5432
2016/10/15 16:25:33 [INFO]  SSL 连接
2016/10/15 16:25:34 [DEBUG] 客户端握手完成
2016/10/15 16:25:34 [DEBUG] 服务器握手完成
2016/10/15 16:25:34 [INFO]  用户: postgres
2016/10/15 16:25:34 [INFO]  数据库: test
2016/10/15 16:25:34 [INFO]  查询: SELECT * FROM stocks where id=-1 or 1=1
2016/10/15 16:25:34 [WARN]  未找到模式: [53 55 51 52 55 52 50 53 55 51 53 49 115 116 111 99 107 115 53 55 51 53 50 105 100 54 49 52 53 53 55 51 55 57 53 55 52 48 52 53 55 51 55 57 54 49 53 55 51 55 57] (SELECT * FROM stocks where id=-1 or 1=1)
2016/10/15 16:25:34 [WARN]  正在断开连接

Web 界面

Web UI


安装

获取它

$ go get -u github.com/nim4/DBShield

然后可以使用 "-h" 参数查看帮助:

$ $GOPATH/bin/DBShield -h
DBShield 1.0.0-beta3
用法: DBShield
  -a	获取异常查询列表
  -c 文件
      配置文件 (默认 "/etc/dbshield.yml")
  -h	显示帮助
  -k	显示解析后的配置并退出
  -l	获取捕获的模式列表
  -version
      显示版本

并使用您的配置运行它,例如:

$ $GOPATH/bin/DBShield -c config.yml

参见 示例配置文件

⚠️ 警告: 请勿在生产环境中使用默认证书!


支持情况

数据库保护SSL
DB2是否
MariaDB是是
MySQL是是
Oracle是否
Postgres是是

待办事项

(按优先级排序)

  • 改进文档
  • 添加 Microsoft SQL Server
  • 增加更多命令行参数
  • 测试覆盖率达到 90%
  • 支持 Oracle SSL
下载工具