[899] 2019-03-26_PHP代码审计笔记--SQL注入

文档创建者:s7ckTeam
浏览次数:13
最后更新:2025-01-16
2019-03-26_PHP代码审计笔记--SQL注入 P H P - - S Q L   B y p a s s   B y p a s s   2 0 1 9 - 0 3 - 2 6 0 X 0 1   S Q L i d = 1   U N I O N   S E L E C T   u s e r ( ) , 2 , 3 , 4   f r o m   u s e r s 0 x 0 2   A M Y S Q L % d f % 2 7 < ? p h p $ c o n   =   m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " ) ; i f   ( ! $ c o n ) { d i e ( ' C o u l d   n o t   c o n n e c t :   '   .   m y s q l _ e r r o r ( ) ) ; } m y s q l _ s e l e c t _ d b ( " t e s t " ,   $ c o n ) ; $ i d   =   s t r i p c s l a s h e s ( $ _ R E Q U E S T [   ' i d '   ] ) ; $ q u e r y     =   " S E L E C T   *   F R O M   u s e r s   W H E R E   i d   =   $ i d   " ; $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) o r   d i e ( ' < p r e > ' . m y s q l _ e r r o r ( ) . ' < / p r e > ' ) ; w h i l e ( $ r o w   =   m y s q l _ f e t c h _ a r r a y ( $ r e s u l t ) )     {     e c h o   $ r o w [ ' 0 ' ]   .   "   "   .   $ r o w [ ' 1 ' ] ;     e c h o   " < b r   / > " ;     } e c h o   " < b r / > " ; e c h o   $ q u e r y ; m y s q l _ c l o s e ( $ c o n ) ; ? > < ? p h p $ c o n   =   m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " ) ; m y s q l _ q u e r y ( " S E T   N A M E S   ' g b k ' " ) ; m y s q l _ s e l e c t _ d b ( " t e s t " ,   $ c o n ) ; $ i d   =   i s s e t ( $ _ G E T [ ' i d ' ] )   ?   a d d s l a s h e s ( $ _ G E T [ ' i d ' ] )   :   1 ; $ q u e r y     =   " S E L E C T   *   F R O M   u s e r s   W H E R E   i d   = ' { $ i d } '   " ; $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) o r   d i e ( ' < p r e > ' . m y s q l _ e r r o r ( ) . ' < / p r e > ' ) ; w h i l e ( $ r o w   =   m y s q l _ f e t c h _ a r r a y ( $ r e s u l t ) )     {     e c h o   $ r o w [ ' 0 ' ]   .   "   "   .   $ r o w [ ' 1 ' ] ;     e c h o   " < b r   / > " ;     } e c h o   " < b r / > " ; e c h o   $ q u e r y ; m y s q l _ c l o s e ( $ c o n ) ; ? >
m y s q l g b k % d f % 5 c g b k a s c i i 1 2 8 % d f % a 1 . g b 2 3 1 2 0 x A 1 ~ 0 x F 7 0 x A 1 ~ 0 x F E 0 x 5 c 0 x 5 c g b 2 3 1 2 0 x 5 c p h p m y s q l m y s q l _ s e t _ c h a r s e t ( ' g b k ' , $ c o n n ) ; $ i d   = m y s q l _ r e a l _ e s c a p e _ s t r i n g ( $ _ G E T [ ' i d ' ] ) ; c h a r a c t e r _ s e t _ c l i e n t b i n a r y m y s q l _ q u e r y ( " S E T   c h a r a c t e r _ s e t _ c o n n e c t i o n = g b k ,   c h a r a c t e r _ s e t _ r e s u l t s = g b k , c h a r a c t e r _ s e t _ c l i e n t = b i n a r y " ,   $ c o n n ) ;   c h a r a c t e r _ s e t _ c l i e n t b i n a r y B P H P     ' u t f - 8 % e 9 % 8 c % a 6 g b k % e 5 % 5 c i c o n v u t f - 8 g b k % e 5 % 5 c a d d s l a s h e s % 5 c % 2 7 % e 5 % 5 c % 5 c % 2 7 % 5 c < ? p h p $ c o n   =   m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " ) ; m y s q l _ q u e r y ( " S E T   N A M E S   ' g b k ' " ) ; m y s q l _ s e l e c t _ d b ( " t e s t " ,   $ c o n ) ; m y s q l _ q u e r y ( " S E T   c h a r a c t e r _ s e t _ c o n n e c t i o n = g b k ,   c h a r a c t e r _ s e t _ r e s u l t s = g b k , c h a r a c t e r _ s e t _ c l i e n t = b i n a r y " ,   $ c o n ) ;   $ i d   =   i s s e t ( $ _ G E T [ ' i d ' ] )   ?   a d d s l a s h e s ( $ _ G E T [ ' i d ' ] )   :   1 ; $ i d = i c o n v ( ' u t f - 8 ' , ' g b k ' , $ i d ) ; $ q u e r y     =   " S E L E C T   *   F R O M   u s e r s   W H E R E   i d   = ' { $ i d } '   " ; $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) o r   d i e ( ' < p r e > ' . m y s q l _ e r r o r ( ) . ' < / p r e > ' ) ; w h i l e ( $ r o w   =   m y s q l _ f e t c h _ a r r a y ( $ r e s u l t ) )     {     e c h o   $ r o w [ ' 0 ' ]   .   "   "   .   $ r o w [ ' 1 ' ] ;     e c h o   " < b r   / > " ;     } e c h o   " < b r / > " ; e c h o   $ q u e r y ; m y s q l _ c l o s e ( $ c o n ) ; ? >
$ i d = i c o n v ( ' g b k ' , ' u t f - 8 ' , $ i d ) ;     / / 使 % d f % 2 7 g b k 2 u t f - 8 3 g b k u t f - 8 p h p m b _ c o n v e r t _ e n c o d i n g ( $ i d , ' u t f - 8 ' , ' g b k ' )     / / G B K   T o   U T F - 8   i c o n v ( ' g b k ' , ' u t f - 8 ' , $ i d ) 0 x 0 3   u r l d e c o d e ( )   r a w u r l d e c o d e ( ) b a s e 6 4 _ d e c o d e ( ) U R L e n c o d e t a m p e r U R L e n c o d e t a m p e r 0 x 0 4       h a c k ' , h a c k ' S Q L < ? p h p $ c o n   =   m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " ) ; m y s q l _ s e l e c t _ d b ( " t e s t " ,   $ c o n ) ; $ i d   =   a d d s l a s h e s ( $ _ R E Q U E S T [ ' i d ' ] ) ; $ i d   =   u r l d e c o d e ( $ i d ) ; / / $ i d   =   b a s e 6 4 _ d e c o d e ( $ i d ) ; $ q u e r y     =   " S E L E C T   *   F R O M   u s e r s   W H E R E   i d   =   ' { $ i d } ' " ; $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) o r   d i e ( ' < p r e > ' . m y s q l _ e r r o r ( ) . ' < / p r e > ' ) ; w h i l e ( $ r o w   =   m y s q l _ f e t c h _ a r r a y ( $ r e s u l t ) )     {     e c h o   $ r o w [ ' 0 ' ]   .   "   "   .   $ r o w [ ' 1 ' ] ;     e c h o   " < b r   / > " ;     } e c h o   " < b r / > " ; e c h o   $ q u e r y ; m y s q l _ c l o s e ( $ c o n ) ; ? >     1 ' u n i o n   s e l e c t   1 , 2 , 3 , 4 % 2 3         U r l e n c o d e                           1 % 2 5 2 7 u n i o n   s e l e c t   1 , 2 , 3 , 4 % 2 3 # ! / u s r / b i n / e n v   p y t h o n i m p o r t   r e f r o m   u r l l i b   i m p o r t   q u o t 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 . N O R M A L 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 ) :         r e t V a l   =   p a y l o a d         r e t V a l   =   q u o t e ( q u o t e ( r e t V a l ) )                 r e t u r n   r e t V a l
    C R E A T E   T A B L E     t e s t   ( u s e r   V A R C H A R ( 2 0 )   N O T   N U L L )     I N S E R T   I N T O   t e s t   v a l u e s ( ' h a c k ' ' ) ; / / c r e a t e   t a b l e   t e s t ( i d   I N T   N O T   N U L L , u s e r   V A R C H A R ( 1 0 0 )   N O T   N U L L , p a s s   V A R C H A R ( 1 0 0 )   N O T   N U L L ) I N S E R T   I N T O   t e s t   v a l u e s ( 1 , ' h a c k ' , ' h a c k ' ) ; / / < ? p h p $ c o n   =   m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " ) ; m y s q l _ s e l e c t _ d b ( " t e s t " ,   $ c o n ) ; m y s q l _ q u e r y ( " S E T   c h a r a c t e r _ s e t _ c o n n e c t i o n = g b k ,   c h a r a c t e r _ s e t _ r e s u l t s = g b k , c h a r a c t e r _ s e t _ c l i e n t = b i n a r y " ,   $ c o n ) ;   / / u p d a t e i f   ( i s s e t ( $ _ G E T [ ' k e y ' ] ) ) {         $ k e y = a d d s l a s h e s ( $ _ R E Q U E S T [ ' k e y ' ] ) ;         $ q u e r y   = " u p d a t e   t e s t   s e t   u s e r = ' { $ k e y } '   w h e r e   i d = 1 " ;         e c h o   " I N S E R T   S Q L :   " . $ q u e r y . " < b r / > " ;         $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) ; } / / s e l e c t   $ q u e r y     =   " S E L E C T   *   F R O M   t e s t   W H E R E   i d   =   1 " ; $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) ; $ r o w   =   m y s q l _ f e t c h _ r o w ( $ r e s u l t ) ; e c h o   " < b r / > " ; $ q u e r y     =   " S E L E C T   *   F R O M   t e s t   W H E R E   u s e r   =   ' { $ r o w [ 1 ] } ' " ; p r i n t _ r ( ' S E L E C T   S Q L :   ' . $ q u e r y . ' < b r / > ' ) ; $ r e s u l t   =   m y s q l _ q u e r y ( $ q u e r y ) o r   d i e ( ' < p r e > ' . m y s q l _ e r r o r ( ) . ' < / p r e > ' ) ; ; e c h o   " < b r / > " ; p r i n t _ r ( m y s q l _ f e t c h _ r o w ( $ r e s u l t ) ) ; m y s q l _ c l o s e ( $ c o n ) ;
0 x 0 5   1 s t r _ r e p l a c e     2 s t r i p s l a s h e s ( )     a d d s l a s h e s ( )   s t r i p s l a s h e s 使 i d = 1 G P C v a l u e k e y G E T P O S T C O O K I E S E R V E R F I L E S G E T P O S T F I L E S e x t r a c t ( ) p a r s e _ s t r ( ) $ $ 0 X 0 6       - - - - - - - - - - - - - - 1 P H P   i s _ n u m e r i c ( ) c t y p e _ d i g i t ( )   P e r l   使   i s _ n u m e r i c ( )   使   s e t t y p e ( )     s p r i n t f ( )   2 P H P 3     p h p . i n i d i s p l a y _ e r r o r s   =   O f f @ S Q L ? > A d d s l a s h e s ( )       h t t p : / / p h p . n e t / m a n u a l / z h / f u n c t i o n . a d d s l a s h e s . p h p m a g i c _ q u o t e _ g p c   h t t p : / / p h p . n e t / m a n u a l / z h / i n f o . c o n f i g u r a t i o n . p h p # i n i . m a g i c - q u o t e s - g p c m y s q l _ r e a l _ e s c a p e _ s t r i n g ( )     h t t p : / / p h p . n e t / m a n u a l / z h / f u n c t i o n . m y s q l - r e a l - e s c a p e - s t r i n g . p h p m y s q l _ e s c a p e _ s t r i n g ( )             h t t p : / / p h p . n e t / m a n u a l / z h / f u n c t i o n . m y s q l - e s c a p e - s t r i n g . p h p < ? p h p $ m y s q l i   =   n e w   M y S Q L i ( " l o c a l h o s t " , " r o o t " , " r o o t " , " t e s t " ) ; i f ( ! $ m y s q l i ) {   d i e ( $ m y s q l i - > e r r o r ) ; } $ s q l   =   " s e l e c t   i d , u s e r n a m e , p a s s w o r d   f r o m   u s e r s   w h e r e   i d = ? " ; / / / /   ?
$ s q l   =   " s e l e c t   i d , u s e r n a m e , p a s s w o r d   f r o m   u s e r s   w h e r e   i d = ? " ; / / / /   ? $ m y s q l i _ s t m t   =   $ m y s q l i - > p r e p a r e ( $ s q l ) ; $ i d = $ _ R E Q U E S T [ ' i d ' ] ; $ m y s q l i _ s t m t - > b i n d _ p a r a m ( " i " , $ i d ) ; / / / / $ m y s q l i _ s t m t - > b i n d _ r e s u l t ( $ i d , $ u s e r n a m e , $ p a s s w o r d ) ; / / / / $ m y s q l i _ s t m t - > e x e c u t e ( ) ; / / w h i l e ( $ m y s q l i _ s t m t - > f e t c h ( ) ) {       / /   e c h o   $ i d . "   " . $ u s e r n a m e   . "   " .   $ p a s s w o r d ; } e c h o     " < b r / > " ; e c h o   $ s q l ; $ m y s q l i _ s t m t - > f r e e _ r e s u l t ( ) ;   / / / / $ m y s q l i _ s t m t - > c l o s e ( ) ; $ m y s q l i - > c l o s e ( ) ; ? >
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则