Web 应用程序渗透测试清单

  • 侦察阶段

    • 识别 Web 服务器、技术和数据库
    • 子公司和收购枚举
    • 反向查找
    • ASN & IP 空间枚举和服务枚举
    • 谷歌多金
    • Github 侦察
    • 目录枚举
    • IP 范围枚举
    • JS文件分析
    • 子域枚举和暴力破解
    • 子域接管
    • 参数模糊测试
    • 端口扫描
    • 基于模板的扫描(核)
    • 回程历史
    • 断链劫持
    • 互联网搜索引擎发现
    • 云存储配置错误
  • 注册功能测试

    • 检查重复注册/覆盖现有用户
    • 检查弱密码策略
    • 检查重用现有用户名
    • 检查电子邮件验证过程是否不足
    • 注册实施薄弱 - 允许一次性电子邮件地址
    • 弱注册实现-Over HTTP
    • 通过特制的用户名注册覆盖默认 Web 应用程序页面。=> 注册后,您的个人资料链接是否显示为www.tushar.com/tushar?

    一种。如果是这样,请枚举 Web 应用程序的默认文件夹,例如 /images、/contact、/portfolio

    湾。使用用户名(例如图片、联系人、投资组合)进行注册

    C。检查这些默认文件夹是否已被您的个人资料链接覆盖。”

  • 会话管理测试

    • 从应用程序中的批量 cookie 中识别实际会话 cookie
    • 使用一些标准的解码算法如 Base64、hex、URL 等解码 cookie
    • 将 cookie.session 令牌值修改 1 位/字节。然后重新提交并对所有令牌执行相同的操作。减少您需要执行的工作量,以识别令牌的哪些部分实际正在使用,哪些部分未使用
    • 如果自助注册可用并且您可以选择您的用户名,请使用一系列相似的用户名登录,其中包含它们之间的细微变化,例如 A、AA、AAA、AAAA、AAAB、AAAC、AABA 等。如果在登录时提交了其他用户特定数据或存储在用户配置文件中(例如电子邮件地址)
    • 检查会话 cookie 和 cookie 过期日期/时间
    • 识别 cookie 域范围
    • 检查 cookie 中的 HttpOnly 标志
    • 如果应用程序通过 SSL,请检查 cookie 中的安全标志
    • 检查会话固定,即身份验证前后会话 cookie 的值
    • 从不同的有效 IP 地址或系统重放会话 cookie 以检查服务器是否保持机器的状态
    • 检查通过不同机器/IP的并发登录
    • 检查是否有任何用户相关信息存储在cookie值中如果是,则篡改其他用户的数据
    • 未能使会话无效(电子邮件更改,2FA 激活)
  • 认证测试

    •  用户名枚举

    •  在用户名和密码字段上使用各种 SQL 注入绕过身份验证

    • 缺少密码确认

      • 更改电子邮件地址
      • 更改密码
      • 管理 2FA
    •  是否可以在没有身份验证的情况下使用资源?访问冲突

    •  检查用户凭据是否通过 SSL 传输

    •  弱登录功能 HTTP 和 HTTPS 均可用

    • 在蛮力攻击中测试用户帐户锁定机制

      变化:如果服务器阻止即时用户请求,则尝试使用入侵者的时间限制选项并再次重复该过程。

      • 通过篡改用户代理到移动用户代理绕过速率限制
      • 通过将用户代理篡改为匿名用户代理来绕过速率限制
      • 使用空字节绕过速率限制
    •  使用 cewl 命令创建密码单词表

    • 测试 Oauth 登录功能

      • OAuth 角色
        • 资源所有者 → 用户
        • 资源服务器 → Twitter
        • 客户端应用程序 → Twitterdeck.com
        • 授权服务器 → Twitter
        • client_id → Twitterdeck ID(这是一个公开的、非秘密的唯一标识符_
        • client_secret → Twitter 和 Twitterdeck 已知用于生成 access_tokens 的 Secret Token
        • response_type → 定义令牌类型,例如(代码、令牌等)
        • 范围 → Twitterdeck 想要的请求访问级别
        • redirect_uri → 授权完成后用户重定向到的URL
        • state → OAuth 中的主要 CSRF 保护可以在用户被定向到授权服务器和再次返回之间持久保存数据
        • grant_type → 定义 grant_type 和返回的令牌类型
        • 代码 → twitter 生成的授权代码,类似于 ?code= ,该代码与 client_id 和 client_secret 一起使用以获取 access_token
        • access_token → twitterdeck 用来代表用户发出 API 请求的令牌
        • refresh_token → 允许应用程序在不提示用户的情况下获取新的 access_token
      • 代码缺陷
        • 重复使用代码
        • 代码预测/蛮力和速率限制
        • 应用 X 的代码对应用 Y 有效吗?
      • Redirect_uri 缺陷
        • URL 根本没有经过验证:?redirect_uri= https://attacker.com
        • 允许子域(子域接管或在这些子域上打开重定向):?redirect_uri= https://sub.twitterdeck.com
        • 主机已验证,路径不是 链打开重定向):?redirect_uri= https://twitterdeck.com/callback?redirectUrl=https://evil.com
        • 主机已验证,路径未验证(Referer 泄漏):在 HTML 页面上包含外部内容并通过Referer 泄漏代码
        • 弱正则表达式
        • 在主机之后暴力破解 URL 编码字符:redirect_uri= https://twitterdeck.com§FUZZ§
        • 在主机之后(或在任何白名单打开重定向过滤器上)暴力破解关键字白名单:?redirect_uri=https://§FUZZ§.com
        • URI 验证到位:使用典型的开放式重定向负载
      • 状态缺陷
        • 缺少状态参数?(CSRF)
        • 可预测的状态参数?
        • 是否正在验证状态参数?
      • 杂项
        • client_secret 是否经过验证?
        • Pre ATO 使用 facebook 电话号码注册
        • 没有电子邮件验证 Pre ATO
    • 测试 2FA 错误配置

      • 响应操纵
      • 状态码
      • 操纵
      • 2FA代码泄漏响应
      • 2FA 代码可重用性
      • 缺乏蛮力保护
      • 缺少 2FA 代码完整性验证
      • 使用 null 或 000000
  • 我的帐户(登录后)测试

    • 查找使用活动帐户用户 ID 的参数。尝试篡改它以更改其他帐户的详细信息
    • 创建仅与用户帐户相关的功能列表。更改电子邮件更改密码 - 更改帐户详细信息(姓名、号码、地址等)尝试 CSRF
    • 登录后更改电子邮件 ID 并使用任何现有电子邮件 ID 进行更新。检查它是否在服务器端得到验证。应用程序是否向新用户发送任何新的电子邮件确认链接?如果用户在某个时间范围内没有确认链接怎么办?
    • 在新选项卡中打开个人资料图片并检查 URL。查找电子邮件 ID/用户 ID 信息。EXIF 地理位置数据未从上传的图像中删除。
    • 检查帐户删除选项(如果应用程序提供)并通过忘记密码功能确认
    • 更改电子邮件 ID、帐户 ID、用户 ID 参数并尝试暴力破解其他用户的密码
    • 检查应用程序是否重新进行身份验证以执行身份验证后功能的敏感操作
  • 忘记密码测试

    • 未能在注销和密码重置时使会话无效
    • 检查是否忘记密码重置链接/代码唯一性
    • 如果用户在一定时间内未使用重置链接,则检查重置链接是否过期
    • 查找用户账户标识参数并篡改Id或参数值以更改其他用户的密码
    • 检查弱密码策略
    • 弱密码重置实现Token使用后不失效
    • 如果重置链接有另一个参数,例如日期和时间,那么。更改日期和时间值以使重置链接有效且有效
    • 检查是否询问了安全问题?允许猜测多少?–> 锁定政策是否维持?
    • 在新密码和确认密码中只添加空格。然后回车看看结果
    • 忘记密码手续完成后是否在同一页面显示旧密码?
    • 要求两个密码重置链接并使用用户电子邮件中的旧链接
    • 检查更改密码后活动会话是否被破坏?
    • 弱密码重置实施 通过 HTTP 发送的密码重置令牌
    • 发送连续忘记密码请求,以便它可以发送顺序令牌
  • 联系我们 表格测试

    • 是否在联系我们表单上实施了验证码以限制电子邮件泛滥攻击?
    • 它允许在服务器上上传文件吗?
    • 盲 XSS
  • 产品购买测试

    • 立即购买
      • 篡改产品ID以低奖购买其他高价值产品
      • 篡改产品数据以增加相同奖品的数量
    • 礼品券
      • 篡改请求中的礼物/优惠券数量(如果有)以增加/减少要使用的优惠券/礼物的数量
      • 篡改礼品/代金券价值以增加/减少代金券的货币价值。(例如 100 美元作为代金券,篡改价值以增加,减少金钱)
      • 通过在参数篡改中使用旧的礼品值来重用礼品/优惠券
      • 检查礼品/优惠券参数的唯一性并尝试猜测其他礼品/优惠券代码
      • 使用参数污染技术通过在 BurpSuite 请求中再次添加相同的参数名称和值来添加相同的凭证两次
    • 从购物车添加/删除产品
      • 篡改用户 ID 以从其他用户的购物车中删除产品
      • 篡改购物车 ID 以从其他用户的购物车中添加/删除产品
      • 识别购物车 ID/用户 ID 以查看其他用户帐户中添加的商品
    • 地址
      • 篡改 BurpSuite 请求将其他用户的送货地址更改为您的
      • 通过在送货地址上添加 XSS 向量来尝试存储的 XSS
      • 使用参数污染技术添加两个送货地址,而不是试图操纵应用程序在两个送货地址上发送相同的物品
    • 下订单
      • 篡改付款选项参数以更改付款方式。例如,考虑某些商品不能以货到付款方式订购,但从借记卡/贷记卡/PayPal/网上银行选项篡改请求参数到货到付款可能允许您为该特定商品下订单
      • 在每个主请求和子请求和响应中篡改用于支付操作的金额值
      • 检查 CVV 是否以明文形式进行
      • 检查应用程序本身是否处理您的卡详细信息然后执行交易,或者它是否调用任何第三方支付处理公司来执行交易
    • 跟踪订单
      • 通过猜测订单跟踪号来跟踪其他用户的订单
      • 蛮力追踪号码前缀或后缀以追踪其他用户的批量订单
    • 愿望清单页面测试
      • 检查用户 A 是否可以在其他用户 B 的帐户的愿望清单中添加/远程产品
      • 检查用户 A 是否可以从他/她(用户 A 的)愿望清单部分将产品添加到用户 B 的购物车中。
    • 产品购买后测试
      • 检查用户A是否可以取消用户B购买的订单
      • 检查用户 A 是否可以查看/检查用户 B 已下的订单
      • 检查用户A是否可以修改用户B下订单的收货地址
    • 带外测试
      • 用户可以订购缺货的产品吗?
  • 银行应用测试

    • 计费活动
      • 检查用户“A”是否可以查看用户“B”的帐户对帐单
      • 检查用户“A”是否可以查看用户“B”的交易报告
      • 检查用户“A”是否可以查看用户“B”的摘要报告
      • 检查用户“A”是否可以代表用户“B”通过电子邮件注册每月/每周帐户对帐单
      • 检查用户“A”是否可以更新用户“B”的现有电子邮件 ID 以检索每月/每周帐户摘要
    • 存款/贷款/关联/外部账户检查
      • 检查用户“A”是否可以查看用户“B”的存款账户摘要
      • 检查存款账户的账户余额篡改
    • 扣税查询测试
      • 检查用户 'A' 的客户 id 'a' 是否可以通过篡改客户 id 'b' 来查看用户 'B' 的减税详情
      • 增减利率、利息金额、退税检查参数篡改
      • 检查用户“A”是否可以下载用户“B”的 TDS 详细信息
    • 检查用户“A”是否可以代表用户“B”请求支票簿。
    • 定期存款账户测试
      • 检查用户“A”是否可以代表用户“B”开立 FD 账户
      • 检查用户是否可以开立比当前账户余额更多的FD账户
    • 根据支票/日期范围停止付款
      • 用户'A'可以通过支票号码停止用户'B'的付款吗
      • 用户“A”能否根据用户“B”的日期范围停止付款
    • 状态查询测试
      • 用户'A'可以查看用户'B'的状态查询吗
      • 用户'A'可以修改用户'B'的状态查询吗
      • 用户'A'可以从他自己的帐户中代表用户'B'发帖和查询吗
    • 资金转移测试
      • 是否可以将资金从用户“A”转移到用户“C”而不是用户“B”,而用户“A”的目的是从用户“A”转移到用户“B”
      • 转账金额可以被操纵吗?
      • 用户'A'是否可以使用他/她自己的帐户通过参数操作来修改用户'B'的收款人列表
      • 是否可以在用户 'A' 自己的帐户或用户 'B' 的帐户中添加收款人而无需任何适当的验证
    • 安排传输测试
      • 用户“A”可以查看用户“B”的日程转移吗
      • 用户“A”能否更改用户“B”的日程转移详情
    • 通过 NEFT 进行资金转账测试
      • 通过 NEFT 转账进行金额操作
      • 检查用户“A”是否可以查看用户“B”的 NEFT 转账详细信息
    • 测试账单支付
      • 检查用户是否可以在没有任何检查员批准的情况下注册收款人
      • 检查用户“A”是否可以查看用户“B”的待付款
      • 检查用户“A”是否可以查看用户“B”的付款详情
  • 打开重定向测试

    • 常用注射参数

      /{payload}
      ?next={payload}
      ?url={payload}
      ?target={payload}
      ?rurl={payload}
      ?dest={payload}
      ?destination={payload}
      ?redir={payload}
      ?redirect_uri={payload}
      ?redirect_url={payload}
      ?redirect={payload}
      /redirect/{payload}
      /cgi-bin/redirect.cgi?{payload}
      /out/{payload}
      /out?{payload}
      ?view={payload}
      /login?to={payload}
      ?image_url={payload}
      ?go={payload}
      ?return={payload}
      ?returnTo={payload}
      ?return_to={payload}
      ?checkout_url={payload}
      ?continue={payload}
      ?return_path={payload}
    •  使用 burp 'find' 选项来查找 URL、red、redirect、redir、origin、redirect_uri、target 等参数

    •  检查这些可能包含 URL 的参数的值

    •  将 URL 值更改为www.tushar.com并检查是否被重定向

    •  尝试单斜杠和 url 编码

    •  使用列入白名单的域或关键字

    •  使用 // 绕过 http 黑名单关键字

    •  使用 https: 绕过 // 黑名单关键字

    •  使用 \ 绕过 // 黑名单关键字

    •  使用 // 绕过 // 黑名单关键字

    •  使用空字节 %00 绕过黑名单过滤器

    •  使用°符号绕过

  • 主机头注入

    • 提供任意 Host 标头
    • 检查有缺陷的验证
    • 发送模棱两可的请求
      • 注入重复的主机头
      • 提供绝对 URL
      • 添加换行
    • 注入主机覆盖标头
  • SQL注入测试

    • 入口点检测

      • 简单字符
      • 多重编码
      • 合并字符
      • 逻辑测试
      • 奇怪的字符
    • 使用 SQLmap 识别漏洞参数

      • 在浏览器GUI中填写表单正常提交
      • 转到 burpsuite 中的历史记录选项卡并找到相关请求
      • 右键单击并选择“复制到文件”选项
      • 将文件另存为 anyname.txt
      • 要运行的 SQLmap 命令
      • python sqlmap.py r ~/Desktop/textsqli.txt 代理= http://127.0.0.1:8080
    •  对所有请求运行 SQL 注入扫描程序

    • 绕过WAF

      • 在 SQL 查询之前使用空字节
      • 使用 SQL 内联注释序列
      • 网址编码
      • 更改大小写(大写/小写)
      • 使用 SQLMAP 篡改脚本
    • 时间延迟

      Oracle dbms_pipe.receive_message(('a'),10)
      Microsoft WAITFOR DELAY '0:0:10'
      PostgreSQL SELECT pg_sleep(10)
      MySQL SELECT sleep(10)
    • 有条件的延误

      Oracle SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 'a'||dbms_pipe.receive_message(('a'),10) ELSE NULL END FROM dual
      Microsoft IF (YOUR-CONDITION-HERE) WAITFOR DELAY '0:0:10'
      PostgreSQL SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN pg_sleep(10) ELSE pg_sleep(0) END
      MySQL SELECT IF(YOUR-CONDITION-HERE,sleep(10),'a')
  • 跨站脚本测试

    • 使用 theinfosecguy 的 QuickXSS 工具尝试 XSS
    • 使用 '“> .txt上传文件
    • 如果脚本标签被禁止,请使用

      和其他 HTML 标签

    • 如果输出作为任何变量的值反映在 JavaScript 中,只需使用 alert(1)
    • 如果“被过滤,则使用此有效负载 />
    • 使用图像文件上传 JavaScript
    • 执行 JS 负载的不寻常方法是将方法从 POST 更改为 GET。它有时会绕过过滤器
    • 标记属性值
      • 输入登陆 -
      • 要插入的有效负载 -“ οnfοcus=”alert(document.cookie)”
    • 语法编码有效负载“%3cscript%3ealert(document.cookie)%3c/script%3e”
    • XSS 过滤器规避
      • < 和 > 可以替换为 html 实体 < 和 >
      • 你可以试试 XSS polyglot 。例如/*->
    • XSS 防火墙绕过
      • 检查防火墙是否仅阻止小写
      • 尝试用新行打破防火墙正则表达式(\r\n)
      • 尝试双重编码
      • 测试递归过滤器
      • 注入没有空格的锚标记
      • 尝试使用 Bullet 绕过空格
      • 尝试更改请求方法
  • CSRF 测试

    • CSRF 令牌的验证取决于请求方法
    • CSRF 令牌的验证取决于令牌的存在
    • CSRF 令牌不绑定到用户会话
    • CSRF 令牌绑定到非会话 cookie
    • Referer 的验证取决于是否存在标头
  • SSO 漏洞

    • 如果internal.company.com将您重定向到 SSO,例如auth.company.com ,请在Internal.company.com上执行 FUZZ
    • 如果company.com/internal将您重定向到 SSO,例如 Google 登录,请尝试在 internal 之前插入 public,例如company.com/public/internal以获得内部访问权限
    • 尝试使用令牌制作 SAML 请求并将其发送到服务器并弄清楚服务器如何与之交互
    • 如果令牌请求中有 AssertionConsumerServiceURL 尝试插入您的域,例如http://me.com作为窃取令牌的值
    • 如果令牌请求中有 AssertionConsumerServiceURL 尝试对 AssertionConsumerServiceURL 的值进行 FUZZ 如果它与 Origin 不相似
    • 如果有任何 UUID,请尝试将其更改为受害者攻击者的 UUID,例如内部员工或管理员帐户的电子邮件等
    • 尝试找出服务器是否容易受到 XML 签名包装的影响?
    • 尝试弄清楚服务器是否检查签名者的身份?
    • 尝试在 SAML 响应的顶部注入 XXE 有效负载
    • 尝试将 XSLT 有效负载作为 SAML 响应的子节点注入到 Transforms 元素中
    • 如果受害者可以接受由为攻击者提供服务的同一身份提供者颁发的令牌,那么您可以接管受害者帐户
    • 在测试 SSO 时尝试在 Burp Suite 中搜索关于 Cookie 标头中的 URL,例如 Host=IP;如果有尝试将IP更改为您的IP以获取SSRF
  • XML 注入测试

    • 将内容类型更改为 text/xml 然后插入下面的代码。通过中继器检查
    
    ]>&xxe;]>&xxe;]>&xxe;]>&xxe;
    • 带外交互的盲 XXE
  • 跨域资源共享 (CORS)

    • 解析 Origin 标头时出错
    • 列入白名单的 null 原始值
  • 服务器端请求伪造 (SSRF)

    • 常用注射参数

      "access=",
      "admin=",
      "dbg=",
      "debug=",
      "edit=",
      "grant=",
      "test=",
      "alter=",
      "clone=",
      "create=",
      "delete=",
      "disable=",
      "enable=",
      "exec=",
      "execute=",
      "load=",
      "make=",
      "modify=",
      "rename=",
      "reset=",
      "shell=",
      "toggle=",
      "adm=",
      "root=",
      "cfg=",
      "dest=",
      "redirect=",
      "uri=",
      "path=",
      "continue=",
      "url=",
      "window=",
      "next=",
      "data=",
      "reference=",
      "site=",
      "html=",
      "val=",
      "validate=",
      "domain=",
      "callback=",
      "return=",
      "page=",
      "feed=",
      "host=",
      "port=",
      "to=",
      "out=",
      "view=",
      "dir=",
      "show=",
      "navigation=",
      "open=",
      "file=",
      "document=",
      "folder=",
      "pg=",
      "php_path=",
      "style=",
      "doc=",
      "img=",
      "filename="
    •  尝试基本的本地主机负载

    • 绕过过滤器

      • 使用 HTTPS 绕过
      • 用 [::] 绕过
      • 使用域重定向绕过
      • 使用十进制 IP 位置绕过
      • 使用 IPv6/IPv4 地址嵌入绕过
      • 使用格式错误的 url 绕过
      • 使用稀有地址绕过(通过删除零的速记 IP 地址)
      • 使用封闭的字母数字绕过
    • 云实例

      • AWS

        
        
        
        [ROLE NAME]
        
        [ROLE NAME]
        
        
        
        
        
        
        
        
        
        
        
      • 谷歌云

        
        
        
        
        
        
      • Digital Ocean

        curl 
        
        
        
        
        
        
        
      • Azure

        
        
        
    •  通过开放重定向绕过

  • 文件上传测试

    • 将恶意文件上传到存档上传功能并观察应用程序如何响应
    • 上传文件并更改其路径以覆盖现有系统文件
    • 大文件拒绝服务
    • 元数据泄露
    • ImageMagick 库攻击
    • 像素泛滥攻击
    • 绕过
      • 空字节 (%00) 绕过
      • 内容类型绕过
      • 魔术字节绕过
      • 客户端验证绕过
      • 黑名单分机绕过
      • 同形字符绕过
  • 验证码测试

    • 缺少验证码字段完整性检查
    • HTTP 动词操作
    • 内容类型转换
    • 可重复使用的验证码
    • 检查是否可以使用绝对路径检索验证码,例如www.tushar.com/internal/captcha/images/24.png
    • 检查 CAPTCHA 的服务器端验证。使用 firebug 插件从 GUI 中删除验证码块并向服务器提交请求
    • 检查是否可以使用 OCR 工具完成图像识别?
  • JWT 令牌测试

    • 暴力破解密钥
    • 使用“无”算法签署新令牌
    • 更改令牌的签名算法(用于模糊测试)
    • 将非对称签名令牌签名到其对称算法匹配(当您拥有原始公钥时)
  • Websockets 测试

    • 拦截和修改 WebSocket 消息
    • Web 套接字 MITM 尝试
    • 测试秘密标头 websocket
    • websockets中的内容窃取
    • websockets中的令牌认证测试
  • GraphQL 漏洞测试

    • 不一致的授权检查
    • 缺少自定义标量的验证
    • 未能适当地限制速率
    • 自省查询启用/禁用
  • WordPress 常见漏洞

    • wordpress 中的 XSPA
    • wp-login.php 中的暴力破解
    • 信息披露wordpress用户名
    • 备份文件 wp-config 暴露
    • 暴露的日志文件
    • 通过 load-styles.php 拒绝服务
    • 通过 load-scripts.php 拒绝服务
    • DDOS 使用 xmlrpc.php
  • 拒绝服务

    • 饼干炸弹
    • 像素泛滥,使用具有巨大像素的图像
    • 帧泛滥,使用带有巨大帧的 GIF
    • ReDoS(正则表达式 DoS)
    • CPDoS(缓存中毒拒绝服务)
  • 其他测试用例(所有类别)

    • 检查安全标头,至少
      • X 框架选项
      • X-XSS 标头
      • HSTS 标头
      • CSP 标头
      • 推荐人政策
      • 缓存控制
      • 公钥引脚
    • 角色授权测试
      • 检查普通用户是否可以访问高权限用户的资源?
      • 强制浏览
      • 不安全的直接对象引用
      • 参数篡改将用户帐户切换为高权限用户
    • 盲操作系统命令注入
      • 使用时间延迟
      • 通过重定向输出
      • 带外交互
      • 带外数据泄露
    • CSV 导出时的命令注入(上传/下载)
    • CSV Excel 宏注入
    • 如果找到 phpinfo.php 文件,请检查配置泄漏并尝试利用任何网络漏洞。
    • 参数污染社交媒体分享按钮
    • 破解密码学
      • 密码学实现缺陷
      • 加密信息泄露
      • 用于加密的弱密码
    • 网络服务测试
      • 测试目录遍历
      • Web 服务文档披露服务、数据类型、输入类型边界和限制的枚举

你可能感兴趣的:(渗透测试)