您当前的位置:首页 > 电脑百科 > 安全防护 > 资讯

Windows TCP/IP远程执行代码漏洞分析

时间:2020-10-21 12:11:59  来源:  作者:
Windows TCP/IP远程执行代码漏洞分析

 

报告编号:B6-2020-101901

报告来源:360-CERT

报告作者:360-CERT

更新日期:2020-10-19

0x01 前言

1.1 环境搭建

(1)攻击机环境:Ubuntu 20.04

安装scapy

sudo apt install Python-pip3
sudo pip3 install scapy

(2)受害机环境:windows 10 1909 x64

tcpip.sys 驱动版本:10.0.18362.476

(3)双机调试Windows 驱动:

https://blog.csdn.net/qq_21000273/article/details/52027708

断点:

bp tcpip!Ipv6pUpdateRDNSS
bp tcpip!Ipv6pHandleRouterAdvertisement
bp tcpip!Ipv6pHandleRouterAdvertisement+0xae4cc
bp tcpip!Ipv6pHandleRouterAdvertisement+0xae4db
bp tcpip!Ipv6pUpdateRDNSS+0x99
bp tcpip!Ipv6pUpdateRDNSS+0xca

1.2 背景知识

涉及的包类型:

type:24   Route Information Option
type:25   Recursive DNS Server Option
type:134  IMCPv6 Router Advertisement

涉及的结构:

_MDL结构

typedef __struct_bcount (Size ) struct _MDL {
    struct _MDL *Next ;
    CSHORT Size ;
    CSHORT MdlFlags ;
    struct _EPROCESS *Process ;
    PVOID MAppedSystemVa ;
    PVOID StartVa ;
    ULONG ByteCount ;
    ULONG ByteOffset ;
} MDL , *PMDL ;

_NET_BUFFER 结构

typedef struct _NET_BUFFER {
  union {
    struct {
      PNET_BUFFER Next;
      PMDL        CurrentMdl;
      ULONG       CurrentMdlOffset;
      union {
        ULONG  DataLength;
        SIZE_T stDataLength;
      };
      PMDL        MdlChain;
      ULONG       DataOffset;
    };
    SLIST_HEADER      Link;
    NET_BUFFER_HEADER NetBufferHeader;
  };
  USHORT                ChecksumBias;
  USHORT                Reserved;
  NDIS_HANDLE           NdisPoolHandle;
  PVOID                 NdisReserved[2];
  PVOID                 ProtocolReserved[6];
  PVOID                 MiniportReserved[4];
  NDIS_PHYSICAL_ADDRESS DataPhysicalAddress;
  union {
    PNET_BUFFER_SHARED_MEMORY SharedMemoryInfo;
    PSCATTER_GATHER_LIST      ScatterGatherList;
  };
} NET_BUFFER, *PNET_BUFFER;

相关函数:

NdisGetDataBuffer 函数

PVOID NdisGetDataBuffer(
  PNET_BUFFER NetBuffer,
  ULONG       BytesNeeded,
  PVOID       Storage,
  UINT        AlignMultiple,
  UINT        AlignOffset
);

NetBuffer:指向NET_BUFFER 结构的指针

BytesNeeded:请求的连续数据的字节数

Storage:指向缓冲区的指针,如果调用者未提供缓冲区,则为NULL。缓冲区的大小必须大于或等于BytesNeeded中指定的字节数。如果此值为非NULL,并且请求的数据不连续,则NDIS将请求的数据将复制到Storage指向的地址。

Windows通过Ipv6pHandleRouterAdvertisement 函数处理 IPv6 路由器通告数据,在该函数中调用 NdisGetDataBuffer 函数从 NET_BUFFER 结构中访问连续或不连续的数据,通过 NET_BUFFER ->CurrentMdlOffset 字段来记录要访问数据起始地址相对于_MDL->MappedSystemVa 的偏移。

0x02 漏洞分析

2.1 漏洞背景

2020年10月14日,360CERT监测发现 Microsoft 发布了 TCP/IP远程代码执行漏洞 的风险通告,该漏洞是由于Windows TCP/IP堆栈 在处理IMCPv6 Router Advertisement(路由通告)数据包时存在漏洞,远程攻击者通过构造特制的ICMPv6 Router Advertisement(路由通告)数据包 ,并将其发送到远程Windows主机上,可造成远程BSOD,漏洞编号为CVE-2020-16898。

2.2 漏洞成因

根据rfc5006 描述,RDNSS包的length应为奇数,而当攻击者构造的RDNSS包的Length为偶数时,Windows TCP/IP 在检查包过程中会根据Length来获取每个包的偏移,遍历解析,导致对 Addresses of IPv6 Recursive DNS Servers 和下一个 RDNSS 选项的边界解析错误,从而绕过验证,将攻击者伪造的option包进行解析,造成栈溢出,从而导致系统崩溃。

RDNSS Option 数据包格式如下:

Windows TCP/IP远程执行代码漏洞分析

 

Type: 占8-bit,RDNSS 的类型为25

Length:8-bit无符号整数,单位长度为8个字节,所以Type, Length, Reserved, Lifetime一共占8个字节,一个单位长度,而一个IPv6地址占16个字节,两个单位长度,所以Length的最小值为3,且为奇数。

Reserved:保留字段

Lifetime:32-bit无符号整数,存活周期。

Addresses of IPv6 Recursive DNS Servers:保存RNDSS的IPv6地址,每个占16个字节,地址的数量会影响Length字段,number=(Length - 1) / 2。每增加一个地址,Length加2。

漏洞点存在于tcpip.sys -> Ipv6pHandleRouterAdvertisement 函数

漏洞调用链为:Icmpv6ReceiveDatagrams -> Ipv6pHandleRouterAdvertisement -> Ipv6pUpdateRDNSS

Ipv6pHandleRouterAdvertisement 函数存在两个循环,第一个循环遍历所有headers,做一些基本的验证,如length的大小,第二个循环用于处理包,并且该阶段不再验证,两个循环的伪代码如下:

// 循环1

while ( 1 )
  {
        ……
    v28 = (KIRQL *)NdisGetDataBuffer(v9, 2u, v182, 1u, 0);
    v27 = v9->DataLength;
    actual_length_bytes = 8 * v28[1];
        ……
    switch ( v25 )
    {
      case 0x18u:       // case 0x18 (ICMPv6NDOptRouteInfo)
            ……
        if ( actual_length_bytes > 0x18u
          || (v144 = *((_BYTE *)NdisGetDataBuffer(v9, actual_length_bytes, v220, 1u, 0) + 2), v144 > 0x80u)
          || v144 > 0x40u && actual_length_bytes < 0x18u  // <-----【1】验证实际字节数,不能大于0x18
          || v144 && actual_length_bytes < 0x10u )
        {
          *a3 = 24;
          goto LABEL_275;
        }
        break;
      case 0x19u:  // case 0x19 (ICMPv6NDOptRDNSS)    // <-----【2】
        if ( (*(_BYTE *)(v11 + 404) & 0x40) != 0 && actual_length_bytes < 0x18u )  
          *a3 = 25;
        break;
     }
        ……
      if ( actual_length_bytes )
        {
      v31 = actual_length_bytes + v9->CurrentMdlOffset;
      if ( v31 >= *(_Dword *)(v9->Link.Region + 0x28) )
      {
        NdisAdvanceNetBufferDataStart(v9, actual_length_bytes, 0, 0i64);// <---actual_length_bytes=4*8=0x20
      }
      else
      {                                         
        v9->DataOffset += actual_length_bytes;
        v9->DataLength -= actual_length_bytes;
        v9->CurrentMdlOffset = v31;        // 更新CurrentMdlOffset
      }
    }
    v21 += actual_length_bytes;
  }

    ……

// 循环2 
while ( 1 )
{
    ……
     if ( *v75 == 0x18 )                   // case 0x18 (ICMPv6NDOptRouteInfo)
          {
                   ……
            v153 = (unsigned __int8 *)NdisGetDataBuffer(NetBuffer_1, actual_option, Storage_1, 1u, 0); // <--- 【3】
            v225 = _mm_load_si128((const __m128i *)&_xmm);
            v174 = v225.m128i_u32[((unsigned __int64)v153[3] >> 3) & 3];
                 ……
          }
          if ( *v75 == 0x19 )      // case 0x19 (ICMPv6NDOptRDNSS)
          {
            if ( (*(_BYTE *)(v11 + 0x194) & 0x40) != 0 )
            {
              Ipv6pUpdateRDNSS(v11, NetBuffer_1, Buf2, v189, &v170);  // <---- 【4】
              goto LABEL_309;
            }
          }
          else if ( *v75 == 31 && (*(_BYTE *)(v11 + 404) & 0x40) != 0 )
          {
            Ipv6pUpdateDNSSL(v11, NetBuffer_1, Buf2, (unsigned int)v189, &v170);
LABEL_309:
            v77 = v166;
            goto LABEL_118;
          }
                ……
}

第一个循环用于验证各个header的有效性,首先获取第一个option包,length为0x4,实际字节数为length*8=0x20个字节,首先更新_net_buffer结构,根据实际字节数计算option的偏移,解析到后面的option2,后面依次根据option.length 解析到option3, option4 ……

Windows TCP/IP远程执行代码漏洞分析

 

所以并没有处理'x18x22',因此绕过了【1】处case:0x18中对length的验证。所以如果Option1.length设为3时,构造图中的包由于长度0x22校验不通过,会当成无效包被舍弃。

第二个循环处理各个option包,但在case:0x19 的Ipv6pUpdateRDNSS函数中,计算ipv6地址个数是通过(length-1)/2 ,这样导致length=0x4时和length=0x3时计算的结果一样,都是根据ipv6地址个数*8+8(Type/Length/ Reserved/Lifetime),所以跳过0x18个字节解析到'x18x22',将其当成了type=0x18的option包,并且没有了长度的验证。

Windows TCP/IP远程执行代码漏洞分析

 

综上,漏洞是由于检查和解析包时根据length计算的偏移不同,导致绕过检查,解析到攻击者伪造的option包,造成栈溢出。

0x03 漏洞利用

具体调试利用过程如下:

(1)首先进入循环1中的【2】处,判断length实际字节数是否小于0x18,然后调用NdisAdvanceNetBufferDataStart,更新_NET_BUFFER结构,得到下一个Option的偏移,依次处理后面的Option:

Windows TCP/IP远程执行代码漏洞分析

 

调用NdisAdvanceNetBufferDataStart前:

kd> dt ndis!_NET_BUFFER @r14
   +0x000 Next             : (null) 
   +0x008 CurrentMdl       : 0xffffe20b`aea77e70 _MDL
   +0x010 CurrentMdlOffset : 0x10
   +0x018 DataLength       : 0x188
   +0x018 stDataLength     : 0x188
   +0x020 MdlChain         : 0xffffe20b`b0a9c220 _MDL
   +0x028 DataOffset       : 0x70
   +0x000 Link             : _SLIST_HEADER
   +0x000 NetBufferHeader  : _NET_BUFFER_HEADER
   +0x030 ChecksumBias     : 0
   +0x032 Reserved         : 0
   +0x038 NdisPoolHandle   : 0xffffe20b`ae45cb40 Void
   +0x040 NdisReserved     : [2] (null) 
   +0x050 ProtocolReserved : [6] 0x00000198`00000000 Void
   +0x080 MiniportReserved : [4] (null) 
   +0x0a0 DataPhysicalAddress : _LARGE_INTEGER 0x0
   +0x0a8 SharedMemoryInfo : (null) 
   +0x0a8 ScatterGatherList : (null) 

kd> dt ndis!_MDL 0xffffe20b`aea77e70
   +0x000 Next             : 0xffffe20b`aea77b10 _MDL
   +0x008 Size             : 0n56
   +0x00a MdlFlags         : 0n4
   +0x00c AllocationProcessorNumber : 0xffff
   +0x00e Reserved         : 0xffff
   +0x010 Process          : (null) 
   +0x018 MappedSystemVa   : 0xffffe20b`aea77eb0 Void
   +0x020 StartVa          : 0xffffe20b`aea77000 Void
   +0x028 ByteCount        : 0x30
   +0x02c ByteOffset       : 0xeb0
kd> db 0xffffe20b`aea77eb0+0x10
ffffe20b`aea77ec0  19 04 00 00 00 00 03 84-30 30 30 30 30 30 30 30  ........00000000    // <--- Option1
ffffe20b`aea77ed0  30 30 30 30 30 30 30 30-18 22 fd 81 00 00 03 84  00000000."......
ffffe20b`aea77ee0  00 bf 09 02 73 6d 41 72-00 00 03 00 dd bf 04 04  ....smAr........   

调用NdisAdvanceNetBufferDataStart后:

kd> dt ndis!_NET_BUFFER @r14
   +0x000 Next             : (null) 
   +0x008 CurrentMdl       : 0xffffe20b`aea77b10 _MDL
   +0x010 CurrentMdlOffset : 0
   +0x018 DataLength       : 0x168
   +0x018 stDataLength     : 0x168
   +0x020 MdlChain         : 0xffffe20b`b0a9c220 _MDL
   +0x028 DataOffset       : 0x90
   +0x000 Link             : _SLIST_HEADER
   +0x000 NetBufferHeader  : _NET_BUFFER_HEADER
   +0x030 ChecksumBias     : 0
   +0x032 Reserved         : 0
   +0x038 NdisPoolHandle   : 0xffffe20b`ae45cb40 Void
   +0x040 NdisReserved     : [2] (null) 
   +0x050 ProtocolReserved : [6] 0x00000198`00000000 Void
   +0x080 MiniportReserved : [4] (null) 
   +0x0a0 DataPhysicalAddress : _LARGE_INTEGER 0x0
   +0x0a8 SharedMemoryInfo : (null) 
   +0x0a8 ScatterGatherList : (null) 

kd>   dt ndis!_MDL 0xffffe20b`aea77b10
   +0x000 Next             : 0xffffe20b`aea78890 _MDL
   +0x008 Size             : 0n56
   +0x00a MdlFlags         : 0n4
   +0x00c AllocationProcessorNumber : 0xe20b
   +0x00e Reserved         : 0xffff
   +0x010 Process          : (null) 
   +0x018 MappedSystemVa   : 0xffffe20b`aea77b50 Void
   +0x020 StartVa          : 0xffffe20b`aea77000 Void
   +0x028 ByteCount        : 0x30
   +0x02c ByteOffset       : 0xb50
kd> db 0xffffe20b`aea77b50
ffffe20b`aea77b50  19 05 00 00 00 00 03 84-41 41 41 41 41 41 41 41  ........AAAAAAAA    // <--- Option2
ffffe20b`aea77b60  41 41 41 41 41 41 41 41-42 42 42 42 42 42 42 42  AAAAAAAABBBBBBBB
ffffe20b`aea77b70  42 42 42 42 42 42 42 42-19 05 00 00 00 00 03 84  BBBBBBBB........

(2)进入循环2中的【4】处:

Windows TCP/IP远程执行代码漏洞分析

 

进入Ipv6UpdateRDNSS,处理第一个type为0x19,length为4的option,Ipv6pUpdateRDNSS 中计算IPv6 地址数量是通过下面代码实现的:

Windows TCP/IP远程执行代码漏洞分析

 

调试结果如下:

Windows TCP/IP远程执行代码漏洞分析

 

rbx 保存option 包的起始位置,[rbx+1] 取的是length字段的值,此时为4,esi的值为1,ecx的值为2,所以这段汇编的计算的ipv6地址个数为(length-1)/2 =1 .

所以length设置为4,其实和length=3计算结果是相同的:

(4-1)/2 = 1
(3-1)/2 = 1

因此会按照0x18(一个ipv6地址加上Type/Length/ Reserved/Lifetime) 的偏移进行解析下一个Option,即解析到伪造的Option。

调用Ipv6UpdateRDNSS前:

kd> dt ndis!_NET_BUFFER @r14
   +0x000 Next             : (null) 
   +0x008 CurrentMdl       : 0xffffe20b`aea77e70 _MDL
   +0x010 CurrentMdlOffset : 0x10
   +0x018 DataLength       : 0x188
   +0x018 stDataLength     : 0x188
   +0x020 MdlChain         : 0xffffe20b`b0a9c220 _MDL
   +0x028 DataOffset       : 0x70
   +0x000 Link             : _SLIST_HEADER
   +0x000 NetBufferHeader  : _NET_BUFFER_HEADER
   +0x030 ChecksumBias     : 0
   +0x032 Reserved         : 0
   +0x038 NdisPoolHandle   : 0xffffe20b`ae45cb40 Void
   +0x040 NdisReserved     : [2] (null) 
   +0x050 ProtocolReserved : [6] 0x00000198`00000000 Void
   +0x080 MiniportReserved : [4] (null) 
   +0x0a0 DataPhysicalAddress : _LARGE_INTEGER 0x0
   +0x0a8 SharedMemoryInfo : (null) 
   +0x0a8 ScatterGatherList : (null) 
kd> dt ndis!_MDL 0xffffe20b`aea77e70
   +0x000 Next             : 0xffffe20b`aea77b10 _MDL
   +0x008 Size             : 0n56
   +0x00a MdlFlags         : 0n4
   +0x00c AllocationProcessorNumber : 0xffff
   +0x00e Reserved         : 0xffff
   +0x010 Process          : (null) 
   +0x018 MappedSystemVa   : 0xffffe20b`aea77eb0 Void
   +0x020 StartVa          : 0xffffe20b`aea77000 Void
   +0x028 ByteCount        : 0x30
   +0x02c ByteOffset       : 0xeb0
kd> db 0xffffe20b`aea77eb0+0x10
ffffe20b`aea77ec0  19 04 00 00 00 00 03 84-30 30 30 30 30 30 30 30  ........00000000  // <--- Option1
ffffe20b`aea77ed0  30 30 30 30 30 30 30 30-18 22 fd 81 00 00 03 84  00000000."......
ffffe20b`aea77ee0  00 bf 09 02 73 6d 41 72-00 00 03 00 dd bf 04 04  ....smAr........

调用Ipv6UpdateRDNSS后:

kd> dt ndis!_NET_BUFFER @r14
   +0x000 Next             : (null) 
   +0x008 CurrentMdl       : 0xffffe20b`aea77e70 _MDL
   +0x010 CurrentMdlOffset : 0x28
   +0x018 DataLength       : 0x170
   +0x018 stDataLength     : 0x170
   +0x020 MdlChain         : 0xffffe20b`b0a9c220 _MDL
   +0x028 DataOffset       : 0x88
   +0x000 Link             : _SLIST_HEADER
   +0x000 NetBufferHeader  : _NET_BUFFER_HEADER
   +0x030 ChecksumBias     : 0
   +0x032 Reserved         : 0
   +0x038 NdisPoolHandle   : 0xffffe20b`ae45cb40 Void
   +0x040 NdisReserved     : [2] (null) 
   +0x050 ProtocolReserved : [6] 0x00000198`00000000 Void
   +0x080 MiniportReserved : [4] (null) 
   +0x0a0 DataPhysicalAddress : _LARGE_INTEGER 0x0
   +0x0a8 SharedMemoryInfo : (null) 
   +0x0a8 ScatterGatherList : (null) 
kd> dt ndis!_MDL 0xffffe20b`aea77e70
   +0x000 Next             : 0xffffe20b`aea77b10 _MDL
   +0x008 Size             : 0n56
   +0x00a MdlFlags         : 0n4
   +0x00c AllocationProcessorNumber : 0xffff
   +0x00e Reserved         : 0xffff
   +0x010 Process          : (null) 
   +0x018 MappedSystemVa   : 0xffffe20b`aea77eb0 Void
   +0x020 StartVa          : 0xffffe20b`aea77000 Void
   +0x028 ByteCount        : 0x30
   +0x02c ByteOffset       : 0xeb0
kd> db 0xffffe20b`aea77eb0+0x28
ffffe20b`aea77ed8  18 22 fd 81 00 00 03 84-00 bf 09 02 73 6d 41 72  ."..........smAr // <---  伪造的option
ffffe20b`aea77ee8  00 00 03 00 dd bf 04 04-00 60 6d b0 0b e2 ff ff  .........`m.....

(3)进入循环2中的【3】处case:0x18,处理伪造的type为0x18,length为0x22的option。

对于type为0x18会进入下面的流程处理,调用NdisGetDataBuffer函数,其中第二个参数为长度的实际字节大小,等于length8,所以此时传入的actual_length_bytes = 0x22 8 = 0x110:

Windows TCP/IP远程执行代码漏洞分析

 

而Storage_1 为栈上的数组变量,将0x110个字节赋值过去,就会造成栈上的溢出,实际的崩溃是溢出覆盖了stack cookie,触发tcpip!_security_check_cookie,造成蓝屏(BSOD):

Windows TCP/IP远程执行代码漏洞分析

 

调用NdisGetDataBuffer函数前:

kd> r rdx  // actual_length_bytes_1
rdx=0000000000000110
kd> dd r8 // Storage_1
fffff806`6ce9a348  00000000 00000000 00000000 00000000
fffff806`6ce9a358  00000000 00000000 00000000 00000000
fffff806`6ce9a368  00000000 00000000 b3b18770 ffffe20b
fffff806`6ce9a378  aea77eb0 ffffe20b b021bce0 ffffe20b
fffff806`6ce9a388  00000000 00000000 aea77eb0 ffffe20b
fffff806`6ce9a398  00000000 00000000 b0210040 00000000

调用NdisGetDataBuffer函数后:

kd> dd fffff806`6ce9a348
fffff806`6ce9a348  81fd2218 84030000 00000519 84030000
fffff806`6ce9a358  41414141 41414141 41414141 41414141
fffff806`6ce9a368  42424242 42424242 42424242 42424242
fffff806`6ce9a378  00000519 84030000 41414141 41414141
fffff806`6ce9a388  41414141 41414141 42424242 42424242
kd> k
Child-SP          RetAddr           Call Site
fffff806`6ce9a090 42424242`42424242 tcpip!Ipv6pHandleRouterAdvertisement+0xae522
fffff806`6ce9a440 84030000`00000519 0x42424242`42424242
fffff806`6ce9a448 41414141`41414141 0x84030000`00000519
fffff806`6ce9a450 41414141`41414141 0x41414141`41414141
fffff806`6ce9a458 00000000`00000000 0x41414141`41414141

最后需要注意的是如果从NetBuffer_1请求的数据是连续的,则会将数据存放在NDIS提供的地址,这样无法造成溢出。所以需要从NetBuffer_1请求的数据不是连续的,才会将数据存放在Storage_1上。数据非连续的实现是通过 fragmentation(碎片化),将Router Advertisement包通过scapy的fragment6函数拆分成多个IPv6 fragments进行发送。

蓝屏崩溃现场:

Windows TCP/IP远程执行代码漏洞分析

 

0x04 补丁分析

补丁前第一个循环case:0x19的伪代码:

Windows TCP/IP远程执行代码漏洞分析

 

补丁后:

Windows TCP/IP远程执行代码漏洞分析

 

补丁加入了针对length的奇偶验证,v32为length *8的结果, 如果 length 为偶数,(v32-8)&0xf 将不等于0,则转入错误处理流程。

0x05 时间线

2020-10-13 微软发布漏洞通告

2020-10-14 360CERT发布通告

2020-10-16 360CERT监测到网上公开相关Poc

2020-10-16 360CERT更新通告

2020-10-19 360CERT发布漏洞分析报告

0x06 参考链接

  1. https://tools.ietf.org/html/rfc8106
  2. https://www.mcafee.com/blogs/other-blogs/mcafee-labs/cve-2020-16898-bad-neighbor
  3. http://blog.pi3.com.pl/?p=780
  4. https://blog.quarkslab.com/beware-the-bad-neighbor-analysis-and-poc-of-the-windows-ipv6-router-advertisement-vulnerability-cve-2020-16898.html


Tags:漏洞分析   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
如果你是一位靠 .NET、C++、Java、JavaScript、PHP 或 Python 吃饭的开发者,那要注意了:一项新研究揭示了这些编程语言的主要安全漏洞。...【详细内容】
2020-12-28  Tags: 漏洞分析  点击:(172)  评论:(0)  加入收藏
报告编号:B6-2020-101901报告来源:360-CERT报告作者:360-CERT更新日期:2020-10-190x01 前言1.1 环境搭建(1)攻击机环境:Ubuntu 20.04安装scapysudo apt install python-pip3sudo p...【详细内容】
2020-10-21  Tags: 漏洞分析  点击:(158)  评论:(0)  加入收藏
Ruckus公司面向全球移动运营商、宽带服务提供商和企业用户,销售、制造各种室内和室外型“智能Wi-Fi”产品。本文是针对于今年Ruckus品牌路由器的两个漏洞进行分析复现。 CVE-...【详细内容】
2020-09-04  Tags: 漏洞分析  点击:(267)  评论:(0)  加入收藏
前言近期公布的关于 Weblogic 的反序列化RCE漏洞 CVE-2020-14645,是对 CVE-2020-2883的补丁进行绕过。之前的 CVE-2020-2883 本质上是通过 ReflectionExtractor 调用任意方法...【详细内容】
2020-08-21  Tags: 漏洞分析  点击:(113)  评论:(0)  加入收藏
前言作为一个Web菜鸡,我之前和师傅们参加了红帽杯,奈何只有0输出,当时只知道是thinkphp5.2的反序列化漏洞,但是感觉时间不够了,也就没有继续做下去。只有赛后来查漏补缺了,也借...【详细内容】
2020-07-19  Tags: 漏洞分析  点击:(116)  评论:(0)  加入收藏
0x00 前言Apache Guacamole是较为流行的一种远程办公基础框架,在全球范围内已有超过1000万次的docker下载。在研究过程中,我们发现Apache Guacamole存在多个严重的反向RDP漏洞...【详细内容】
2020-07-03  Tags: 漏洞分析  点击:(117)  评论:(0)  加入收藏
客户网站前端时间被攻击,网站被劫持到了赌bo网站上去,通过朋友介绍找到我们做网站的安全防护,我们随即对客户网站进行了全面的渗透测试,包括了网站的漏洞检测与代码安全测试,针对...【详细内容】
2020-02-19  Tags: 漏洞分析  点击:(86)  评论:(0)  加入收藏
一、漏洞介绍2019年1月11日,ThinkPHP团队发布了一个补丁更新,修复了一处由于不安全的动态函数调用导致的远程代码执行漏洞。该漏洞危害程度非常高,默认条件下即可执行远程代码...【详细内容】
2019-11-01  Tags: 漏洞分析  点击:(100)  评论:(0)  加入收藏
Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够...【详细内容】
2019-08-16  Tags: 漏洞分析  点击:(300)  评论:(0)  加入收藏
网站渗透测试是指在没有获得网站源代码以及服务器的情况下,模拟入侵者的攻击手法对网站进行漏洞检测,以及渗透测试,可以很好的对网站安全进行全面的安全检测,把安全做到最大化。...【详细内容】
2019-07-29  Tags: 漏洞分析  点击:(270)  评论:(0)  加入收藏
▌简易百科推荐
据ZDNet12月24日报道,CISA本周发布了自己的Log4J扫描器,同时发布的还有网络安全公司和研究人员发布的其他扫描器。开源的Log4j扫描器是由开源社区其他成员创建的扫描器派生而...【详细内容】
2021-12-24  邮电设计技术    Tags:Log4j   点击:(7)  评论:(0)  加入收藏
我们所见过的技术上最复杂的漏洞利用之一”- 谷歌“零号项目”安全研究人员评价ForcedEntry无交互攻击。多年来,以色列间谍软件开发商NSO集团针对安卓和iOS设备开发出了多款...【详细内容】
2021-12-24  科技湃小编    Tags:黑客   点击:(8)  评论:(0)  加入收藏
这几天Log4j的问题消息满天飞,今天我们就一起来看看从源码角度看看这个漏洞是如何产生的。 大家都知道这次问题主要是由于Log4j中提供的jndi的功能。具体涉及到的入口类是lo...【详细内容】
2021-12-15  IT技术资源爱好者    Tags:Log4j漏洞   点击:(13)  评论:(0)  加入收藏
随着网络安全防御需求扩大,网安技术、产品和解决方案数量也随之激增。为了了解和驾驭全球网络安全市场,对比国内外网络安全企业的差异,今天我们来看看由国外网络安全垂直媒体eS...【详细内容】
2021-09-18  数说安全    Tags:网络安全公司   点击:(188)  评论:(0)  加入收藏
作者:左右里编辑:釉子 据BitDefender安全研究人员称,他们发现了一个黑客组织正在以SSH暴力破解的方式攻击Linux设备,目的是在这些设备上安装门罗币恶意挖矿软件。SSH,一种为远程...【详细内容】
2021-07-22  看雪学院    Tags:矿机   点击:(185)  评论:(0)  加入收藏
在互联网、金融和区块链领域风靡的数字资产/版权证书(NFT)正面临一系列网络安全危机。上周四,一位自学成才的艺术家麦克&middot;温克尔曼(Mike Winkelmann)以6930万美元的价格在...【详细内容】
2021-03-19      Tags:漏洞   点击:(155)  评论:(0)  加入收藏
前段时间,sudo被曝不要密码就可进行root提权的漏洞引起一片哗然,众多公司纷纷连夜打补丁来避免损失。FreeBuf也对此进行了相应的报道《不用密码就能获取root权限?sudo被曝新漏...【详细内容】
2021-03-16      Tags:root提权漏洞   点击:(135)  评论:(0)  加入收藏
深度学习是机器学习的一个子领域,它采用了一个特定的模型:一族通过某种方式连接起来的简单函数。由于这类模型的结构是受到人类大脑结构的启发而创造出来的...【详细内容】
2021-02-26      Tags:深度学习   点击:(269)  评论:(0)  加入收藏
物联网技术正在加速向各行业渗透,根据中国信通院《物联网白皮书(2020年)》内容显示:预计到2025年,物联网连接数的大部分增长来自产业市场,产业物联网的连接数将占到总体的61.2%。...【详细内容】
2021-01-22      Tags:物联网安全   点击:(463)  评论:(0)  加入收藏
CSRF跨站请求伪造(Cross-Site Request Forgery)CSRF经常配合XSS一起进行攻击!(同XSS类似,都属于跨站攻击,不攻击服务器端而攻击正常访问网站的用户!)XSS利用站点内的信任用户,CS...【详细内容】
2020-10-22      Tags:Web漏洞   点击:(560)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条