[293] 2019-04-09_A1代码审计之SQL注入

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

本版积分规则