Web安全性测试--超详细用例CASE整理总结
一、漏洞扫描
1.1 等保要求
要求:等保2.0《GB/7 36627-2018 信息安全技术 网络安全等级保护测试评估技术指南》中5.2.3 漏洞扫描章节 基本要求 入侵防御章节
1.2 要求内容
漏洞扫描的主要功能是针对主机和开放端口识别已知漏洞、提供建议降低漏洞风险;同时,有助于识别过时的软件版本、缺失的补丁和错误配置,并验证其与机构安全策略的一致性。
进行漏洞扫描时,可考虑以下评估要素和评估原则:
a) 识别漏洞相关信息,包含漏洞名称、类型、漏洞描述、风险等级、修复建议等内容;
b) 通过工具识别结合人工分析的方式,对发现的漏洞进行关联分析,从而准确判断漏洞的风险等级;
c) 漏洞扫描前,扫描设备应更新升级至最新的漏洞库,以确保能识别最新的漏洞;
d) 依据漏洞扫描工具的漏洞分析原理(如特征库匹配、攻击探测等),谨慎选择扫描策略,防止引起测评对象故障;
e) 使用漏洞扫描设备时应对扫描线程数、流量进行限制,以降低测评对测评对象产生的风险。
1.3 用例CASE
编号 | 前提条件 | 步骤 | 预期 |
---|---|---|---|
1 | 关闭防火墙 | 使用Nessus漏扫 | 无中高危以上漏洞 |
2 | 关闭防火墙 | 使用AppScan漏扫工具对URL产品漏扫 | 无中高危以上漏洞 |
3 | 关闭防火墙 | 使用AWVS工具对所有web服务漏洞扫描 | 无中高危以上漏洞 |
二、基础安全
2.1 js代码安全
- 检查点:是否可以明文查看代码
- 测试范围:前端所有js编码的产品
- 测试方式:人工查看
编号 | 标题 | 前提条件 | 步骤 | 预期 |
---|---|---|---|---|
1 | 前端js代码混淆 | 无 | 通过登录主机进入应用的安装路径,查看前端是否有is代码。所有is代码是否已做混淆或加固 | js代码做混淆或加固 |
2.2 XXE注入(XML外部实体注入)
- 检查点:XXE注入
- 测试范围:使用XML传参的地方均有可能存在XXE注入;XXE检测URL:使用XML参数传递的URL,如:登录页面,搜索页面、提交评论、发表留言、页面等
- 测试方式:一般这种漏洞在使用xml的地方(用awvs能够扫描出这些点),看到了SYSTEM这个参数就有的利用了,然后采用burp抓包,构造payload进行xml实体注入。我们这里直接用burp抓包,利用file读取文件目录;如果是root权限的话,就可以进一步读取shadows文件,数据库配置文件等等,利用价值比较大。普通权限的话我只能根据用户名来爆破ssh,ftp等等服务,或者查看能够读取的文件,进一步扩大渗透范围。
编号 | 标题 | 步骤 | 预期 |
---|---|---|---|
1 | XXE注入-用户登录 | 修改xml参数如下: <?xml version="1.0"?> <!ELEMENTrANY > <!ENTITY myentity system "file:///etc/passwd"> ]> | 无法入侵成功,外部引入xml代码不会被执行 1.不能执行外部实体xml代码。(也可以不存在提示信息,只要不暴露数据即可 ) 2.存在提示时提示信息无暴露表信息 |
说明:myentity通过 SYSTEM参数来实体解析远程服务器中的etc/passwd文件,导致xml外部实体攻击
2.3 SQL注入
- 检查点:SQL注入
- 测试范围:搜索查询文本框;带有参数传递的URL,如:登录页面,搜索页面、提交评论、发表留言、页面等
- 测试方式:手工注入
- 说明:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
编号 | 标题 | 步骤 | 预期 |
---|---|---|---|
1 | SQL注入文本框(搜索页面文本框) | 'or 1=1-- | 无法入侵成功,无数据库服务器信息报错 1.不能查询出所有数据。(也可以不存在提示信息,只要不暴露数据即可) 2.存在提示时提示信息无暴露表信息 |
2 | _(下划线) | 无法入侵成功,无数据库服务器信息报错 1.不能查询出所有数据。(也可以不存在提示信息,只要不暴露数据即可 ) 2.存在提示时提示信息无暴露表信息 | |
3 | and (select count(*) from sysobjects)>0 | 无法入侵成功,无数据库服务器信息报错 |