Web端测试方法

web端通用测试点请移步

1. Web 测试的总体策略

在这里插入图片描述

2. Web 测试的范围

√ 功能
√ 性能
√ 界面
√ 兼容性
√ 安全性
√ DB
√ 文档

2.1 功能测试

☆ 功能测试主要从链接、表单、Cookies、设计语言、数据库、文件上传等方面进行。

2.1.1 链接

☆ 链接也称超链接,是指从一个网页指向另一个目标的连接关系,所指向的目标可能 是一个网页、相同网页上的不同位置、图片、电子邮件地址、文件、应用程序 等。
链接最容易出现以下几种错误:
☆ 错误链接,如 URL 地址拼写错误、URL 后缀多余或缺少斜杠、URL 地址中出现 的字母大小写不完全匹配、用户输入的域名拼写错误。
☆ 空链接, 单击该链接时不会指向任何内容。
☆ 死链接,原来正常,后来失效的链接。
☆ 孤立页面,指没有链接指向该页面,只有知道正确的 URL 地址才能访问。

2.1.2 表单

☆表单是系统与用户交互最主要的界面,测试过程主要关注程序是否能正确地处 理客户提交的信息,并将信息正确地反馈到客户端。
测试过程中应该注意以下几方面的测试:
☆ 文本输入框对长度是否有限制。
☆文本输入框对字符类型是否有限制。
☆ 文本输入框模式匹配是否正确,如该文本框只能输入日期格式的数据,那 么只能匹配不同的日期格式,而不能匹配其他格式的数据。
☆ 各按钮实现的功能是否正确。

2.1.3 Cookie

☆Cookies 能够让网站服务器把少量数据存储到客户端的硬盘或内存,或是从客 户端的硬盘读取数据的技术。
Cookie 有哪些用途:
☆ 自动登录,登录时,选择记住用户名,下次登录会自动带出用户名来。
☆ 广告精准投放,当我们用浏览器搜索过一些关键字,如:web 测试书,某 手机,打开浏览器时,会推送相关浏览过的商品。
☆ 如何查看 Cookie:
打开 IE,在工具栏点工具→Internet 选项→常规→(Internet 临时文件)浏 览历史记录→设置,这样可以查看到 Cookies 所存位置,还可以对其进行 设置。
在这里插入图片描述
在这里插入图片描述
Cookies 的测试包含以下几个方面:
☆ Cookies 的安全性,Cookie 中最好不要存储一些敏感的信息,需要时应该对 Cookie 中的 一些字段进行加密处理。Cookies 的过期时间是否正确;
☆Cookies 的变量名与值是否正确;
☆ Cookies 是否必要,是否缺少:一是生成的 Cookie 文件是否与创建的一致, 不能多也不能少,二是对于不必要的 Cookie 可以删除。
☆ Cookies 的作用域是否正确合理;
☆ 多个 Cookies 的作用域之间关系的测试。

2.1.4 设计语言测试

☆ Web 设计语言版本的差异可以引起客户端或服务器端严重的问题,如使用哪
种版本的 HTML等。
☆ 不同的脚本语言,如 Java、JavaScript、ActiveX、VBScript 或 Perl 等,也要进行验证。
关于设计语言的测试,应该注意以下几个方面:
☆ 不同的浏览器内核引擎不同,会导致与不同的开发语言的兼容情况不同, 当前主流浏览器的内核有 Trident、Tasman、Pesto、Gecko、KHTML、 WebCore 和 WebKit。
☆ 不同的设计语言与平台有不同的兼容性。
☆ 不同脚本语言执行的时间也不同。
☆ 嵌入其他语言的能力。脚本语言对一些操作无法实现,如读取客户端的信 息,此时需要同时借助其他语言来实现。要考虑当前脚本语言对其他语言 的支持程度。
☆ 系统数据库可能升级,测试时需要考虑脚本语言支持数据库的完善程度。

2.1.5 文件上传

☆ 只能上传允许的附件类型;
☆ 不能上传脚本或可执行文件;
☆ 不能单纯以后缀名来判断文件类型;
☆ 浏览好文件后,可以正常处理删除目标文件时出现的异常情况;
☆ 上传超大文件时可以正常处理,比如给出提示信息等;
☆ 上传的文件应该提供接口查看;
☆ 上传的文件不应该直接保存于数据库中,而是将文件保存在服务器端硬盘,而 在数据库中保存该文件的基本信息;
☆ 文件上传到服务器端后应该被重命名,防止文件名冲突。

2.2 性能测试

2.2.1 链接速度测试

☆ 链接的响应时间不能太长,一般不超过 5 秒。

2.2.2 负载测试(Load Testing)

☆ 测试系统能够承受的最大负载(如最大用户量、最大业务量、最大数据量等)以及 性能表现。

2.2.3 压力测试(Stress Testing)

☆ 测试系统在一定压力下的性能表现,通常业务的错误率不能超过 5%。

2.3 界面测试

☆ GUI(Graphical User Interface)即图形用户界面。

2.3.1 格式验证

☆ 验证 Web 页面中一些空间默认的标准定义,如默认值、项目按顺序排列等。

2.3.2 导航条测试

☆ 各页面导航条是否能正确地显示;
☆ 各页面下导航条显示的内容是否正确;
☆ 不同状态下(如登录与未登录,导航条显示的内容是否正确;
☆ 导航条的每项内容链接是否正确。

2.3.3 拼写和语法测试

验证页面内容、菜单和链接、图片、表格内容的拼写和语法。

2.3.4 页面排版测试

☆ 页面标题验证;
☆ 页面元素(文字、窗体、菜单、链接、公司商标等)排版验证;
☆ 页面图形验证;
☆ 页面版本信息验证;
☆ 不同分辨率下的页面显示情况验证;
☆ 页面长度验证。

2.3.5 Tab 键测试

☆ Tab 顺序正确跳转。

3.4 安全性测试

2.4.1 基本安全测试

☆ 各种登录模式的安全性验证、对口令各种要求的测试。
☆ 用户权限(如功能限制、数据访问限制等)的验证。
☆ Cookie 和 Session 的有效期验证等特殊机制的验证。
☆ 敏感数据加密、数据存储安全性的验证。
☆ 验证系统的日志文件是否得到保护。
☆ 测试软件不会因在异常条件下错误操作而导致不安全状态。
☆ 其他各种安全漏洞的检查,如 WSDigger 扫描。跨站点攻击 XSS,get 方式在 URL 后输入如 name=,若弹出警告或者查看源文件中存在输 入的字符串则存在漏洞。
☆ SQL 注入,sql=‘select yhm,mm from users where username=’ + yhmTextField.getTex(t ) +’ and password=’ +mmTextField.getTex(t ) ,如用户名中输入 admin’ --后,不输入密码也可以登录。

2.4.2 认证测试

☆ 登录页面是否存在验证码,不存在说明存在漏洞。
☆ 验证码和用户名、密码是否一次性、同时提交给服务器验证,如果分开提交, 则存在漏洞。
☆ 在服务器端,只有在验证码检验通过后才进行用户名和密码的检验,否则存在 漏洞。
☆ 验证码是否为图片形式且在一张图片中,不为图片形式或不在一张图片中,说 明存在漏洞。
☆ 请求 10 次观察验证码是否随机生成,如果存在一定的规律(例如 5 次后出现 同一验证码)说明存在漏洞。
☆ 观察验证码图片中背景是否存在无规律的点或线条,如果背景为纯色(例如只 有白色)说明存在漏洞。
☆ 验证码在认证一次后是否立即失效。
☆ 服务器不能对认证错误提示准确的信息,如用户名错误、密码错误等。
☆ 提供合理的锁定策略。
☆ 预防认证被绕过,如 sql 注入。

2.4.3 会话管理测试

☆ 用户登录后,身份信息不再由客户端提交,而是以服务器端会话信息中保存的 身份信息为准。
☆ URL 中不能携带 Session ID 信息。
☆ 登录后的页面有明确的"退出"或"注销"按钮,注销时会话信息要清除。

2.4.4 权限管理测试

☆ 横向越权:攻击者尝试访问与他拥有相同权限的用户的资源。
☆ 纵向越权:一个低级别攻击者尝试访问高级别用户的资源。

2.4.5 文件和目录测试

☆ 不存在不需要对外开放的敏感接口或者接口进行了完善的权限控制;
☆ 禁止获取敏感的目录或文件信息;
☆ 所有对目录的访问均不能打印出文件列表;
☆ 禁止访问和下载文档的备份;
☆ 不能越权获取到不该获取的文件。
☆ 如 DirBuster 扫描。

2.5 数据库测试

☆ 数据库测试是为了发现错误和缺陷而运行数据库的过程。
☆ 数据库测试方法也分为白盒测试和黑盒测试。
☆ 数据库黑盒测试 (数据库表结构是否合理;数据结构(如数据类型、长度)是否正确定义,并且需要注意数据结构与 输入界面中数据的类型和长度是否一致,如果不一致,数据库则会报错;表与表之间的关系是否正确,主外键是否合理;索引的创建是否合理;存储过程功能是否完整,能否正确接受输入、输出正确结果;能否正确插入(增加)、更新、删除数据;数据库操作权限定义是否正确;能否正确处理并发操作;表级、列级完整性约束条件是否满足;数据库的处理能力、可靠性、可维护性、性能是否满足要求。)

web端通用测试点请移步

PentestDB 1 介绍 本项目用于提供渗透测试的辅助工具、资源文件 1.1 辅助工具 提供轻量级的易扩展的工具,可以快速编写exploit、添加漏洞验证/扫描规则、添加指纹规则、爆破规则等;包含以下功能: Exploit系统。易扩展的exploit系统,能够使用API快速编写exploit,能够批量执行exploit 子域名爆破。爆破子域名,使用域传送、DNS爆破、GoogleHacking进行子域名爆破 C段扫描。C段扫描,支持生成html格式输出文件 服务应用识别。识别CMS类型、Web服务器、操作系统、WEB中间件等 URI敏感资源爆破。爆破WEB敏感文件,整站备份、配置备份、敏感文件等 社工密码字典生成。根据社工信息生成密码爆破字典 Google Hacking。GoogleHacking,生成URL字典 编解码等功能。支持非常丰富的编解码方式,方便做payload编码 1.2 资源文件 各种渗透测试常用的资源文件,包括各种爆破字典、exploit、webshell、攻击payload等 2 安装 从这里下载最新版本,或使用命令 git clone https://github.com/alpha1e0/pentestdb.git clone到本地 PentestDB支持Windows/Linux/MacOS,需使用python 2.6.x 或 2.7.x运行 2.1 解决lxml依赖 项目中的脚本文件依赖于lxml linux系统一般默认安装lxml,如果没有可通过以下方式安装: pip install lxml apt-get install lxml yum install lxml windows可通过以下方式安装lxml: 到这里找到对应系统的安装包,下载到本地 安装安装包,pip install package.whl 2.2 解决nmap依赖 项目中的C段扫描依赖于nmap扫描器 到这里下载nmap相应版本 在windows下需要设置环境变量,让系统能够找到nmap.exe。 3 使用 3.1 常用脚本 项目中的python脚本提供用有用的渗透辅助功能,根目录下的pen.py为脚本入口,另外script目录下也有其他一些脚本。 3.1.1 Exploit系统 pen.py的exploit子命令提供了exploit模块相关操作,exploit模块是一个轻量级的exploit框架,可以编写各种web漏洞的exploit: 搜索exploit信息 增加、删除、修改exploit信息 执行某个exploit 搜索并批量执行exploit exploit保存在项目根目录下的exploit目录下 例如: # 列举、搜索、注册、更新、删除 pen.py exploit -l pen.py exploit -q appName:joomla pen.py exploit --register exploit pen.py exploit --update cms_joomla_3_4_session_object_injection.py pen.py exploit -d "Joomla 1.5~3.4 session对象注入漏洞exploit" pen.py exploit --detail "Joomla 1.5~3.4 session对象注入漏洞exploit" # 执行exploit pen.py exploit -e cms_joomla_3_4_session_object_injection.py -u http://127.0.0.1:1234 --attack pen.py exploit -s appName:joomla -u http://127.0.0.1:1234 --verify pen.py exploit -s appName:joomla -u @url.txt 注:有关exploit模块的详细信息请参考exploit/readme.md 3.1.2 服务应用识别 pen.py的service子命令提供了服务应用识别的功能,能够识别服务器信息,包括: 操作系统 web服务器 web中间件 CMS等 例如: pen.py service http://xxx.com # 开启CMS识别加强模式 pen.py service http://xxx.com --cms 3.1.3 社工密码字典生成 pen.py的password子命令提供了根据社工信息生成密码字典的功能,能够设置不同关键字生成密码字典
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值