简单了解下安全测试!

一、基本概念

安全测试是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程。它主要检查系统对非法侵入渗透的防范能力,旨在通过全面的脆弱性安全测试,发现系统未知的安全隐患并提出相关建议,确保系统的安全性。安全测试涵盖应用程序级别和系统级别的测试,包括对应数据或业务功能的访问权限核实,以及操作系统目录或远程访问的权限验证。

二、安全架构

在网络安全领域,常见的安全架构通常分为三层:防御层面、监控层面和加固层面。这种架构是从实际工作中总结出来的,易于理解和实施,并且能有效提升网络安全性。

  1. 防御层面

    • 梳理网络资产,包括中间件版本、操作系统版本、数据库版本、开放端口等信息。

    • 部署安全设备,如下一代防火墙用于抗DDoS攻击和网络层病毒防御,WAF(Web应用防火墙)用于应用层的扫描攻击防御,蜜罐用于主动防御并提前预警。

  2. 监控层面

    • 定期进行资产探测,确保没有遗漏的资产。

    • 进行漏洞扫描和渗透测试,对接威胁情报并配置安全设备的策略,及时更新特征库以报警并响应安全风险。

  3. 加固层面

    • 提升安全意识,通过培训推动业务开发团队了解安全的重要性。

    • 针对应用系统当前的漏洞给出安全解决方案并修复。

    • 对新上线的系统进行安全测试和代码审计,评估整体安全性。

三、安全用例

安全测试通常包含多个安全用例,以下是部分常见用例:

  1. 漏洞扫描:对系统的URL、开放的端口、服务和存在的漏洞进行扫描。

  2. 明文传输:检查系统传输过程中的敏感内容是否为明文,确保敏感信息如登录密码、支付金额等通过加密方式传输。

  3. 越权访问:测试能否通过URL地址获取管理员及其他用户信息,包括垂直越权和水平越权场景。

  4. 反射性跨站脚本(XSS):测试系统是否对输入进行过滤或转移,防止跨站脚本攻击。

  5. 越权文件下载:测试URL中是否包含文件名或文件目录,尝试下载或读取其他目录的文件内容。

  6. 文件上传:测试能否上传木马、病毒、色情图片等恶意文件。

  7. 短信、邮箱验证:测试短信、邮箱验证方式是否安全,防止验证码泄露或被绕过。

  8. 鉴权缺失:测试需要登录、鉴权才可操作的系统中可修改资源的接口,鉴权是否可靠。

  9. 密码健壮性:测试密码、验证码验证的方式是否可靠,防止被暴力猜测。

  10. 数据安全:检查系统中敏感数据的存储是否安全,如密码、身份证、银行卡号等。

四、常用安全工具

在安全测试过程中,会使用到多种安全工具来辅助发现和解决安全问题,以下是一些常用工具:

  1. Wireshark:网络封包分析软件,用于截取网络封包并显示详细的网络封包资料。

  2. Metasploit:免费的框架,附带数百个已知软件漏洞的专业级漏洞攻击工具,用于漏洞利用和渗透测试。

  3. Nmap:网络扫描和主机检测工具,可用于信息收集、漏洞探测和安全扫描。

  4. Nessus:系统漏洞扫描与分析软件,广泛用于扫描和评估系统安全性。

  5. AppScan:IBM公司的Web应用安全测试工具,采用黑盒测试方式扫描常见的Web应用安全漏洞。

  6. OWASP ZAP:WEB渗透测试工具,具有代理截包、重放、爬虫、主动扫描等功能。

  7. BurpSuite:Web应用程序渗透测试的集成平台,包含代理、扫描、攻击等多种工具。

  8. Snort:开源入侵防御系统(IPS),使用规则定义恶意网络活动并查找匹配的数据包。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

目录 序 1 前言 3 第1章 绪论 13 1.1 什么是安全测试 13 1.2 什么是Web应用 17 1.3 Web应用基础 21 1.4 Web应用安全测试 25 1.5 方法才是重点 26 第2章 安装免费工具 29 2.1 安装Firefox 29 2.2 安装Firefox扩展 30 2.3 安装Firebug 31 2.4 安装OWASP的WebScarab 32 2.5 在Windows上安装Perl及其软件包 33 2.6 在Linux, Unix或OS X上安装Perl和使用CPAN 34 2.7 安装CAL9000 35 2.8 安装ViewState Decoder 36 2.9 安装cURL 36 2.10 安装Pornzilla 37 2.11 安装Cygwin 38 2.12 安装Nikto 2 39 2.13 安装Burp Suite 40 2.14 安装Apache HTTP Server 41 第3章 基本观察 43 3.1 查看网页的HTML源代码 44 3.2 查看源代码,高级功能 45 3.3 使用Firebug观察实时的请求头 48 3.4 使用WebScarab观察实时的POST数据 52 3.5 查看隐藏表单域 55 3.6 使用TamperData观察实时的响应头 56 3.7 高亮显示JavaScript和注释 59 3.8 检测JavaScript事件 60 3.9 修改特定的元素属性 61 3.10 动态跟踪元素属性 63 3.11 结论 65 第4章 面向Web的数据编码 66 4.1 辨别二进制数据表示 67 4.2 使用Base-64 69 4.3 在网页中转换Base-36数字 71 4.4 在Perl中使用Base-36 71 4.5 使用以URL方式编码的数据 72 4.6 使用HTML实体数据 74 4.7 计算散列值 76 4.8 辨别时间格式 78 4.9 以编程方式对时间值进行编码 80 4.10 解码ASP.NET的视图状态 81 4.11 解码多重编码 83 第5章 篡改输入 85 5.1 截获和修改POST请求 86 5.2 绕过输入限制 89 5.3 篡改URL 90 5.4 自动篡改URL 93 5.5 测试对URL长度的处理 94 5.6 编辑Cookie 96 5.7 伪造浏览器头信息 99 5.8 上传带有恶意文件名的文件 101 5.9 上传大文件 104 5.10 上传恶意XML实体文件 105 5.11 上传恶意XML结构 107 5.12 上传恶意ZIP文件 109 5.13 上传样例病毒文件 110 5.14 绕过用户界面的限制 111 第6章 自动化批量扫描 114 6.1 使用WebScarab爬行网站 115 6.2 将爬行结果转换为清单 117 6.3 减少要测试的URL 120 6.4 使用电子表格程序来精简列表 120 6.5 使用LWP对网站做镜像 121 6.6 使用wget对网站做镜像 123 6.7 使用wget对特定的清单做镜像 124 6.8 使用Nikto扫描网站 125 6.9 理解Nikto的输出结果 127 6.10 使用Nikto扫描HTTPS站点 128 6.11 使用带身份验证的Nikto 129 6.12 在特定起始点启动Nikto 130 6.13 在Nikto中使用特定的会话Cookie 131 6.14 使用WSFuzzer测试Web服务 132 6.15 理解WSFuzzer的输出结果 134 第7章 使用cURL实现特定任务的自动化 137 7.1 使用cURL获取页面 138 7.2 获取URL的许多变体 139 7.3 自动跟踪重定向 140 7.4 使用cURL检查跨站式脚本 141 7.5 使用cURL检查目录遍历 144 7.6 冒充特定类型的网页浏览器或设备 147 7.7 以交互方式冒充另一种设备 149 7.8 使用cURL模仿搜索引擎 151 7.9 通过假造Referer头信息来伪造工作流程 152 7.10 仅获取HTTP头 153 7.11 使用cURL发送POST请求 154 7.12 保持会话状态 156 7.13 操纵Cookie 157 7.14 使用cURL上传文件 158 7.15 建立多级测试用例 159 7.16 结论 164 第8章 使用LibWWWPerl实现自动化 166 8.1 编写简单的Perl脚本来获取页面 167 8.2 以编程方式更改参数 169 8.3 使用POST模仿表单输入 170 8.4 捕获和保存Cookie 172 8.5 检查会话过期 173 8.6 测试会话固定 175 8.7 发送恶意Cookie值 177 8.8 上传恶意文件内容 179 8.9 上传带有恶意名称的文件 181 8.10 上传病毒到应用 182 8.11 使用Perl解析接收到的值 184 8.12 以编程方式来编辑页面 186 8.13 使用线程化提高性能 189 第9章 查找设计缺陷 191 9.1 绕过必需的导航 192 9.2 尝试特权操作 194 9.3 滥用密码恢复 195 9.4 滥用可预测的标识符 197 9.5 预测凭证 199 9.6 找出应用中的随机数 200 9.7 测试随机数 202 9.8 滥用可重复性 204 9.9 滥用高负载操作 206 9.10 滥用限制性的功能 208 9.11 滥用竞争条件 209 第10章 攻击AJAX 211 10.1 观察实时的AJAX请求 213 10.2 识别应用中的JavaScript 214 10.3 从AJAX活动回溯到源代码 215 10.4 截获和修改AJAX请求 216 10.5 截获和修改服务器响应 218 10.6 使用注入数据破坏AJAX 220 10.7 使用注入XML破坏AJAX 222 10.8 使用注入JSON破坏AJAX 223 10.9 破坏客户端状态 224 10.10 检查跨域访问 226 10.11 通过JSON劫持来读取私有数据 227 第11章 操纵会话 229 11.1 在Cookie中查找会话标识符 230 11.2 在请求中查找会话标识符 232 11.3 查找Authentication头 233 11.4 分析会话ID过期 235 11.5 使用Burp分析会话标识符 239 11.6 使用WebScarab分析会话随机性 240 11.7 更改会话以逃避限制 245 11.8 假扮其他用户 247 11.9 固定会话 248 11.10 测试跨站请求伪造 249 第12章 多层面的测试 251 12.1 使用XSS窃取Cookie 251 12.2 使用XSS创建覆盖 253 12.3 使用XSS产生HTTP请求 255 12.4 以交互方式尝试基于DOM的XSS 256 12.5 绕过字段长度限制(XSS) 258 12.6 以交互方式尝试跨站式跟踪 259 12.7 修改Host头 261 12.8 暴力猜测用户名和密码 263 12.9 以交互方式尝试PHP包含文件注入 265 12.10 制作解压缩炸弹 266 12.11 以交互方式尝试命令注入 268 12.12 系统地尝试命令注入 270 12.13 以交互方式尝试XPath注入 273 12.14 以交互方式尝试服务器端包含(SSI)注入 275 12.15 系统地尝试服务器端包含(SSI)注入 276 12.16 以交互方式尝试LDAP注入 278 12.17 以交互方式尝试日志注入 280
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值