软件测试学习之路--Web测试

Web测试

  • 验证软件是否正确实现了需求规格说明书中明确定义的需求
  • 验证软件是否遗漏了需求规格说明书中明确定义的需求
  • 验证软件是否将需求规格说明书中未定义的需求实现
  • 验证软件是否对异常情况进行了处理,容错性好
  • 验证软件是否满足用户的使用需求

功能测试:

1.链接测试:

  • 超链接与说明文字相匹配
  • 超链接对应的URL地址存在
  • 超链接未连接到任何地址,什么都不做
  • 链接的描述须精简有效
  • 主要借助工具或脚本遍历链接

2.表单测试:

  • 表单界面内容显示正确性
  • 页面是否有不该有的源代码
  • 下拉列表的选择性和可填性
  • 单选框的独选型
  • 长文本的滚动条
  • 文本框的格式化
  • 页面缩放带来的文字环绕
  • 每个字段的类型和实际所接受的数据类型
  • 界面输入框的可承载长度,超过最长长度是否不显示

3.Cookie测试:

  • Cookie的作用域是否合理
  • 用于保存一些关键数据的Cookie是否被加密
  • Cookie过期时间是否正确
  • 有选择性地拒绝Cookie

4.Session测试:

  • Session不能过度使用,会加重服务器维护Session的负担
  • Session的过期时间设置是否合理
  • Session的建值是否对应
  • Session过期后客户端是否生成新的SessionID
  • Session与Cookie是否存在冲突

5.脚本测试:

  • 对客户端脚本(JavaScript)和服务器脚本(PHP)进行测试
  • 从应用层关注相应的脚本功能,从代码面验证脚本的完整性

6.文件上传测试:

  • 只能上传允许的附件类型
  • 不能上传脚本或可执行文件
  • 不能单纯以后缀名来判断文件类型
  • 目标文件不存在是否可正常处理
  • 上传超大文件能否正常处理
  • 上传空文件能否正常处理
  • 上传文件服务端是否使用接口检查
  • 上传文件服务端保存位置和保存方式(不能直接保存与数据库中)
  • 上传文件服务端是否被重命名,应对文件名冲突

7.数据库测试:

  • 数据库表结构是否合理
  • 表与表之间的关系是否理清,主外键是否合理
  • 列的类型和长度定义是否满足功能和性能方面的需求
  • 索引的创建是否合理
  • 存储过程是否功能完整

易用性测试

  • 站点整体布局合理
  • 页面导航直观
  • 图形内容风格统一
  • 页面内容准确
  • 注意快捷方式
  • 满足区域文化
  • 考虑用户群体

兼容性测试

  • 浏览器类型、浏览器版本、硬件
  • 服务器版本、数据库版本、使用语言版本、网络环境之间的兼容性

安全性测试

  • 认证与授权:验证用户的登录和权限是否正常
  • Session与Cookie:验证Session和Cookie不会导致信息泄露和认证错误
  • 文件上传漏洞:避免非法文件上传使服务器受到攻击
  • SQL注入:验证系统不会因为非法输入而将SQL语句的正常运行顺序进行修改,导致信息泄露,甚至数据库内容被篡改
  • Script脚本攻击
  • XSS跨站攻击:验证系统不会因为非法输入脚本影响其它客户端的安全
  • 客户端输入验证复查:服务端脚本需要同步对客户端输入信息进行验证
  • DDOS拒绝服务攻击:SYN变种攻击、TCP混乱数据包攻击、UDP协议攻击、WEB Server、游戏服务器攻击
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、付费专栏及课程。

余额充值