[13252] 2018-10-01_浅谈PHP安全规范

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

本版积分规则