[206] 2018-06-12_CSRF漏洞详解,一文看懂CSRF

文档创建者:s7ckTeam
浏览次数:11
最后更新:2025-01-16
2018-06-12_CSRF漏洞详解,一文看懂CSRF C S R F C S R F     a F a   2 0 1 8 - 0 6 - 1 2 0 x 0 0 C S R F   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 访   C o o k i e     C S R F   0 x 0 1 C S R F     ( A )     ( B )     U R L   a c c o u n t   m o n e y   t o u s e r   A     B   C   A     C     A     C o o k i e     A     A   退 便 0 x 0 2 便   C S R F   0 x 0 3   C S R F   U R L     W E B   0 x 0 4 1 2 3   H T T P     R e f e r e r   4   T o k e n   5 H T T P   0 x 0 5 1   J S 2 h t t p s : / / w w w . x x x x . c o m ? a c c o u n t = A & m o n e y = 1 0 0 0 0 & t o u s e r = B h t t p s : / / w w w . x x x x . c o m ? a c c o u n t = A & m o n e y = 1 0 0 0 0 & t o u s e r = C < f o r m   m e t h o d = " G E T "   a c t i o n = " / t r a n s f e r F u n d s " >         < i n p u t   t y p e = " t e x t "   n a m e = " m o n e y " >         < i n p u t   t y p e = " t e x t "   n a m e = " t o u s e r " >         < i n p u t   t y p e = " s u b m i t "   n a m e = " a c t i o n "   v a l u e = " " > < / f o r m > < s c r i p t >         f u n c t i o n   m o n e y S u b ( ) {                 i f ( c o n f i r m ( ' ' ) ) {                         r e n t u r n   t u r e ;                 } e l s e {                         r e t u r n   f a l s e ;                 }         } < / s c r i p t > < f o r m   m e t h o d = " G E T "   a c t i o n = " / t r a n s f e r F u n d s " >         < i n p u t   t y p e = " t e x t "   n a m e = " m o n e y " >         < i n p u t   t y p e = " t e x t "   n a m e = " t o u s e r " >         < i n p u t   t y p e = " s u b m i t "   n a m e = " a c t i o n "   v a l u e = " " > < / f o r m > < s c r i p t > v a r   c o d e ; w i n d o w . o n l o a d = f u n c t i o n   c r e a t e C o d e ( ) {             c o d e   =   " " ;             v a r   c o d e L e n g t h   =   4 ;         v a r   c h e c k C o d e   =   d o c u m e n t . g e t E l e m e n t B y I d ( " c o d e " ) ;             v a r   r a n d o m   =   n e w   A r r a y ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F ' , ' G ' , ' H ' , ' I ' , ' J ' , ' K ' , ' L ' , ' M ' , ' N ' , ' O ' , ' P ' , ' Q ' , ' R ' ,   ' S ' , ' T ' , ' U ' , ' V ' , ' W ' , ' X ' , ' Y ' , ' Z ' ) ;           f o r ( v a r   i   =   0 ;   i   <   c o d e L e n g t h ;   i + + )   {                 v a r   i n d e x   =   M a t h . f l o o r ( M a t h . r a n d o m ( ) * 3 6 ) ;                 c o d e   + =   r a n d o m [ i n d e x ] ;
3   H T T P   R e f e r e r     R e f e r e r   使   J a v a     F i l t e r     R e f e r e r     e r r o r   4   T o k e n     h i d d e n     T o k e n   T o k e n     g e n e r a t e T o k e n     t o k e n   使   J a v a     U U I D 5   H T T P     t o k e n     t o k e n   d o j o . x h r     J S     s e s s i o n     t o k e n   0 x 0 6 C S R F     C S R F           }             c h e c k C o d e . v a l u e   =   c o d e ; }       f u n c t i o n   v a l i d a t e ( ) {             v a r   i n p u t C o d e   =   d o c u m e n t . g e t E l e m e n t B y I d ( " y z m " ) . v a l u e . t o U p p e r C a s e ( ) ;         i f ( i n p u t C o d e . l e n g t h   < =   0 )   {                   a l e r t ( " " ) ;                 r e t u r n   f a l s e ;         } e l s e   i f ( i n p u t C o d e   ! =   c o d e   )   {                 a l e r t ( " " ) ;                 r e t u r n   f a l s e ;           } e l s e   {                 r e t u r n   t r u e ;         } } S t r i n g   r e f e r e r   =   r e q u e s t . g e t H e a d e r ( " R e f e r e r " ) ; i f ( ( r e f e r e r ! = n u l l )   & &   ( r e f e r e r . t r i m ( ) . s t a r t s W i t h ( " x x x x . c o m " ) ) ) {         c h a i n . d o F i l t e r ( r e q u e s t , r e s p o n s e ) ; } e l s e {         r e q u e s t . g e t R e q u e s t D i s p a t c h e r ( " e r r o r . j s p " ) . f o r w a r d ( r e q u e s t , r e s p o n s e ) ; } H t t p S e r v l e t R e q u e s t   r e q   =   ( H t t p S e r v l e t R e q u e s t ) r e q u e s t ; H t t p S e s s i o n   s   =   r e q . g e t S e s s i o n ( ) ; S t r i n g   s T o k e n   =   ( S t r i n g ) s . g e t A t t r i b u t e ( " t o k e n " ) ; i f ( s T o k e n   = =   n u l l ) {         / / t o k e n 访 t o k e n         s T o k e n   =   g e n e r a t e T o k e n ( ) ;         s . s e t A t t r i b u t e ( " t o k e n " , s T o k e n ) ;         c h a i n . d o F i l t e r ( r e q u e s t , r e s p o n s e ) ; } e l s e {         S t r i n g   t o k e n   =   r e q . g e t P a r a m e t e r ( " t o k e n " ) ;         / / 访 t o k e n         i f ( s T o k e n   ! =   n u l l   & &   s T o k e n . e q u a l s ( t o k e n ) ) {                 c h a i n . d o F i l t e r ( r e q u e s t , r e s p o n s e ) ;         } e l s e {                 r e q u e s t . g e t R e q u e s t D i s p a t c h e r ( " e r r o r . j s p " ) . f o r w a r d ( r e q u e s t , r e s p o n s e ) ;         } } f o r ( i n t   i = 0 ; i < 1 0 ; i + + ) {         S t r i n g   u u i d   =   U U I D . r a n d o m U U I D ( ) . t o S t r i n g ( ) . r e p l a c e A l l ( " - " ,   " " ) ; } v a r   p l a i n X h r   =   d o j o . x h r ;   d o j o . x h r   =   f u n c t i o n ( m e t h o d , a r g s , h a s B o d y )   {           / /     d o j o . x h r                   a r g s . h e a d e r s   =   a r g s . h e a d e r   | |   { } ;           / /     h e a d e r                   t o k e n V a l u e   =   ' < % = r e q u e s t . g e t S e s s i o n ( f a l s e ) . g e t A t t r i b u t e ( " t o k e n " ) % > ' ;           v a r   t o k e n   =   d o j o . g e t O b j e c t ( " t o k e n V a l u e " ) ;           a r g s . h e a d e r s [ " t o k e n " ]   =   ( t o k e n )   ?   t o k e n   :   "     " ;           / / t o k e n           r e t u r n   p l a i n X h r ( m e t h o d , a r g s , h a s B o d y ) ;   }

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则