ling-baseling-base

渗透测试工具

27 个 Web 安全测试工具,仅标准库

在线 Playground

在浏览器中直接体验本页相关 API,无需本地安装 Go 环境。

pentest

Web 渗透测试工具库,提供 27 个独立的主动安全测试工具,全部仅依赖 Go 标准库。

注意: 本模块为主动安全测试工具(向目标发送 payload 探测漏洞),与 common/ 下的防御性安全库(totp/passkey/password/jwtutil/crypto)性质不同。请确保仅在授权范围内使用。

import

import "github.com/LingByte/ling-base/pentest"

工具列表

注入类

工具类型说明
SQLInjectionTestersql_injection.goSQL 注入测试(错误型/时间型/布尔型/UNION 型)
XSSTesterxss.goXSS 测试(反射型/存储型/DOM 型)
CommandInjectionTestercommand_injection.go命令注入测试(时间延迟/输出特征)
TemplateInjectionTesttemplate_injection.go模板注入测试(Jinja2/Freemarker/Velocity/Twig)
XXETestxxe.goXXE 测试(XML 外部实体注入)
SSRFTestssrf.goSSRF 测试(内网扫描/云元数据访问)
DeserializationTestdeserialization.go反序列化测试(JSON/PHP/Java/Python)

遍历/包含类

工具类型说明
PathTraversalTestpath_traversal.go路径遍历测试(../ 等特殊字符)
FileInclusionTestfile_inclusion.go文件包含测试(LFI/RFI)
FileUploadTesterfile_upload.go文件上传测试(恶意文件上传绕过)

扫描/枚举类

工具类型说明
AdvancedPortScanneradvanced_port_scanner.go端口扫描(TCP/UDP/服务识别/banner 抓取)
DirectoryScannerdirectory_scanner.go目录扫描(并发扫描常见目录和文件)
SubdomainEnumeratorsubdomain_enum.go子域名枚举(DNS 查询)
Reconnaissancereconnaissance.go信息收集(技术栈/目录结构/敏感文件)

认证/会话类

工具类型说明
JWTSecurityTestjwt_security.goJWT 安全测试(弱密钥/算法混淆/无签名验证)
PasswordCrackerpassword_cracker.go密码爆破(字典攻击)
SessionSecurityTestsession_security.go会话安全测试(Cookie 安全属性/会话固定)
CSRFTestercsrf.goCSRF 测试(CSRF 令牌/SameSite Cookie/Referer)
IDORTestidor.goIDOR 测试(水平/垂直越权)

分析/检测类

工具类型说明
HeadersSecurityTestheaders_security.goHTTP 安全头检测(CSP/HSTS/X-Frame-Options)
EncryptionTestencryption.go加密强度测试(TLS/SSL 配置/证书有效性)
APISecurityTestapi_security.goAPI 安全测试(未授权访问/信息泄露)
BusinessLogicTestbusiness_logic.go业务逻辑测试(价格操纵/负数量/竞争条件)
RateLimitBypassrate_limit_bypass.go速率限制绕过测试
SensitiveInfoScannersensitive_info.go敏感信息泄露扫描(API 密钥/密码/令牌)
SecurityBaselinesecurity_baseline.go安全基线检查(HTTPS/安全头/认证)
LogAnalyzerlog_analyzer.go日志分析(Web 服务器日志攻击痕迹检测)

用法示例

package main

import (
    "context"
    "fmt"
    "time"

    "github.com/LingByte/ling-base/pentest"
)

func main() {
    // SQL 注入测试
    tester := pentest.NewSQLInjectionTester(10 * time.Second)
    result, err := tester.TestURL(context.Background(), "https://example.com/page?id=1")
    if err != nil {
        panic(err)
    }
    if result.Vulnerable {
        fmt.Printf("发现 SQL 注入: %s (类型: %s)\n", result.Payload, result.Type)
    }

    // HTTP 安全头检测
    headersTest := pentest.NewHeadersSecurityTest(10 * time.Second)
    hResult, err := headersTest.TestURL(context.Background(), "https://example.com")
    if err != nil {
        panic(err)
    }
    fmt.Printf("安全评分: %d/100\n", hResult.Score)
    for _, check := range hResult.Checks {
        if !check.Present {
            fmt.Printf("  缺失: %s (%s)\n", check.Header, check.Severity)
        }
    }
}

特点

  • 零外部依赖: 全部仅依赖 Go 标准库
  • 独立可用: 每个工具自带类型定义,无内部耦合
  • 统一风格: 每个工具遵循 NewXxx(timeout) *Xxx + TestXxx(ctx, ...) Result 模式
  • 并发安全: 扫描类工具内置并发控制

许可证

MIT

On this page