网络安全部分笔记
web安全
1、跨站脚本攻击 XSS (Cross Site Scripting)
XSS注入HTML和JavaScript代码到用户浏览器的网页上,从而劫持用户会话。.
目标:web应用程序的用户。
攻击类型
1)反射型XSS——非持久型XSS
2)存储型XSS——持久型XSS
3)DOM Based XSS
cookie劫持攻击,模拟GET,POST请求
防御:
- 使用HttpOnly
- 输入检查
- 输出检查
- XSS过滤 针对“< >”“JaveScript”等敏感字符串
2、跨站点请求伪造(CSRF)Cross Site Request Forgery
CSRF攻击是攻击者利用用户的身份操作用户账户的一种攻击方式。.
防御
- 在非GET请求中增加token
- 正确使用GET,POST请求和Cookie
GET用在查看、列举、展示等不需要改变资源属性的时候。
POST用在Form表单提交,改变资源属性的时候。 - 使用验证码
- Referer Check
3、点击劫持 ClickJacking
4、SQL注入
目标:提供服务的web应用程序。
条件:
- 用户能够控制输入;
- 原本要程序执行的代码,拼接了用户输入的数据;
攻击:
- 盲注 比较and 1=2, and 1=1 结果对比分析注入成功与否。
- Timing Attack 使用BENCHMARK() 函数运行时间判断注入结果
技巧:
- 通过返回值做系统推断
- 命令执行 编码问题
- 攻击存储过程 SQL Column Truncation
防御
- 使用预编译语句,绑定变量,参数化语句
- 使用存储过程
- 检查数据类型
- 使用安全函数
- 避免SQL返回细节信息,避免打印SQL错误信息
5、其他注入
- XML注入
- 代码注入 命令行注入
- CRLF注入
6、文件上传漏洞 可执行脚本文件
- 上传的文件能够被web容器解释执行
- 用户能够访问这个文件
绕过文件上传检查功能 xxx.php [ ].jpg
防御
- 设置文件上传目录为不可执行
- 判断文件类型
- 使用随机数改写文件名和文件路径
- 单独设置文件服务器的域名
7、密码
密码哈希后保存进数据库
使用salt MD5(Username+Password+ Salt)
8、Session与认证
将Session ID 加密后保存在Cookie中
防御
Session生命周期 定时强制销毁
9、访问控制
- 垂直权限管理——基于角色的访问控制
- 水平权限管理——基于数据的访问控制
10、DDOS攻击 ——(Distributed Denial of Service)分布式拒绝服务
SYN Flood、UDP Flood、ICMP Flood
网络层
- SYN flood 防御 SYN Cookie/SYN Proxy,
- ACK flood 发送带有ACK标志位的TCP报文,消耗资源
- UDP flood 无连接发送大量数据包,杀敌一千自损八百
- ICMP flood 不断发送不正常的ICMP包
防御
- 网络架构,采用负载均衡分流;
- 添加抗DDOS设备,进行流量清洗;
- 限制同时打开SYN数目,缩短SYN未连接Timeout时间;
- 限制单IP请求频率;
- 关闭不必要的服务;
应用层
- CC攻击,绿盟 Challenge Collapsar
针对消耗资源比较大的页面不断发起不正常的请求; - DNS攻击
发送大量域名解析请求,域名根本不存在的请求,使其向上层DNS服务器查询,使其负载过大。 - HTTP慢速连接攻击
先建立起HTTP连接,设置较大的content-length,每次只发送很少的字节,让服务器一直以为HTTP头部没有传输完成,资源耗尽。
防御
- 针对IP+Cookie 限制访问频率;
- 关闭服务器最大连接数,合理配置中间件,缓解DDos攻击;
- 在请求中添加验证码;
- 合理使用缓存技术,减少数据库读取操作;
11、PHP安全
- 文件包含漏洞
- 本地文件包含
- 远程文件包含
- 变量覆盖漏洞
- 全局变量覆盖
- 代码执行漏洞
12、流量劫持
- DNS劫持
- HTTP劫持
篡改HTTP请求返回内容——加密SSL/TLS
13、服务器漏洞
- 越权操作漏洞——对用户进行身份认证和确认
- 目录遍历漏洞——对URL或参数进行…/, ./等字符转义过滤
- 物理路径泄露——定制特殊的500报错页面,做好后端出错处理
- 源码暴露漏洞
14、交换机攻击
- VLAN跳跃攻击
- 生成树攻击
- MAC表洪水攻击
- ARP攻击
- VTP攻击
- DHCP欺骗攻击