Arpithubli-21/SVS---Solidity-Vulnerabilities-Scanner
GitHub: Arpithubli-21/SVS---Solidity-Vulnerabilities-Scanner
一款基于 Web 的 Solidity 智能合约漏洞扫描工具,利用 37 条 SWC 规则进行静态分析,帮助开发者在部署前检测并修复合约中的安全问题。
Stars: 0 | Forks: 0
# SVS---Solidity-Vulnerabilities-Scanner
Solidity 漏洞扫描器是一款基于 Web 的安全工具,利用 37 条基于 SWC 的规则分析 Solidity 智能合约以检测漏洞。它能扫描上传或粘贴的代码,识别安全问题,按严重程度分类,并提供修复建议,帮助开发者在部署前确保智能合约的安全。
🚀 项目概述
智能合约一旦部署到区块链上就是不可变的。合约逻辑中的任何漏洞都可能导致资金损失、被利用或合约被接管。
本项目提供了一个自动化的漏洞检测系统,利用基于规则的模式匹配分析 Solidity 源代码,并识别常见的智能合约安全问题。
扫描器会处理合约代码,检测易受攻击的模式,根据严重程度对其进行分类,并生成包含以下内容的结构化安全报告:
漏洞类型
SWC ID
严重级别
漏洞出现的行号
建议的缓解措施
该工具可帮助开发者在开发过程早期识别并修复安全缺陷。
🖥️ 用户界面
该项目提供了一个现代化的 Web 界面,专为易于交互和快速安全分析而设计。
着陆页
主页介绍了 Solidity 漏洞扫描器并强调了其功能。
显示的关键信息包括:
37 条漏洞检测规则
SWC 注册表覆盖范围
三个严重级别(高、中、低)
这让用户能够快速了解该工具的检测能力。
智能合约分析
用户可以通过两种方式分析 Solidity 代码:
1️⃣ 上传 Solidity 文件
用户可以直接从系统上传 .sol 文件。
功能包括:
拖放支持
文件浏览器选择
最大文件大小限制为 10 MB
文件上传后,扫描器将处理合约并运行漏洞检测。
2️⃣ 粘贴 Solidity 代码
开发者也可以将 Solidity 代码直接粘贴到编辑器中。
界面提供:
语法样式化代码输入区域
字符计数器
用于快速重置的清除按钮
粘贴代码后,用户可以点击“Scan Pasted Code”(扫描粘贴的代码)开始分析。
🔎 漏洞检测引擎
后端扫描器利用基于模式的静态分析来分析 Solidity 源代码。
扫描引擎执行以下步骤:
逐行读取 Solidity 源代码。
将每一行与预定义的漏洞规则进行比较。
使用正则表达式检测匹配的模式。
记录行号和易受攻击的代码片段。
按严重程度对漏洞进行分类。
该系统目前支持 37 条 SWC 漏洞规则,覆盖范围为:
SWC-100 → SWC-136
这些漏洞被划分为三个严重级别。
🔴 高危漏洞
高危漏洞代表严重的安全风险,可能允许攻击者窃取资金或获得合约的完全控制权。
扫描器检测到的示例包括:
整数溢出 / 下溢
未受保护的 Ether 提取
未受保护的自毁
重入攻击
未初始化的存储指针
对不受信任被调用者的 Delegatecall
tx.origin 身份验证
错误的构造函数名称
弱随机性
签名重放攻击
任意存储写入
通过函数变量的任意跳转
RLO 隐藏字符攻击
链上存储的私有数据
🟡 中危漏洞
中危漏洞如果被利用,可能导致意外行为、拒绝服务或安全弱点。
示例包括:
函数默认可见性
过时的编译器版本
未检查的调用返回值
Assert 违规
失败调用的 DoS
交易顺序依赖
区块时间戳依赖
签名可塑性
状态变量遮蔽
不正确的签名验证
Require 违规
错误的继承顺序
Gas 不足恶意攻击
区块 Gas 限制导致的 DoS
意外的 Ether 余额
使用 encodePacked 的哈希碰撞
硬编码的 Gas 数量
🟢 低危问题
低危发现通常代表最佳实践违规或代码质量问题。
示例包括:
浮动 Pragma
状态变量默认可见性
已弃用的 Solidity 函数
印刷错误
未使用的变量
无效果代码
🛠️ 使用的技术
后端 - Python
Web 框架 - Flask
漏洞检测 - 基于 Regex 的规则引擎
前端 - HTML
样式 - CSS
安全标准 - SWC Registry
标签:DeFi安全, GraphQL安全矩阵, Solidity代码分析, Solidity漏洞扫描, SWC检测, Web3安全, 云安全监控, 以太坊安全, 以太坊开发, 区块链安全工具, 多模态安全, 安全专业人员, 安全扫描器, 安全漏洞, 对称加密, 提示词注入, 文档安全, 智能合约安全, 智能合约审计, 智能合约防御, 漏洞检测器, 网络安全, 自动化审计, 逆向工具, 隐私保护, 静态分析, 高危漏洞检测