[10037] 2016-04-23_PlaidCTF2016-Tonnerre解题思路

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2016-04-23_PlaidCTF2016-Tonnerre解题思路 P l a i d   C T F   2 0 1 6   -   T o n n e r r e   F r e e B u f   2 0 1 6 - 0 4 - 2 3 t o n n e r r e . p w n i n g . x x x : 8 5 6 0 访 访 . . . . :   2 0 0 :   :   1 1 9 W e b S Q L s q l m a p   ,   1 2 7 ,   1 4 5 t o n n e r r e u s e r s g e t _ f l a g s a l t v e r i f i e r
使 S R P ( ) P y t h o n N   =   . . .   #   a   1 0 2 4 - b i t   p r i m e   n u m b e r ,   t h e   g r o u p   m o d u l u s g   =   . . .   #   a   6 7 1 - b i t   n u m b e r ,   a   g r o u p   g e n e r a t o r . . .       #   g e n e r a t e s   a   k e y   p a i r         r a n d o m _ s e r v e r   =   r a n d o m . r a n d i n t ( 2 ,   N - 3 )         p u b l i c _ s e r v e r   =   p o w ( g ,   r a n d o m _ s e r v e r ,   N )                 #   m a s k   t h e   p u b l i c   k e y   w i t h   t h e   v e r i f i e r         r e s i d u e   =   ( p u b l i c _ s e r v e r   +   p e r m i t t e d _ u s e r s [ u s e r n a m e ] [ 1 ] )   %   N                 #   s e n d   s a l t   a n d   m a s k e d   p u b k e y         r e q . s e n d a l l ( t o s t r ( p e r m i t t e d _ u s e r s [ u s e r n a m e ] [ 0 ] )   +   ' n ' )         r e q . s e n d a l l ( t o s t r ( r e s i d u e )   +   ' n ' )         #   c o m p u t e   t h e   s e s s i o n   k e y ,         #       m a s k i n g   t h e   c l i e n t   p u b k e y   w i t h   t h e   v e r i f i e r         #       r a i s i n g   t o   t h e   s e r v e r ' s   s e c r e t   e x p o n e n t         #       h a s h i g n   t h e   w h o l e   t h i n g   u s i n g   S H A - 2 5 6         s e s s i o n _ s e c r e t   =   ( p u b l i c _ c l i e n t   *   p e r m i t t e d _ u s e r s [ u s e r n a m e ] [ 1 ] )   %   N         s e s s i o n _ s e c r e t   =   p o w ( s e s s i o n _ s e c r e t ,   r a n d o m _ s e r v e r ,   N )         s e s s i o n _ k e y   =   H ( t o s t r ( s e s s i o n _ s e c r e t ) )         #   r e c e i v e   a   p r o o f   f r o m   t h e   c l i e n t . .         p r o o f   =   r e q . r e c v ( 5 1 2 ) . s t r i p ( ' n ' )         #   . . s h o u l d   b e   a   h a s h   o f   t h e   s e r v e r ' s   m a s k e d   p u b k e y   a n d   s e s s i o n   k e y         i f   ( p r o o f   ! =   H ( t o s t r ( r e s i d u e )   +   s e s s i o n _ k e y ) ) :             r e q . s e n d a l l ( ' S o r r y ,   n o t   p e r m i t t e d . n ' )             r e q . c l o s e ( )             r e t u r n         #   t h i s   i s   u s e l e s s   f o r   t h e   c h a l l e n g e         o u r _ v e r i f i e r   =   H ( t o s t r ( p u b l i c _ c l i e n t )   +   s e s s i o n _ k e y )         r e q . s e n d a l l ( o u r _ v e r i f i e r   +   ' n ' )         #   s e n d   u s   t h e   f l a g !         r e q . s e n d a l l ( ' C o n g r a t u l a t i o n s !   T h e   f l a g   i s   '   +   f l a g   +   ' n ' )         r e q . c l o s e ( ) ( s ,   S ) ( c ,   C ) g ^ s = S     g ^ c = C . D i f f i e - H e l l m a n ( 使 v e r i f i e r ) ( C   *   v e r i f i e r ) ^ s   =   g ^ ( c s )   *   v e r i f i e r ^ s p r i v a t e   e x p o n e n t   便 s p u b l i c _ c l i e n t
使 v e r i f i e r N ( ) r a n d o m _ c l i e n t   =   r a n d o m . r a n d i n t ( 2 ,   N - 2 ) p u b l i c _ c l i e n t   =   p o w ( g ,   r a n d o m _ c l i e n t ,   N ) i n v v e r   =   m o d i n v ( v e r i f i e r ,   N ) p u b l i c _ c l i e n t 2   = i n v v e r   *   p u b l i c _ c l i e n t   %   N i f   ( ( p u b l i c _ c l i e n t 2   *   v e r i f i e r )   %   N )   = =   p u b l i c _ c l i e n t :   p r i n t   ' v e r i f i e r   v e r i f i e d ' s . s e n d a l l ( t o s t r ( p u b l i c _ c l i e n t 2 )   +   ' n ' ) #   g e t   s a l t   a n d   s e r v e r   p u b k e y s a l t   =   i n t ( s . r e c v ( 5 1 2 ) . s t r i p ( ' n ' ) ,   1 6 )   % N r e s i d u e   =   i n t ( s . r e c v ( 5 1 2 ) . s t r i p ( ' n ' ) ,   1 6 )   %   N p u b l i c _ s e r v e r   =   ( r e s i d u e   -   v e r i f i e r   +   N )   %   N s e s s i o n _ s e c r e t   =   p o w ( p u b l i c _ s e r v e r , r a n d o m _ c l i e n t ,   N ) s e s s i o n _ k e y   =   H ( t o s t r ( s e s s i o n _ s e c r e t ) ) p r o o f   =   H ( t o s t r ( r e s i d u e )   +   s e s s i o n _ k e y ) s . s e n d a l l ( p r o o f   + ' n ' ) t i m e . s l e e p ( 0 . 5 ) r   =   s . r e c v ( 5 1 2 ) . s t r i p ( ' n ' ) p r i n t   r p y t h o n   t o n n e r r e _ s o l v e . p y W e l c o m e   t o   t h e   T o n n e r r e   A u t h e n t i c a t i o n   S y s t e m ! v e r i f i e r   v e r i f i e d c a 7 8 7 0 5 9 b c 5 7 2 b c 7 9 0 2 c 9 1 d 2 a 1 6 8 2 2 6 a 3 2 0 5 2 5 1 8 0 7 3 f 4 c 3 2 9 4 8 f f 0 2 8 2 6 e 6 b e 2 2 C o n g r a t u l a t i o n s !   T h e   f l a g   i s   P C T F { S r P _ v 1 _ B e S t _ s R p _ c 0 n f 1 r m 3 d } * d u k s c t f F r e e B u f F r e e B u f . C O M p u b l i c _ c l i e n t C C v e r i f i e r

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

本版积分规则