渗透测试原理
由安全专家对网站应用系统,尤其是通过基于 web 的应用系统进行应用安全评估和渗透测试,发现和 弥补应用系统存在的弱点。安全专家模拟黑客全面检测 web 应用存在的漏洞并使用攻击向量对漏洞进行控 制操作,评估漏洞对企业平台功能或资产可以造成的损害,进面评估对企业业务的影响。原理如图所示:
标准遵从
国内标准:
- GB/T 17859-1999 计算机信息系统安全保护等级划分准则
- GB/T 20984-2007 信息安全技术 信息安全风险评估规范
- GB/T 19716-2005 信息技术 信息安全管理实用规则
- GB/Z 20986-2007 信息安全事件分类分级指南
- GB/T18336-2008 信息技术 安全性评估准则
- GB/T 20988-2007 信息系统灾难恢复规范
- GB/T 32213-2015 信息安全技术 公钥基础设施 远程口令鉴别与密钥建立规范
- GB/T 31722-2015 信息技术 安全技术 信息安全风险管理
- GB/T 35284-2017 信息安全技术 网站身份和系统安全要求与评估方法
国际标准:
- ISO27000 系列
- ISO15408 信息技术安全评估准则
- Microsoft 和 IBM 软件开发生命周期
- OWASP TOP 10 Web 安全应用风险
- ISO13335 信息技术-IT 安全管理指南
- CC-ISO15408 信息技术安全性评估准则
- NIST SP 800-30 信息技术系统风险管理指南
- NIST SP 800-26 信息技术系统安全自我评估指南
- 美国国家安全局 (NAS) 发布的 SSE-CMM V2.0 模型
漏洞评级定义
序号 | 漏洞名称 | 漏洞危害 |
---|---|---|
1 | 核心功能认证缺失 | 高 |
2 | 系统命令注入 | 高 |
3 | SQL 注入 | 高 |
4 | 恶意文件/脚本上传 | 高 |
5 | 访问控制失效(水平/垂直越权) | 高 |
6 | 敏感文件下载 | 高 |
7 | 服务器端模板注入 | 高 |
8 | Python 代码注入 | 高 |
9 | 相对路径遍历 | 中 |
10 | GET 方法提交敏感参数 | 高 |
11 | LDAP 注入 | 高 |
12 | XML 注入(XXE) | 高 |
13 | XPath 注入 | 高 |
14 | 存储型 XSS | 高 |
15 | 反射型 XSS | 中 |
16 | DOM XSS | 中 |
17 | 敏感文件泄露 | 高 |
18 | 访问控制失效(强制浏览) | 高 |
19 | 业务逻辑绕过 | 高/中/低 |
20 | 不安全的密码重置功能(任意密码重置) | 高 |
21 | 短信轰炸、邮箱轰炸 | 中 |
22 | 不可用的功能 | 高 |
23 | 敏感信息被明文返回 | 中 |
24 | 敏感信息未被加密存储在后端数据库 | 中 |
25 | 敏感信息未加密 | 中 |
26 | CSRF | 中 |
27 | 暴力破解 | 中 |
28 | URL 重定向 | 中 |
29 | 未加盐的密码哈希 | 中 |
30 | 敏感错误信息泄露 | 低 |
31 | 邮件地址泄露 | 低 |
32 | 用户名枚举 | 低 |
33 | 内部主机名泄露 | 低 |
34 | 内部 IP 泄露 | 低 |
35 | 通过 HTTP 请求的 SQL 语句枚举数据库信息 | 高 |
36 | 超级管理员控制台可被 Internet 访问 | 中 |
37 | 密码复杂度要求缺失 | 中 |
38 | 登录后会话 ID 未更新 | 中 |
39 | 允许未受信任的 SSL 证书 | 中 |
40 | 可预测的会话 Cookie | 中 |
41 | Cookie 存储敏感信息 | 中 |
42 | 未强制加密 | 中 |
43 | 未被设置为安全的会话 Cookie | 中 |
44 | 没有登出功能 | 中 |
45 | 不过期的会话 | 中 |
46 | 登出功能不终止会话 | 中 |
47 | 应用允许同时登陆 | 中 |
48 | 未启用端对端加密机制 | 中 |
49 | 敏感信息缓存 | 中 |
50 | 非必要的 HTTP 方法 | 中 |
51 | 跨域资源共享(CORS) | 低 |
52 | 缺少更改密码功能 | 中 |
53 | 表单开启自动填写功能 | 低 |
54 | 服务器允许列出目录列表 | 低 |
55 | 跨域脚本包含 | 低 |
56 | 不完整的登出(子窗口不关闭) | 低 |
57 | 会话过期后无重定向 | 低 |
58 | Robots.txt 文件暴露网站结构 | 低 |
59 | 敏感代码注释 | 低 |
60 | 服务器信息泄露 | 低 |
61 | Cookie 未设置 HTTPOnly | 低 |
62 | VIEWSTATE 参数泄露敏感信息 | 低 |
63 | 过长的会话过期时间 | 低 |
64 | 缺少 Strict Transport Security 头部 | 低 |
65 | HTTP.sys 远程代码执行 | 中 |
66 | OpenSSL 心跳信息泄露(心脏流血) | 中 |
67 | 软件版本过低 | 低 |
68 | 操作系统版本过低 | 低 |
69 | 脆弱的软件组件 | 低 |
70 | 不受支持/易被攻击的版本 | 低 |
71 | Host 头部注入 | 中 |
72 | 开放多余的服务 | 中 |
73 | 脆弱的 SSL 版本(SSLv2,SSLv3) | 中 |
74 | 支持 SSL 脆弱加密套件 | 中 |
75 | 跨框架脚本攻击(CFS) | 中 |
76 | 允许外域 Flash 访问 | 中 |
77 | 服务器存在非必要文件 | 低 |
78 | Flash 参数“Allow Script Access”被设置为“Always” | 低 |
79 | 服务器隐藏目录被发现 | 低 |
80 | 未设置 X-Frame-Options 头 | 低 |
81 | 未设置 X-Content-Type-Options 头 | 低 |
82 | 未设置 Cache-Control 头 | 低 |
83 | 弱口令 | 高 |
84 | SNMP 弱口令 | 中 |
渗透测试工具集
渗透测试团队用到的渗透测试工具集参考
名称 | 作用 | 归属 |
---|---|---|
nmap | 端口扫描、主机发现 | 信息收集 |
subDomainsBrute | 子域名发现 | 信息收集 |
firebug | 数据分析 | 信息收集 |
wireshark | 数据分析 | 信息获取 |
Fiddler | 数据分析 | 信息收集 |
whois | 收集信息 | 信息收集 |
DirBrute | 目录扫描 | 信息收集 |
wpscan | 漏洞扫描 | 漏洞发现 |
Burpsuite | 综合利用工具 | 信息收集 |
AWVS | 漏洞扫描器 | 漏洞发现 |
Beef XSS | 综合利用 | 漏洞利用 |
hydra | 暴力破解 | 漏洞利用 |
metasploit | 渗透测试框架 | 漏洞利用 |
sqlmap | SQL 注入利用 | 漏洞利用 |
Havij | SQL 注入利用 | 漏洞利用 |
struts2 | 利用工具 针对 struts2 漏洞 | 漏洞利用 |
中国菜刀 | 管理 webshell | 漏洞利用 |
nc | 端口转发 | 内网渗透 |
lcx | 端口转发 | 内网渗透 |
reGeorgproxy | 流量转发 | 内网渗透 |
proxychain | 代理工具 | 内网渗透 |
reDug | 流量转发 | 内网渗透 |
Tunna | 流量转发 | 内网渗透 |
mimikatz | windows 密码获取 | 内网渗透 |
AndroidKiller | 反编译 apk 文件 | 源码获取 |
ApkToolkit | 反编译 apk 文件 | 源码获取 |
APKIDE | 反编译 apk 文件 | 源码获取 |
jd-gui | java 反编译 | 源码分析 |
Winhex | 编辑工具 | 二进制分析 |
常见漏洞测试方法
SQL 注入测试
将数据包中存在参数的值修改为测试语句,并观察返回包数据常见测试语句内容如下:
AND 1=1/ AND 1=2 'AND '1'='1/'AND '1'='2
"AND "1"="1/"AND "1"="1
━ XSS 漏洞测试
将数据包中存在参数的值修改为测试语句,并观察返回包数据常见测试语句内容如下:
“;prompt(document.cookie);// ‘“><script>alert(document.cookie)</script>
━ 越权漏洞测试
将数据包中参数进行修改,观察返回数据包中是否包含超出用户权限的数据。
━ 逻辑漏洞测试
将数据包中参数进行修改,观察返回数据包中违反正常业务逻辑是否可被系统执行。
━ 暴力破解漏洞测试
短时间内大量发送含有测试语句的数据包至特定身份认证接口,观察返回数据包状态, 判断是否已发送数 据包均被系统处理。
━ 短信轰炸漏洞测试
使用测试工具短时间内频繁发送请求短信数据包,观察系统是否存在短信发送频率限制。
━ 任意文件下载漏洞测试
下载系统文件,观察是否对用户查看或下载的文件不做限制。
━ 跨站请求伪造测试
构造请求之后以其他账户身份登录之后点击,观察该请求操作是否被执行。
━ URL 重定向测试
在 URL 中构造一个恶意地址,查看用户是否跳转到恶意网站。
━ 敏感信息泄露测试
发送请求数据包,观察其中是否存在敏感信息.
老范?
EZ?