基础
1. 安全三要素
机密性、完整性、可用性
2. 安全的本质是信任问题
3. 防御
最小权限原则
纵深防御原则
数据与代码分离原则
不可预测性原则
4. CSRF(跨站请求伪造)
4.1 本质:重要操作的参数都可以被攻击者猜测
4.2 cookie
SessionCookie: 临时,保存在内存中;
Third-partyCookie: 存在时间限制,保存在本地;
浏览器会限制在跨域请求中发送Third-partyCookie。
4.3 防御:不可预测性原则
验证码
referer check
token(保密性、随机性)
5. 同源策略
同源:协议、IP(域名)、端口
限制了不同源的脚本对当前源的’document‘(文档对象)读取或修改
限制范围:DOM、cookie、XMLHttpRequest、第三方插件(Flash等)
6. 文件上传
6.1 绕过
%00截断(语言或系统的终止符)
6.2 文件解析漏洞
Apache
- 从后往前解析文件名 ,造成多后缀解析漏洞;
(条件:apache使用module模式;
在配置服务器时自定义添加一个handler,使Apache能够解析PHP) - 1.php\x0a,换行解析漏洞;
IIS6
- ";"截断,默认会将*.asp;.jpg 此种格式的文件名解析为asp
- 默认会将扩展名为.asa,.cdx,.cer解析为asp
IIS7
会将/xx.jpg/xx.php 解析为 php 文件
Nginx
配置不当(cig.fix_pathinfo)导致nginx把如test.jpg/.php文件交给fastcgi处理,最终会把jpg文件当作php文件解析
7. HTTP协议
7.1 HTTP请求头
Accept : 指定客户端接收的内容类型
Accept-Charset : 浏览器支持接收的字符集编码集
Accept-Encoding : 浏览器支持的返回内容压缩编码类型
Accept-Language : 浏览器接受的语言
Cookie : 用户信息相关
Host : 被请求的服务器和端口信息
Referer : 当前请求页面所在的完整路径,即当前请求的来源页面
Origin : 请求发起地址的协议和域名,跨域时存在
8. TCP/IP
数据链路层、网络层和传输层负责处理网络通信细节(在内核空间实现)
应用层负责处理应用程序的逻辑(用户空间实现)
8.1 TCP四层结构
- 数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输
协议:
ARP: 将IP地址转换为物理地址
- 网络层: 实现数据包的选路和转发
协议:
IP:根据数据包的目的IP地址来发送数据包
特点: 无状态、无连接、不可靠
ICMP: 检测网络连接
- 传输层: 为两台主机上的应用程序提供端到端的通信
协议:
TCP:为应用层提供可靠的、面向连接和基于流的服务
特点: 有状态(11种)、有连接、可靠
UDP:为应用层提供不可靠、无连接和基于数据报的服务
- 应用层: 负责处理应用程序的逻辑(用户空间实现)
协议:
Ping: 利用ICMP检测网络连接
Telnet:远程登录协议
DNS: 进行域名到IP地址的转换
9. DDOS
9.1 常见网络层DDOS
SYN flood 、 UDP flood 、 ICMP flood
SYN flood 原理:
(1) 伪造大量IP,向服务器发送大量SYN包;服务器返回SYN/ACK包
(2) 伪造的IP不会应答,服务器会重试3-5次并等待一个SYN time(30s-2min)
(3) 服务器消耗大量资源处理半连接请求,无法处理正常请求
对抗措施:
(1) SYN cookie/SYN proxy : 为每个IP分配一个cookie,统计访问频率。如果短时间内大量请求,则丢弃这个IP来的数据包
(2) safereset
9.2 应用层DDOS
- CC攻击原理: 对资源消耗较大的正常业务应用页面不断发起请求,消耗服务器资源。
常见如: 查询数据库、读/写文件等操作
对抗措施: 限制请求频率(验证码)、应用代码做好性能优化
- 其他
Slowloris : 慢速HTTP攻击
HTTP POST DOS(Content-Length)
Server Limit DOS(Cookie)
10. 单点登录测试思路
SQL注入
用户枚举/爆破弱口令
扫描
框架漏洞
逻辑漏洞
未授权访问