Web渗透测试基础

171 阅读5分钟

概述

渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。

渗透测试目的

  1. 通过模拟攻击者的行为发现安全漏洞,渗透测试能够帮助组织识别系统中可能被利用的弱点,从而提前修复这些潜在的风险。
  2. 评估安全防御能力通过对系统进行全面的安全测试,渗透测试能够评估现有的安全防御机制是否有效,并为提高系统的安全性提供改进建议。
  3. 保护重要数据通过及时发现并修复漏洞,渗透测试有助于防止黑客入侵、数据泄露和其他安全事件的发生,从而保护组织的关键数据和信息。
  4. 遵守合规要求根据不同行业的安全和法规要求,渗透测试有助于确保组织符合相关的规定,并通过安全审计和合规性检查。
  5. 增强安全意识通过渗透测试,组织的管理层和员工能够更清楚地了解系统和网络的安全风险,从而促进安全文化的发展和持续的安全改进。

渗透测试基本概念

黑盒测试:在不能看见源码的情况下,针对系统提供的页面进行操作。 白盒测试:可以通过源码发现系统中的漏洞的测试方式。代码审计。 灰盒测试:可白可黑,可以通过页面分析,代码验证快速发现漏洞,也可以绕前端,通过协议向后端发送附带payload(攻击载荷)的请求。

渗透测试阶段

  1. 信息收集
  2. 扫描:进行端口扫描、服务识别、漏洞扫描,以发现潜在的入口点和安全弱点。
  3. 漏洞分析:对扫描发现的漏洞进行深入分析,确认其可利用性,评估风险等级。
  4. 利用:尝试利用已识别的漏洞,以证明能否获得未授权访问或提升权限。
  5. 权限维持:如果成功入侵,尝试安装后门或维持访问权限
  6. 清楚痕迹:清除入侵痕迹
  7. 报告后期交流:总结发现的漏洞、攻击路径、影响评估和修复建议。 提供可操作的安全改进建议,帮助客户加强安全防护

image.png

漏洞的生命周期

第一阶段 0day

0day 漏洞,又被称为”零日漏洞”,0day 漏洞信息未公开或公开无补丁,伤害大

第二阶段 1day

1day 漏洞信息公开,官方尚未发布补丁,伤害比较中

第三阶段 nday

nday 漏洞信息公开,官方补丁发布,可能用户还未来得及安装补丁,伤害小

第四阶段 从发布漏洞补丁到漏洞的消亡

随着用户逐渐安装补丁,漏洞的影响力逐渐减弱,最终走向消亡。这个阶段,漏洞对用户的威胁已经大大降低。

名词解释

  1. CVE 通用漏洞披露,全球漏洞的百科全书,建立跨组织厂商的通用漏洞沟通语言。通过cAn机构分配漏洞编号通过CVSS评估漏洞等级
  2. CVND 国家信息安全漏洞共享平台。由国家互联应急中心(CNCERT)联合国内重要系统单位基础电信运营商/网络安全厂商,互联网企业建立的国家网络安全漏洞库,其收录的各类漏洞也被授予CNVD编号

OWASP TOP10漏洞

OWASP(Open Web Application Security Project),是⼀个全球性的、非营利性的开放式Web应用程序安全项目,在设计、开发、采用和维护过程中提高应用程序安全性,以防止Web应用程序被黑客攻击。OWASP创建了⼀系列标准、方法论和工具,以帮助开发人员和安全专家更好地理解和处理Web应用程序安全问题。并为所有人免费提供有关Web应用程序安全的知识和工具。

TOP10漏洞

越权

越权,在未授权情况下,获取他人操作权限。

  1. 获取他人的敏感信息
  2. 篡改他人的数据

加密失败

对于web应用程序,解决该类问题的快速解决方案是在所有页面上强制执行TLS。如果没有强制的TLS策略或加密不当,则黑客可以监控网络流量,并将连接从HTTPS降级为HTTP,从而捕获以明文形式传递的所有信息:包括用户数据、密码和对话cookie等。

  1. 传输数据时使用明文
  2. 不验证ca证书
  3. 使用过时的加密算法

注入

  1. sql注入
  2. 命令注入
  3. 文件注入

不安全设计

  1. 万能验证码没有被取消
  2. 文件上传没有任何校验

安全配置错误

  1. 权限配置错误
  2. 额外功能实现
  3. 将错误信息显示给用户
  4. 没有禁用默认账户 admin root
  5. 没有修改默认密码

易受攻击和过时组件

  1. 安装过时组件
  2. 官方更新,没有关注
  3. 不维护,不测试

认证和授权失败

  1. 用户弱口令
  2. 密码找回验证过于简单
  3. 用户状态保存时间过长

软件和数据完整性故障

  1. 不验证来源的更新
  2. CI/CD过程中没有审核

安全日志记录和监控失败

  1. 不记录日志
  2. 日志文件保存在本地
  3. 没有对攻击阈值做正确的设置
  4. 没对渗透操作进行记录

服务器请求伪造

服务器端请求伪造指的是发生率相对较低的数据,测试覆盖率高于平均水平,攻击和影响潜力也高于平均水平。