[28435] 2020-07-24_CitrixADC中的远程代码执行

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-19
2020-07-24_CitrixADC中的远程代码执行 C i t r i x   A D C S W A R M   O t s   2 0 2 0 - 0 7 - 2 4 C V E - 2 0 1 9 - 1 9 7 8 1 C i t r i x   A D C C i t r i x 8 0 , 0 0 0 C i t r i x   A D C C V E - 2 0 1 9 - 1 9 7 8 1 访 C V E - 2 0 1 9 - 1 9 7 8 1 C i t r i x   A D C 使 访 C i t r i x   A D C A p a c h e   W e b / e t c / h t t p d . c o n f W e b / v p n / . . / v p n s / s t y l e . c s s A l i a s   / v p n s / p o r t a l / s c r i p t s /   / n e t s c a l e r / p o r t a l / s c r i p t s / < L o c a t i o n M a t c h   " / v p n s / p o r t a l / s c r i p t s / . * . p l $ " >     S e t H a n d l e r   p e r l - s c r i p t     P e r l R e s p o n s e H a n d l e r   M o d P e r l : : R e g i s t r y     O p t i o n s   + E x e c C G I     P e r l S e n d H e a d e r   O n     a l l o w   f r o m   a l l < / L o c a t i o n M a t c h >
P e r l U R L   / n e t s c a l e r / p o r t a l / m o d u l e s / N e t S c a l e r / P o r t a l / U s e r P r e f s . p m   H T T P N S C _ U S E R N S C _ N O N C E 使 N S C _ U S E R N S C _ U S E R 使 / v p n s / p o r t a l / s c r i p t s / . * . p l $ M o d P e r l : : R e g i s t r y / n e t s c a l e r / p o r t a l / s c r i p t s / / v p n / . . / v p n s / p o r t a l / s c r i p t s / [ s c r i p t N a m e ] . p l c s d N e t S c a l e r : : P o r t a l : : U s e r P r e f s c s d $ d o c s u b   c s d   {     m y   $ s e l f   =   s h i f t ;     m y   $ s k i p _ r e a d   =   s h i f t   | |   " " ;         m y   $ c g i   =   n e w   C G I ;         m y   $ u s e r n a m e   =   E n c o d e : : d e c o d e ( ' u t f 8 ' ,   $ E N V { ' H T T P _ N S C _ U S E R ' } )   | |   e r r o r p a g e ( " M i s s i n g   N S C _ U S E R   h e a d e r . " ) ;         $ s e l f - > { u s e r n a m e }   =   $ u s e r n a m e ;         m y   % s e s s i o n ;         m y   $ n s c _ n o n c e   =   E n c o d e : : d e c o d e ( ' u t f 8 ' ,   $ E N V { ' H T T P _ N S C _ N O N C E ' } )   | |   e r r o r p a g e ( " M i s s i n g   N S C _ N O N C E   h e a d e r . " ) ;         m y   $ i d   =   u n p a c k   ( ' H * ' , $ n s c _ n o n c e ) ; . . .         $ s e l f - > { s e s s i o n }   =   % s e s s i o n ;     $ s e l f - > { f i l e n a m e }   =   N e t S c a l e r : : P o r t a l : : C o n f i g : : c - > { b o o k m a r k _ d i r }   .   E n c o d e : : e n c o d e ( ' u t f 8 ' ,   $ u s e r n a m e )   .   ' . x m l ' ;     i f ( $ s k i p _ r e a d   e q   1 )   {         r e t u r n ;     }         m y   $ d o c   =   $ s e s s i o n { d o c }   | |   " " ;         i f   ( $ d o c   e q   " "   | |   $ d o c - > { t i m e s t a m p }   <   $ s e l f - > t i m e s t a m p ( ) ) {             $ d o c   =   $ s e l f - > f i l e r e a d ( $ u s e r n a m e ) ;             $ s e s s i o n { d o c } =   $ d o c ;         }         i f   ( $ d o c - > { s t y l e } - > { t h e m e }   n e   " c u s t o m "   & &   !   - e   N e t S c a l e r : : P o r t a l : : C o n f i g : : c - > { t h e m e _ d i r }   .   $ d o c - > { s t y l e } - > { t h e m e } ) {             d e l e t e   $ d o c - > { ' s t y l e ' } ;             $ s e l f - > f i l e w r i t e ( $ d o c ) ;         }                 $ s e l f - > { d o c }   =   $ d o c ;         r e t u r n   $ s e l f - > { d o c } ; } s u b   f i l e w r i t e   {     m y   $ s e l f   =   s h i f t ;     m y   $ d o c   =   s h i f t ;     $ d o c   =   $ s e l f - > { d o c } ;     m y   $ p a r s e r   =   X M L : : S i m p l e - > n e w ( ) ;     $ d a t a f i l e   =   N e t S c a l e r : : P o r t a l : : C o n f i g : : c - > { b o o k m a r k _ d i r }   .   E n c o d e : : e n c o d e ( ' u t f 8 ' ,   $ s e l f - > { u s e r n a m e } )   .   " . x m l " ; . . .     o p e n ( F I L E W R I T E ,   " >   $ d a t a f i l e " )   | |   d i e   " c a n ' t   o p e n   $ d a t a f i l e   $ ! " ; . . .     p r i n t   F I L E W R I T E   $ p a r s e r - > X M L o u t ( $ d o c ,     x m l d e c l   = >   ' < ? x m l   v e r s i o n = " 1 . 0 "   e n c o d i n g = " U T F - 8 " ? > ' ,   R o o t N a m e   = >   ' u s e r ' ,   v a l u e a t t r   = >   [   ' u s e r n a m e ' ,   ' t h e m e '   ] ) ; . . . }
使 . x m l N S C _ U S E R . x m l P O S T N S C _ U S E R X M L R C E W e b P e r l / n e t s c a l e r / p o r t a l / m o d u l e s / N e t S c a l e r / P o r t a l / H a n d l e r . p m /   v p n s   /   p o r t a l   /     / } . . / . . / . . / . . / t m p / m y T e s t F i l e / t m p / n e w b m . p l u r l t i t l e d e s c . . . m y   $ u s e r   =   N e t S c a l e r : : P o r t a l : : U s e r P r e f s - > n e w ( ) ; m y   $ d o c   =   $ u s e r - > c s d ( ) ; . . . m y   $ n e w u r l   =   E n c o d e : : d e c o d e ( ' u t f 8 ' ,   $ c g i - > p a r a m ( ' u r l ' ) ) ; m y   $ n e w t i t l e   =   E n c o d e : : d e c o d e ( ' u t f 8 ' ,   $ c g i - > p a r a m ( ' t i t l e ' ) ) ; m y   $ n e w d e s c   =   E n c o d e : : d e c o d e ( ' u t f 8 ' ,   $ c g i - > p a r a m ( ' d e s c ' ) ) ; m y   $ U I _ i n u s e   =   E n c o d e : : d e c o d e ( ' u t f 8 ' ,   $ c g i - > p a r a m ( ' U I _ i n u s e ' ) ) ; . . . m y   $ n e w B M   =   {       u r l   = >   $ n e w u r l ,         t i t l e   = >   $ n e w t i t l e ,         d e s c r   = >   $ n e w d e s c ,         U I _ i n u s e   = >   $ U I _ i n u s e , } ; . . . i f   ( $ n e w B M - > { u r l }   = ~   / ^ / ) {     p u s h   @ { $ d o c - > { f i l e s y s t e m s } - > { f i l e s y s t e m } } ,   $ n e w B M ; }   e l s e   {   #   b o o k m a r k     p u s h   @ { $ d o c - > { b o o k m a r k s } - > { b o o k m a r k } } ,   $ n e w B M ; } u n d e f ( @ { $ d o c - > { e s c b k } - > { b o o k m a r k } } ) ; u n d e f ( @ { $ d o c - > { e s c b k } - > { f i l e s y s t e m } } ) ; $ u s e r - > f i l e w r i t e ( $ d o c ) ; N e t S c a l e r : : P o r t a l : : H a n d l e r < L o c a t i o n   / v p n s / p o r t a l / >     S e t H a n d l e r   p e r l - s c r i p t     P e r l R e s p o n s e H a n d l e r   N e t S c a l e r : : P o r t a l : : H a n d l e r     P e r l S e n d H e a d e r   O n < / L o c a t i o n > h a n d l e r / n e t s c a l e r / p o r t a l / t e m p l a t e s /
使 T e m p l a t e   T o o l k i t 使 P e r l 使 使 / u s r / l o c a l / l i b / p e r l 5 / s i t e _ p e r l / 5 . 1 4 . 2 / m a c h / T e m p l a t e / P l u g i n / D a t a f i l e . p m 使 R C E T e m p l a t e   T o o l k i t 使 便 T e m p l a t e   T o o l k i t / n e t s c a l e r / p o r t a l / t e m p l a t e s / s u b   h a n d l e r   {     m y   $ r   =   s h i f t ; . . .     m y   $ d o c   =   $ u s e r - > c s d ( ) ;         m y   $ t m p l f i l e   =   $ r - > p a t h _ i n f o ( ) ;     $ t m p l f i l e   = ~   s [ ^ / ] [ ] ;     m y   $ t e m p l a t e   =   T e m p l a t e - > n e w ( { I N C L U D E _ P A T H   = >     N e t S c a l e r : : P o r t a l : : C o n f i g : : c - > { t e m p l a t e _ d i r } , C A C H E _ S I Z E   = >   6 4 ,   C O M P I L E _ D I R = >   N e t S c a l e r : : P o r t a l : : C o n f i g : : c - > { t e m p l a t e _ c o m p i l e _ d i r } ,   C O M P I L E _ E X T   = >   . . .     $ t e m p l a t e - > p r o c e s s ( $ t m p l f i l e ,   $ d o c )   | |   d o   {         m y   $ e r r o r   =   $ t e m p l a t e - > e r r o r ( ) ;         m y   $ l c E r r o r   =   l c ( $ e r r o r ) ;         i f   (   $ e r r o r - > t y p e ( )   e q   " f i l e "   & &   $ l c E r r o r     = ~   / ^ f i l e   e r r o r /   & &   $ l c E r r o r   = ~   / . n o t   f o u n d $ /   )   {             r e t u r n   N O T _ F O U N D ;         }         p r i n t   N e t S c a l e r : : P o r t a l : : U s e r P r e f s : : h t m l _ e s c a p e _ s t r i n g ( $ e r r o r ) ,   " n " ;     } ;     r e t u r n   O K ; } [ %   P E R L   % ] o p e n s u b   n e w   {         m y   ( $ c l a s s ,   $ c o n t e x t ,   $ f i l e n a m e ,   $ p a r a m s )   =   @ _ ;         m y   ( $ d e l i m ,   $ l i n e ,   @ f i e l d s ,   @ d a t a ,   @ r e s u l t s ) ;         m y   $ s e l f   =   [   ] ;         l o c a l   * F D ;         l o c a l   $ /   =   " n " ; . . .         o p e n ( F D ,   $ f i l e n a m e ) . . . } t e s t R C E / t m p /
W e b   S h e l l O S C i t r i x 广 线 2 0 1 9 1 2 5 C i t r i x 2 0 1 9 1 2 1 9 - C i t r i x 2 0 2 0 1 2 4 - C i t r i x C i t r i x h t t p s   :   / / s u p p o r t . c i t r i x . c o m / a r t i c l e / C T X 2 6 7 0 2 7

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

本版积分规则