人工渗透测试流程需要多长时间
一个中等复杂度的人工Web应用系统,人工渗透测试通常需要5到10个工作日。渗透如果是测试长纯内网环境、资产数量少、流程业务逻辑简单,需多3天也能收工。人工但要是渗透碰上大型电商平台或者金融核心系统,两周起步,测试长一个月也不稀奇。流程这个时间跨度听起来有点模糊,需多但现实就是人工如此——渗透测试从来不是流水线拧螺丝,它更像老中医问诊,渗透得看“病人”的测试长具体情况。 我去年参与过一个在线教育平台的流程渗透项目。客户一开始只给了5天预算,需多觉得“就一个网站,能有多复杂”。结果第一天信息收集就卡住了:CDN背后藏着三个子域名,其中一个还是测试环境,登录接口没有验证码,但密码错误五次就封IP。光绕这个限制就花了半天。第二天发现文件上传点,但后缀白名单卡得死,只能传图片。第三天从图片EXIF里翻出一个开发人员邮箱,社工库一查,弱密码,登进了后台。后面两天都在梳理后台功能点和越权逻辑。最后交付报告时客户说:“你们效率挺高啊。”我心想,要是第一天就知道有测试环境,至少能省一天。 影响时长的第一变量是资产暴露面。一个对外只有80和443端口的官网,和一台开着22、3389、8080、7001端口的服务器,完全是两个概念。前者可能两小时扫完,后者光端口服务识别和漏洞验证就得一整天。更别提有些系统用了自定义协议,或者把管理后台藏在非常规路径下。人工测试不像扫描器那样无脑跑字典,测试人员得根据返回包的大小、状态码、响应时间来判断下一步往哪走。这种“手感”需要时间积累,也需要现场试错。 第二变量是业务逻辑复杂度。我见过一个优惠券系统,表面看就是领券、用券。但测试时发现:同一张券可以同时用于多个订单,只要并发请求够快。这种逻辑漏洞扫描器根本扫不出来,得靠人手动构造请求、分析数据库事务隔离级别。光验证这一个点,就花了三个小时。如果系统还有支付、退款、积分兑换、多级审批,每个环节都可能藏着一个越权或条件竞争。这些都得一个一个试,急不得。 第三变量是客户配合度与授权范围。有些客户给一个域名就完事,测试人员只能从外网黑盒打。有些客户会提供测试账号、API文档、甚至源码。前者可能三天都在外围打转,后者半天就能定位到核心漏洞。但提供源码也不一定快——我遇到过客户给了一套Java代码,结果依赖库版本混乱,光搭本地环境就耗了一天。所以时间这东西,真不是测试方单方面能决定的。 还有个容易被忽略的点:报告编写与复测。很多人以为测试完就结束了,其实写报告至少占20%的时间。漏洞描述、复现步骤、请求响应包、修复建议,每一项都得截图、贴代码、写清楚。客户拿到报告后修复了,还得复测。复测不是点一下按钮就完事——得重新走一遍利用链,确认漏洞真的堵上了,且没有引入新问题。这个来回往往又得两三天。 我的经验是:如果客户问“能不能三天搞定”,我会先反问“你们有多少个域名、多少个登录入口、有没有API、有没有移动端”。如果对方说“就一个网站,没APP”,那可以谈。如果对方支支吾吾说“大概十几个子站吧”,那三天连信息收集都不够。渗透测试的时间,本质上是攻击面大小 × 测试深度 × 沟通成本的乘积。任何一个因子变大,总时长都会指数级上升。 最后说个真实案例。某次给一个政府单位做测试,资产清单上只有五个IP。按经验,三天足够。结果第一天发现其中一个IP是VPN网关,版本老旧,但没法直接利用。第二天从VPN的登录页面报错信息里猜出了内网域名。第三天尝试用默认口令登录内网OA,居然成功了。后面两天都在内网横向,最后拿到域控。客户原本只授权外网测试,结果我们“不小心”进了内网。虽然最后报告只写了外网部分,但实际耗时七天。所以你看,时间这东西,有时候连测试人员自己都控制不了。 总结?不总结。你只要记住:5到10个工作日是常态,3天是极限压缩,两周以上别惊讶。具体多久,得看你的系统有多“耐打”。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-