TCP/IP协议攻击与防范
一、TCP/IP协议攻击介绍
1.1 Internet的结构
LAN:局域网 WAN:广域网 WLAN:无线局域网
私有IP地址与公有IP地址?
私有地址:A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
NAT技术:网络地址转换,将私有地址转换成公网地址。
1.2 TCP/IP协议栈
ISO:国际标准化组织
物理层:定义了线缆、接口和电压的标准-----数据以比特流进行传输
数据链路层:数据以数据帧的方式进行传输,是以MAC地址进行寻址,设备:交换机
网络层:数据以IP包的方式进行传输,是以IP地址进行寻址,设备:路由器 协议:IP/ICMP/ARP
传输层:以端口来确定数据的收发,协议:TCP/UDP
会话层:建立会话
表示层:对数据进行压缩、加密码、解密等
应用层:就是指各种应用程序(软件)
实际使用的是:TCP/IP模型(五层、四层)
1.3 TCP/IP协议栈典型封包过程
1.4 IP网络互连的原理

1.5 TCP/IP网络协议栈-安全缺陷与攻击技术
1.6 基于TCP/IP协议簇的安全架构
二、MAC泛洪攻击的实施与防御
MAC泛洪攻击是一种针对局域网交换机的攻击方式,目的在于窃取局域网内用户的通信数据。
2.1 MAC泛洪攻击原理
MAC泛洪攻击主要是利用局域网交换机的mac学习和老化机制。
交换机的工作流程如下
局域网中的pc1发送数据帧给pc2,经过交换机时,交换机会在内部mac地址表中查找数据帧中的目标mac地址,如果找到就将该数据帧发送到相应的端口,如果找不到,交换机就会向入端口以外的所有端口发送此数据帧【就是所谓的广播,也叫泛洪】。
mac表的结构
内部mac表一般8k左右,如果mac表满了,其他mac地址就加不进来。
交换机的mac学习过程
一开始没有主机连接,交换机内的mac表是空白的,此时就要进行学习。
当PC1往PC2发送数据经过交换机时,交换机会把数据帧中的源mac地址和进入的端口号记录到mac表中;由于一开始mac表中没有PC2的mac地址和端口绑定,所以交换机会将这个数据帧进行广播【泛洪】。
本网段中的每台主机会比对数据帧的目的mac地址是否和自身一样,如果一样就应答,如果不一样,就丢弃。
当PC2接收到数据帧会应答。
应答数据帧经过交换机时,交换机会将应答数据帧的源mac地址和端口号学习到mac表中,也就是PC2的mac地址和端口号绑定。
交换机根据应答数据帧的目的mac地址,开始查询mac表,发现PC1的记录存在,就根据这绑定的端口号,直接将应答数据帧发给了PC1。
交换机的mac老化机制
- 若交换机与某台主机长时间(一般为300秒)未通信,交换机就会把该主机的mac地址从mac地址表里删除掉,等下次通信时重新学习地址。
泛洪攻击的可能性
正常的通信是除非一开始mac表中没有目标主机的mac和端口,这样才进行数据广播,只要mac表中有相应的绑定关系,之后两台主机间的通信,都是由交换机直接根据mac和端口绑定进行转发,其他的主机是获取不到这两台主机之间的数据的。
泛洪攻击的目标就是想获取主机之间的通信数据。要想达到这个目的,就需要强迫交换机进行数据广播,那就要实现mac表中没有目标主机 的mac和端口绑定。泛洪攻击的实现方法就是通过伪造大量的未知mac地址进行通信,交换机进行不断的学习,很快mac表就会被充满,这样正常的主机的mac地址在经过老化之后,就无法再添加到mac地址表中,导致之后的数据都变成了广播。
2.2 MAC泛洪攻击实验
2.2.1 实验拓朴图
2.2.2 实验步骤
准备工作:在kali中安装Dsniff套件
Dsniff是一个基于unix系统网络嗅探工具;Dsniff是一个工具集,主要分为四类:
- 被动网络活动监视工具,包括:dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy;
- 针对SSH和SSL的MITM(Man-In-The-Middle)"攻击"工具,包括sshmitm和webmitm;
- 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof;
- 其它工具,包括tcpkill、tcpnice。
# sudo apt-get install dsniff //安装dsniff工具
# macof -h //查看是否安装成功
# arpspoof -h //查看是否安装成功
在kali中打开终端执行命令:macof
在kali中再打开一个终端执行命令:wireshark
在Windows XP系统中登录FTP服务器:
在kali上查看并分析抓到的数据包:
2.3 MAC泛洪攻击防范措施
通过Port-Security(端口安全性)技术可以有效防范MAC泛洪攻击。
Port-Security可以限制交换机端口上所允许的有效MAC地址的数量,这样交换机就不会无限制的从端口获取MAC条目。
Port-Security还可以绑定MAC地址,如果该端口连接的MAC地址与绑定的MAC地址不一致就认为发生安全违规。
当发生安全违规,交换机将自动采取相应的动作:
关闭(shutdown):当发生安全违规时端口将关闭。
保护(protect):当发生安全违规时,带有未知源地址的数据帧将被丢弃。
限制(restrict):当发后安全违规时,除了将数据帧丢弃之外,还会发出SNMP消息,并记录日志等。
三、ARP欺骗攻击与防护
3.1 ARP协议原理
ARP:地址解析协议,用来实现IP地址到物理地址的映射。
每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表。
查询目的主机MAC地址的步骤:
1.ARP进程在本局域网上广播发送一个ARP请求分组
2.在本局域网上的所有主机运行的ARP进程都收到该ARP请求分组
3.主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP请求分组,并单播向主机A发送ARP响应分组。
4.主机A收到主机B的ARP相应分组以后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
5.在Windows系统中可以通过arp -a查看arp缓存表信息。
3.2 ARP攻击原理
3.2.1 ARP断网攻击原理
ARP攻击就是通过伪造IP地址和MAC地址的对应关系,使得网络无法正常通信。
3.2.2 ARP欺骗原理
伪装成网关
欺骗源把自己(或其他非网关主机)伪装成网关,向局域网内的目标主机发送ARP应答报文,使得局域网内的主机误以为欺骗源的MAC地址是网关MAC的地址,并将原本应该流向网关的数据都发送到欺骗源。
伪装成主机
欺骗源2把自己伪装成局域网内的另一台主机3将主机3的IP地址对应的MAC地址替换为欺骗源C的IP地址对应的MAC地址,使得局域网内的主机1发往主机3的报文都流向主机2,如下图所示:
3.3 ARP攻击实验
3.3.1实验拓朴
3.3.2 实验步骤
场景一:(让宿舍室友断网)ARP网关欺骗:
在客户机上测试是否能上网,并查看Arp缓存表
在Kali上进行ARP攻击:
$ nbtscan 192.168.149.0/24 //扫描存活主机
$ route -n //查看网关地址
#arpspoof -i eth0 -t 192.168.149.151 192.168.149.2 //伪装网关实现断网攻击
说明:arpspoof -i 网卡 -t 目标IP 网关
在客户机测试是否能上网,并查看ARP缓存表:
场景二(监控室友网络)
为使受害者主机的数据包能够顺利收发,我们需在Kali Linux中开启IP转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
并在kali中打开wireshark工具对数据流量进行监控
# wireshark
在客户机中打开网页上网
在kali机中对流量进行分析
场景三:伪装成服务器,窃取用户的用户名和密码
# arpspoof -i eth0 -t 192.168.149.151 192.168.149.155
在客户端登录FTP服务器
在Kali机查看用户登录FTP服务器的用户名和密码
3.4 ARP攻击的防范措施
使用静态ARP表
将MAC地址和IP地址绑定在一起,避免动态ARP请求引发的攻击,如:网关/关键服务器。
命令格式:arp -s IP地址 MAC地址 类型
如:>arp -s 192.168.149.2 00-50-56-e9-07-70
-s—将相应的IP地址与物理地址的捆绑。
-d—删除所给出的IP地址与物理地址的捆绑。
-a—通过查询Arp协议表来显示lP地址和对应物理地址情况。
启用ARP欺骗检测
一些网络设备可以检测到ARP欺诈攻击,及时发现异常的ARP请求,并对网络流量进行限制,从而防止ARP攻击。
使用VPN
通过VPN建立虚拟专用网络,可以避免ARP攻击带来的风险。
加强网络安全管理
网络管理员可以对网络流量进行监控,及时发现异常的ARP请求,并及时采取措施,限制恶意流量的传输,从而保护网络安全。
使用网络安全设备
例如防火墙、入侵检测系统等设备可以帮助管理员检测和防范网络攻击,包括ARP攻击。
四、ICMP路由重定向攻击
4.1 ICMP介绍
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
测试网络是否通信:ping
路由跟踪:tracert
4.2 ICMP重定向
ICMP重定向报文是ICMP控制报文中的一种。是用来提示主机改变自己的主机路由从而使路由路径最优化的一种ICMP报文。其概念理解的要义是原主机路由不是最佳路由,而其默认网关提醒主机优化自身的主机路由而发送的报文。
4.3 ICMP攻击原理
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送 ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。
4.4 ICMP重定向攻击实例
4.4.1 实验拓朴:
4.4.2实验步骤:
在被攻击机上查看被攻击前的路由表:
C:\Documents and Settings\Administrator>route print
在kali机上开启路由转发
#echo 1 > /proc/sys/net/ipv4/ip_forward
在kali机中安装netwox工具
# apt-get install netwox
在kali机中使用netwox工具实现icmp重定向攻击
netwox 86 -f “host {被攻击主机ip地址}” -g “{新指定的网关ip地址}” -i “{当前网关ip地址}”
# netwox 86 -f "host 192.168.149.151" -g "192.168.149.156" -i "192.168.149.2"
在kali中另开一个终端并打开wireshark进行抓包可以看到被攻击的访问流量,如下图所示:
在被攻击机查看路由表,可以看到所有访问流量都是经过kali机进行访问的,如下图:
netwox工具使用参考:https://blog.51cto.com/u_13389043/6217697
ICMP协议介绍:https://zhuanlan.zhihu.com/p/369623317
4.5 ICMP重定向攻击防范措施
在网络边界合理配置防火墙安全策略以预防攻击,一般除了出站的ICMP Echo Request、出站的ICMP SourceQuench、进站的TTL Exceeded和进站的ICMP DestinationUnrcachablc 之外,其它ICMP 消息类型都应该被阻止。
通过端口镜像技术在内网部署sniffer,全面监控网络流量,当发生攻击时,及时分析数据包,定位攻击源。
及时升级系统软件,配置系统自带的默认防火墙以预防攻击,并通过对注册表的修改禁止 ICMP重定向报文、禁止响应ICMP路由通告报文。
五、DNS欺骗攻击
5.1 DNS工作原理
5.1.1 DNS概述
DNS就是域名系统,是因特网中的一项核心的服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程就是域名解析(或者叫主机名解析)。
作用:将域名解析成IP地址 正向查询
将IP地址解析成域名 反向查询
5.1.2 DNS域名结构
为了处理扩展性问题,DNS使用了大量的DNS服务器。大致来说,有3种类型的服务器:根DNS服务器、顶级域(Top-Level Domain.TLD)DNS服务器和权威DNS服务器
根DNS服务器
因特网上有13个根DNS服务器,这13个服务器实际上是一个冗余的计算机网络以提 供安全性和可靠性;它主要提供TLD服务器的IP地址
顶级域DNS服务器
负责顶级域名,如com,org,net,edu,gov以及各个国家的顶级域名,主要提供权 威DNS服务器的IP地址
权威DNS服务器
互联网上的每一个能够公共访问的主机都具有一个DNS记录,这些记录由某些组织机 构的权威服务器保存。例如常见的服务提供商以及学校和公司都会实现和维护自己的 权威服务器来保存一些主机DNS记录。
本地DNS服务器
该DNS服务器不属于上述的层次结构。但它发挥着极其重要的作用。
各种DNS服务器交互的过程如图所示:
上述例子中利用了递归查询和迭代查询
5.2 常见的DNS攻击及原理
5.2.1 域名劫持
通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的DNS记录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。
这显然是DNS服务提供商的责任,用户束手无策。
5.2.2 缓存投毒
利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站上。其实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;或黑客通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用,黑客可以实现缓存投毒,将错误的域名记录存入缓存中,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果。
5.2.3 ddos攻击
一种攻击针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务;另一种攻击的目标不是DNS服务器,而是利用DNS服务器作为中间的“攻击放大器”,去攻击其它互联网上的主机,导致被攻击主机拒绝服务。
5.2.4 DNS欺骗
DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。
如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
5.3 DNS欺骗攻击实验
5.3.1实验拓朴
5.3.2实验步骤
准备工作
启动Apache服务,并测试是否访问成功
# systemctl start apache2
开启端口转发(在root权限下才能修改成功,将ip_forward 修改为 1
注:ip_forward为0时为断网攻击,目标主机会因此无法上网
#echo 1 > /proc/sys/net/ipv4/ip_forward
修改etter.dns,将目标改为本机ip(同样需要root权限)
# vim /etc/ettercap/etter.dns
利用Ettercap进行DNS欺骗攻击
在客户端测试是否攻击成功
此时客户端无论访问什么网站,访问的目标网站都是kali服务器的网站。
5.4 DNS欺骗攻击防范措施
- 从社会工程学角度出发,不轻易相信他人,坚信天上不可能掉馅饼。
- 保护自己的网络设备,如果自己的网络设备很安全,那么就很难被木马所感染。
-
鉴于DNS欺骗攻击原理,即改变DNS服务器当中的IP地址来实现欺骗攻击,我们可以尝试绑定DNS服务器中的IP地址以及网卡的MAC地址,然后通过得到的DNS服务器应答数据来判断是否为真。
六、TCP协议攻击
6.1 TCP协议介绍
传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接;TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。
参考文档:https://baijiahao.baidu.com/s?id=1686533861418970902&wfr=spider&for=pc
6.1.1 TCP三次握手
6.1.2 TCP四次挥手
在系统中查看连接状态:netstat -an
6.2 TCP攻击及原理
TCP攻击是指利用TCP协议中的漏洞或者缺陷对网络进行攻击的行为。这种攻击方式可以导致网络中的设备不可用,从而影响正常的网络通信。TCP攻击包括SYN Flood攻击、TCP Reset攻击、TCP Session Hijacking攻击等等。这些攻击方式常常被黑客用来发起分布式拒绝服务(DDoS)攻击。
6.2.1 SYN Flood攻击
它利用TCP协议中三次握手的过程,向目标服务器发送大量的TCP连接请求。由于这些请求都是虚假的,服务器在回应这些请求时,需要耗费大量的CPU和内存资源,从而导致服务器无法响应正常的网络请求。
6.2.2 TCP Reset攻击
是利用TCP协议中的RST(reset)标志位,向服务器发送虚假的TCP连接请求。当服务器收到这些虚假的请求时,会断开与客户端的连接。这种攻击方式可以导致服务器中断正常的网络通信。
6.2.3 TCP Session Hijacking
是利用TCP协议中的漏洞,获取正在通信的两个主机之间的会话ID,然后通过伪造的TCP数据包向服务器发送虚假的请求。当服务器收到这些虚假的请求时,会认为它们来自于已经认证的主机,从而给予响应。这种攻击方式可以让攻击者获取敏感信息,例如登录凭证等等。
6.3 TCP攻击实验
6.3.1 实验拓朴
6.3.2 TCP RST攻击
首先在客户端计算机登录到FTP服务器
在kali机上输入以下命令:
# netwox 78 -i "192.168.149.151"
到客户端查看,FTP连接已经断开
6.3.3 TCP会话劫持
hunt实现TCP会话劫持
在kali中使用命令:#ettercap -G
在客户端使用telnet命令登录到Linux服务器
在kali服务器查看会话连接并劫持传话
6.3.4 TCP SYN攻击
在kali机中执行以下命令
# netwox 76 -i "192.168.149.155" -p "21"
此时到服务器上查看CPU使用率,发现CPU占用很高,且服务器已被卡死。
#top 在Linux系统中查看CPU,内存及进程的命令。
在客户端登录服务器的FTP服务,发现已经登录不上了
6.4 TCP攻击防范措施
加强网络安全措施
例如在网络边界处安装防火墙,限制网络流量,限制访问等等,以保护网络的安全;
安装防御系统
例如入侵检测系统(IDS)和入侵防御系统(IPS),可以对网络流量进行实时监测,并 对异常流量进行拦截和处理;
更新网络设备
网络管理员应该定期更新网络设备上的操作系统和应用程序,以确保它们能够及时地修 复已知的漏洞和缺陷;
应用过滤规则
可以通过过滤规则,限制来自特定IP地址和端口的TCP连接请求,从而减少网络中的 异常流量
七、UDP flood攻击
7.1 UDP协议介绍
用户数据报协议(UDP,User Datagram Protocol),无状态不可靠,仅仅是传输数据报。
7.2 UDP Flood
带宽耗尽型拒绝服务攻击;
分布式拒绝服务攻击(DDoS);
利用僵尸网络控制大量受控傀儡主机;
通常会结合IP源地址欺骗技术。
7.3 UDP Flood攻击原理
UDP Flood是日渐猖厥的流量型DoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。 100k pps的UDP Flood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。
正常应用情况下,UDP包双向流量会基本相等,而且大小和内容都是随机的,变化很大。出现UDP Flood的情况下,针对同一目标IP的UDP包在一侧大量出现,并且内容和大小都比较固定。
7.4 UDP Flood攻击实验
7.4.1实验环境
kali机:192.168.149.156
Windows Server 2003:192.168.149.172
Windows XP:192.168.149.151 DNS:192.168.149.172
7.4.2实验步骤
安装DNS服务器
在Windows Server 2003上安装DNS服务,并建立cdjc.com的正向区域和www.cdjc.com的主机记录。
在Windows XP客户端计算机上配置DNS地址指向192.168.149.172
在Windows XP客户端上测试DNS解析,如下图所示:
在kali机上输入以下命令进行UDP Flood攻击:
# hping3 --udp --rand-source -p 53 -d 100 --flood 192.168.149.172
在kali机上使用wireshark抓包,结果如下图所示:
在Windows Server2003服务器上查看CPU使用情况,如下图所示:
在Windows XP客户端上再次进行DNS解析发现已经不能解析域名了
7.4.3 UDP Flood攻击防范措施
禁用或过滤监控和响应服务
禁用或过滤其它的 UDP 服务
网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量
遭遇带宽耗尽型拒绝服务攻击
终端无能为力
补救措施:网络扩容、转移服务器位置
事件响应:汇报给安全应急响应部门、追溯和处置
流量清洗解决方案:ISP为关键客户/服务所提供
八、TCP/IP协议之网络协议攻击防范措施
8.1 监测、预防与安全加固
网络接口层 – 主要安全威胁是网络嗅探
局域网中的监听点检测
网络设计上尽量细分和优化网络结构
关键路径上的网关、路由器等设备的严格安全防护
各类网络采用上层的加密通信协议
互联层
多种检测和过滤技术来发现和阻断网络中欺骗攻击
增强防火墙、路由器和网关设备的安全策略(egress filtering)
关键服务器使用静态绑定IP-MAC映射表、使用IPsec协议加密通讯等预防机制
传输层
加密传输和安全控制机制(身份认证,访问控制)
应用层
加密,用户级身份认证,数字签名技术,授权和访问控制技术以及主机安全技术如审计、入侵检测。
8.2 网络安全协议
8.3 下一代因特网协议
下一代因特网协议
IPv6为代表
ICMPv6、DHCPv6……
没有了ARP
IPv6优势
IPv6具有更大的地址空间:主动扫描和主动传播受到抑制
IPv6使用更小的路由表
IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control) – 提升QoS
IPv6加入了对自动配置(Auto Configuration)的支持
IPv6具有更高的安全性:网络层的数据进行加密....
相关文章:
TCP/IP协议攻击与防范
一、TCP/IP协议攻击介绍 1.1 Internet的结构 LAN:局域网 WAN:广域网 WLAN:无线局域网 私有IP地址与公有IP地址? 私有地址:A类:10.0.0.0~10.255.255.255 B类:172.16.0.0~172.31.255.255…...
1 ISP一键下载
BOOT0BOOT1启动模式说明0X用户Flash用户闪存存储器,也就是Flash启动10系统存储器系统存储器启动,串口下载11SRAM启动SRAM启动,用于在SRAM中调试代码 闪存存储器 是STM32 的内置FLASH,一般使用JTAG或者SWD模式下载程序时,就是下载…...
vue的理解
什么是vue vue是一套用于构建用户界面的渐进式框架,与其他框架不同的是,vue被设计为可以自底向上逐层应用,它也是创建单页面应用的web应用框架。vue的核心库只关注视图层,不仅易上手,还便于与第三方库或既有项目整合。…...
【Leetcode】3206.交替组1
题目描述: https://leetcode.cn/problems/alternating-groups-i/description/?envTypedaily-question&envId2024-11-26 题目示例: 解题思路 思路一: 1.如果color.size()小于等于2,则构不成环,直接返回结果…...
极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【二】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
oracle小技巧-解决特殊密码字符而导致的exp错误
在使用oracle数据库的时候,我们经常会利用exp工具对某些表进行导出。但有些时候,因我们用户密码为安全性设有特殊字符,导致exp导出时候报:“EXP-00056和ORA-12154”,今天我们就分享下如何通过设置符号隔离的小技巧解决…...
tomcat 文件上传 (CVE-2017-12615)
目录 1、漏洞描述 2、访问ip:port 3、漏洞利用 4、Exploit 5、修复建议 1、漏洞描述 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 攻击者将有可能可通过…...
每天五分钟深度学习框架pytorch:卷积神经网络的搭建
本文重点 从本文开始我们将开启卷积神经网络的搭建了,卷积神经网络网络是深度学习中基础的算法模型之一,但是这里我们从实战为主,我们并不会对卷积神经网络详细的介绍,如果不懂得可以看我得《每天五分钟计算机视觉》专栏。 卷积神经网络 卷积神经网络可以认为是多个卷积…...
Opencv+ROS实现颜色识别应用
目录 一、工具 二、原理 概念 本质 三、实践 添加发布话题 主要代码 四、成果 五、总结 一、工具 opencvros ubuntu18.04 摄像头 二、原理 概念 彩色图像:RGB(红,绿,蓝) HSV图像:H࿰…...
JVM详解:垃圾回收机制
java作为大型服务开发的主流语言,其运行会占用大量的内存空间,那么合理的使用有限的服务器资源至关重要。和大多数翻译性语言一样,java的运行环境jvm也内置垃圾回收机制,其通过一些合理的算法组合,定时来对堆中保存的不…...
【单片机的结构和组成】
目录 1、中央处理单元(CPU):2、存储器:3、输入/输出(I/O)接口:4、定时器/计数器:5、模拟-数字转换器(ADC):6、数字-模拟转换器(DAC&am…...
上下文信息、全局信息、局部信息
摘要 在计算机视觉中,上下文信息(contextual information)是一个核心概念,它指的是一个像素或一个小区域周围的环境或背景信息。这种信息对于模型理解图像中对象的相对位置、大小、形状,以及与其他对象的关系至关重要…...
Ansible--自动化运维工具
Ansible自动化运维工具介绍 1.Ansible介绍 Ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。…...
【每日一题】142.环形链表II
最近有点懈怠了,因为连续出差,身心俱疲,实在是没有空做题。 这道题的思路是快慢指针,需要对环形的链表进行数学公式的计算。 根据这个公式可以推断出一个数学结论,当快慢指针相遇的时候,快指针从起点再出发…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】
目录 1 前言2 YOLO在不同领域的应用3 物体检测指标和NMS3.1 mAP和IOU3.2 mAP计算流程3.2.1 VOC 数据集3.2.2 微软 COCO 数据集 3.3 NMS 1 前言 最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述࿰…...
TailwindCss 总结
目录 一、简介 二、盒子模型相关 三、将样式类写到一个类里面apply 四、一款TailWind CSS的UI库 一、简介 官方文档:Width - TailwindCSS中文文档 | TailwindCSS中文网 Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类…...
【开源项目】2024最新PHP在线客服系统源码/带预知消息/带搭建教程
简介 随着人工智能技术的飞速发展,AI驱动的在线客服系统已经成为企业提升客户服务质量和效率的重要工具。本文将探讨AI在线客服系统的理论基础,并展示如何使用PHP语言实现一个简单的AI客服系统。源码仓库地址:ym.fzapp.top 在线客服系统的…...
MySQL原理简介—11.优化案例介绍
大纲 1.禁止或改写SQL避免自动半连接优化 2.指定索引避免按聚簇索引全表扫描大表 3.按聚簇索引扫描小表减少回表次数 4.避免产生长事务长时间执行 1.禁止或改写SQL避免自动半连接优化 (1)业务场景介绍 (2)SQL性能问题分析 (3)SQL性能调优 (1)业务场景介绍 某互联网公司…...
Http 响应协议
HTTP的响应协议 响应数据格式 响应行 响应数据的第一行,包括协议、状态码、描述 响应头 从响应数据格式的第二行开始,也是以key:value的格式 响应体 和响应头之间有一个空行,是响应数据格式的最后一部分,用于存放响应的数据 常见响…...
实现 Browser 客户端下载 XML 文件功能
后端 使用 io.BytesIO 方法 创建一个字节缓冲区在不需要磁盘文件的情况下进行文件操作打包为 zip 压缩包(上图代码)in_memory_zip.seek(0) 数据写入ZIP后文件指针会停留在缓冲区的末尾将文件指针重置回开头make_response() 方法用于创建HTTP响应的函数.g…...
Matlab以一个图像分类例子总结分类学习的使用方法
目录 前言 导入数据 训练学习 导出训练模型 仿真测试 总结 前言 最近在尝试一些基于Simulink的边沿AI部署,通过这个案例总结Matlab 分类学习功能的使用。本案例通过输入3000张28*28的灰度图像,训练分类学习模型。并验证训练好的模型最后部署到MCU。 导入数据 如下图是…...
AI-agent矩阵营销:让品牌传播无处不在
矩阵营销是一种通过多平台联动构建品牌影响力的策略,而 AI-agent 技术让这一策略变得更加智能化。AI社媒引流王凭借其矩阵管理功能,帮助品牌在多个平台上实现深度覆盖与精准传播。 1. 矩阵营销的优势 品牌触达更广:多平台联动可以覆盖不同用…...
HDMI转VGA方案 LT8612UX(HDMI2.0) LT8612SX LT8511EX LT8522EX LT8612EX_e(HDMI1.4)
一、产品概述 LT8612UX是一款高性能的HDMI至HDMI&VGA转换器,由龙迅半导体公司推出。它能够将HDMI2.0数据流转换为HDMI2.0信号和模拟RGB信号,同时输出8通道I2S和SPDIF信号,实现高质量的7.1声道音频。该转换器采用最新的ClearEdge技术&…...
零基础3分钟快速掌握 ——Linux【终端操作】及【常用指令】Ubuntu
1.为啥使用Linux做嵌入式开发 能广泛支持硬件 内核比较高效稳定 原码开放、软件丰富 能够完善网络通信与文件管理机制 优秀的开发工具 2.什么是Ubuntu 是一个以桌面应用为主的Linux的操作系统, 内核是Linux操作系统, 具有Ubuntu特色的可视…...
腾讯云OCR车牌识别实践:从图片上传到车牌识别
在当今智能化和自动化的浪潮中,车牌识别(LPR)技术已经广泛应用于交通管理、智能停车、自动收费等多个场景。腾讯云OCR车牌识别服务凭借其高效、精准的识别能力,为开发者提供了强大的技术支持。本文将介绍如何利用腾讯云OCR车牌识别…...
第二十二课 Vue中的组件切换
Vue中的组件切换 :is 操作符可以用于组件的切换,配合component标签可以实现根据不同的组件名进行组件的切换效果 组件切换实例 1):is与component实现组件切换 <div id"app"><button click"checks()">点击切换组件&l…...
抖音短视频矩阵源代码部署搭建流程
抖音短视频矩阵源代码部署搭建流程 1. 硬件准备 需确保具备一台性能足够的服务器或云主机。这些硬件设施应当拥有充足的计算和存储能力,以便支持抖音短视频矩阵系统的稳定运行。 2. 操作系统安装 在选定的服务器或云主机上安装适合的操作系统是关键步骤之一。推…...
【Linux】线程同步与互斥
文章目录 1. 线程互斥1.1 进程线程间的互斥相关背景概念1.2 互斥量mutex1.3 相关操作1.4 互斥量实现原理1.5 互斥量的封装 2. 线程同步2.1 条件变量2.2 生产者消费者模型2.3 基于BlockingQueue的生产者消费者模型2.4 信号量2.5 基于环形队列的生产消费模型 3. 线程池3.1 日志3.…...
设计模式-原型模式
背景 克隆羊:有一只羊,有各种属性:姓名,年龄……,现在要克隆10只和这只羊一模一样的羊。 传统方法: 定义一个羊类,在客户端调取原型羊的信息,根据信息创建10个属性相同的羊。 问…...
异或操作解决一些问题
前提: 异或操作符合交换律,结合律(因为其根本上来抽象理解,就是查看所有项二进制数相同位是否有奇数个1,对运算结果二进制数而言,没有该位为0,有该位为1,与顺序无关)。 …...
Rust中Tracing 应用指南
欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比,tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪,帮助开…...
Java与C#
Java和C#(C Sharp)是两种流行的面向对象编程语言,它们在很多方面非常相似,因为它们都受到了类似的编程范式和语言设计理念的影响。然而,它们之间也存在一些重要的区别。 平台依赖性: Java:Java是…...
Docker 部署 MongoDB
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🍃 vue-uniapp-template 🌺 仓库主页: GitCode💫 Gitee …...
【C语言】字符串左旋的三种解题方法详细分析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 💯前言💯题目描述💯方法一:逐字符移动法💯方法二:使用辅助空间法💯方法三:三次反转法💯方法对…...
Android导出Excel
poi org.apache.poi:poi-ooxml:4.x: 不支持Android使用, 不支持原因:Android底层库不支持xml所需的bean类,使用即报错only supported starting with Android O (–min-api 26) org.apache.poi:poi-ooxml:5.2.0: 支持A…...
【学术讲座】视觉计算中的深度学习方法 AIGC图像视频生成模型的推理加速
视觉计算中的深度学习方法 发展历程 backbone 强化学习、LLM等:有监督 && 无监督的结合 目标检测 图像分割 网络结构搜索 搜索方法 1:强化学习 2:强化学习 3:梯度算法 结构选择的作用 1:开放环境感知网络…...
华为OD机试真题---智能驾驶
华为OD机试中的“智能驾驶”题目是一道涉及广度优先搜索(BFS)算法运用的题目。以下是对该题目的详细解析: 一、题目描述 有一辆汽车需要从m * n的地图的左上角(起点)开往地图的右下角(终点)&a…...
视频质量评价SimpleVQA
目录 一、研究意义例子 二、介绍三、文章解读3.1 论文动机3.2论文思路3.3方法3.3.1网络框架3.3.2公式解读3.3.3核心创新3.3.4理解 !!!作者对模型的改进本人算法框体视频抽帧美学特征提取网络:3.3.5实验细节: 四、代码复…...
浏览器插件基于nativeMessaging通信
上一篇文章介绍了基于nativeMessaging启动本地程序,使用官方demo是支持双向通信,demo启动的程序是python写的,现在基于Qt程序进行说明。 消息传递协议 Chrome 会在单独的进程中启动每个原生消息传递主机,并使用标准输入 (stdin)…...
解决 MySQL 8.x 身份验证问题的最佳实践20241126
MySQL 8.x 身份验证问题的深入解析与实践解决方案 🎯 引言 🖋️ MySQL 是全球最受欢迎的开源数据库之一,随着 MySQL 8.x 的发布,引入了更安全的身份验证插件 caching_sha2_password,显著提升了数据库的安全性和性能。…...
对于GC方面,在使用Elasticsearch时要注意什么?
大家好,我是锋哥。今天分享关于【对于GC方面,在使用Elasticsearch时要注意什么?】面试题。希望对大家有帮助; 对于GC方面,在使用Elasticsearch时要注意什么? 1000道 互联网大厂Java工程师 精选面试题-Java…...
各种排序算法
前置知识 排序: 按照递增或者递减的顺序把数据排列好 稳定性: 值相等的元素在排序之后前后顺序是否发生了改变 内部排序: 数据放在内存上 外部排序: 数据放在磁盘上 内部排序 基于比较的排序 几大排序算法 1. 堆排序 特点: 思想: 1. 创建大根堆,把所有元素放在大根堆里…...
前端-Git
一.基本概念 Git版本控制系统时一个分布式系统,是用来保存工程源代码历史状态的命令行工具 简单来说Git的作用就是版本管理工具。 Git的应用场景:多人开发管理代码;异地开发,版本管理,版本回滚。 Git 的三个区域&a…...
用nextjs开发时遇到的问题
这几天已经基本把node后端的接口全部写完了,在前端开发时考虑时博客视频类型,考虑了ssr,于是选用了nextJs,用的是nextUi,tailwincss,目前碰到两个比较难受的事情。 1.nextUI个别组件无法在服务器段渲染 目前简单的解决方法&…...
Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
yum install 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址,无法连接,需要替换为阿里云。 cd /etc/yum.repos.d/ 找到 CentOS-SCLo-scl.repo 和…...
HCIA笔记3--TCP-UDP-交换机工作原理
1. tcp协议 可靠的连接 1.1 报文格式 1.2 三次握手 1.3 四次挥手 为什么TIME_WAIT需要2MSL的等待时间? (a) 为了实现可靠的关闭 (b)为了让过期的报文在网络上消失 对于(a), 假设host发给server的last ack丢了。 ser…...
RabbitMQ原理架构解析:消息传递的核心机制
文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1、简单模式3.2、工作模式3.3、发布订阅3.4、路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1、单机部署5.2、集群部署(镜像模式)5.3、K8s部署…...
C语言指针作业
//8-29 第八章作业 //3.输入10个整数,将其中最小的数第一个数对换,把最大的数与最后一个数对换 //写3个函数:①输人10个数;②进行处理;③输出10个数。 //①输人10个数, //方法一:数组索引 void main() {int arr[10];int *p arr;//printf("请输入…...
区块链:比特币-Binance
写在前面:相对于Tran和BNB而言,Binance不支持智能合约;大约每 10分钟 生成一个新区块 一、认识Binance 官方网站:Blockchain Explorer - Bitcoin Tracker & More | Blockchain.com 官方文档:Authentication – I…...
数据工程流程
** 数据工程流程图** #mermaid-svg-ArT55xCISSfZImy3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ArT55xCISSfZImy3 .error-icon{fill:#552222;}#mermaid-svg-ArT55xCISSfZImy3 .error-text{fill:#552222;stroke…...