[28298] 2020-05-12_如何在Python中构建XSS漏洞扫描程序

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-19
2020-05-12_如何在Python中构建XSS漏洞扫描程序 P y t h o n X S S O t s   2 0 2 0 - 0 5 - 1 2 X S S W e b W e b W e b W e b j a v a s c r i p t H T M L a c t i o n m e t h o d p i p 3   i n s t a l l   r e q u e s t s   b s 4 p i p 3   i n s t a l l   r e q u e s t s   b s 4 i m p o r t i m p o r t   r e q u e s t s   r e q u e s t s f r o m f r o m   p p r i n t     p p r i n t   i m p o r t i m p o r t   p p r i n t   p p r i n t f r o m f r o m   b s 4     b s 4   i m p o r t i m p o r t   B e a u t i f u l S o u p     B e a u t i f u l S o u p   a s a s   b s   b s f r o m f r o m   u r l l i b   u r l l i b . . p a r s e   p a r s e   i m p o r t i m p o r t   u r l j o i n   u r l j o i n d e f d e f     g e t _ a l l _ f o r m s g e t _ a l l _ f o r m s ( ( u r l u r l ) ) : :                 " " " G i v e n   a   ` u r l ` ,   i t   r e t u r n s   a l l   f o r m s   f r o m   t h e   H T M L   c o n t e n t " " " " " " G i v e n   a   ` u r l ` ,   i t   r e t u r n s   a l l   f o r m s   f r o m   t h e   H T M L   c o n t e n t " " "         s o u p           s o u p   = =   b s   b s ( ( r e q u e s t s r e q u e s t s . . g e t g e t ( ( u r l u r l ) ) . . c o n t e n t c o n t e n t , ,     " h t m l . p a r s e r " " h t m l . p a r s e r " ) )                 r e t u r n r e t u r n   s o u p   s o u p . . f i n d _ a l l f i n d _ a l l ( ( " f o r m " " f o r m " ) ) d e f d e f     g e t _ f o r m _ d e t a i l s g e t _ f o r m _ d e t a i l s ( ( f o r m f o r m ) ) : :                 " " " " " "         T h i s   f u n c t i o n   e x t r a c t s   a l l   p o s s i b l e   u s e f u l   i n f o r m a t i o n   a b o u t   a n   H T M L   ` f o r m `         T h i s   f u n c t i o n   e x t r a c t s   a l l   p o s s i b l e   u s e f u l   i n f o r m a t i o n   a b o u t   a n   H T M L   ` f o r m `         " " "         " " "         d e t a i l s           d e t a i l s   = =     { { } }                 #   g e t   t h e   f o r m   a c t i o n   ( t a r g e t   u r l ) #   g e t   t h e   f o r m   a c t i o n   ( t a r g e t   u r l )         a c t i o n           a c t i o n   = =   f o r m   f o r m . . a t t r s a t t r s . . g e t g e t ( ( " a c t i o n " " a c t i o n " ) ) . . l o w e r l o w e r ( ( ) )                 #   g e t   t h e   f o r m   m e t h o d   ( P O S T ,   G E T ,   e t c . ) #   g e t   t h e   f o r m   m e t h o d   ( P O S T ,   G E T ,   e t c . )         m e t h o d           m e t h o d   = =   f o r m   f o r m . . a t t r s a t t r s . . g e t g e t ( ( " m e t h o d " " m e t h o d " , ,     " g e t " " g e t " ) ) . . l o w e r l o w e r ( ( ) )                 #   g e t   a l l   t h e   i n p u t   d e t a i l s   s u c h   a s   t y p e   a n d   n a m e #   g e t   a l l   t h e   i n p u t   d e t a i l s   s u c h   a s   t y p e   a n d   n a m e         i n p u t s           i n p u t s   = =     [ [ ] ]                 f o r f o r   i n p u t _ t a g     i n p u t _ t a g   i n i n   f o r m   f o r m . . f i n d _ a l l f i n d _ a l l ( ( " i n p u t " " i n p u t " ) ) : :                 i n p u t _ t y p e                   i n p u t _ t y p e   = =   i n p u t _ t a g   i n p u t _ t a g . . a t t r s a t t r s . . g e t g e t ( ( " t y p e " " t y p e " , ,     " t e x t " " t e x t " ) )                 i n p u t _ n a m e                   i n p u t _ n a m e   = =   i n p u t _ t a g   i n p u t _ t a g . . a t t r s a t t r s . . g e t g e t ( ( " n a m e " " n a m e " ) )                 i n p u t s                 i n p u t s . . a p p e n d a p p e n d ( ( { { " t y p e " " t y p e " : :   i n p u t _ t y p e   i n p u t _ t y p e , ,     " n a m e " " n a m e " : :   i n p u t _ n a m e   i n p u t _ n a m e } } ) )                 #   p u t   e v e r y t h i n g   t o   t h e   r e s u l t i n g   d i c t i o n a r y #   p u t   e v e r y t h i n g   t o   t h e   r e s u l t i n g   d i c t i o n a r y         d e t a i l s         d e t a i l s [ [ " a c t i o n " " a c t i o n " ] ]     = =   a c t i o n   a c t i o n         d e t a i l s         d e t a i l s [ [ " m e t h o d " " m e t h o d " ] ]     = =   m e t h o d   m e t h o d         d e t a i l s         d e t a i l s [ [ " i n p u t s " " i n p u t s " ] ]     = =   i n p u t s   i n p u t s                 r e t u r n r e t u r n   d e t a i l s   d e t a i l s
f o r m _ d e t a i l s g e t _ f o r m _ d e t a i l s   H T M L u r l 使 r e q u e s t . g e t r e q u e s t . p o s t f o r m   X S S d e f d e f     s u b m i t _ f o r m s u b m i t _ f o r m ( ( f o r m _ d e t a i l s f o r m _ d e t a i l s , ,   u r l   u r l , ,   v a l u e   v a l u e ) ) : :                 " " " " " "         S u b m i t s   a   f o r m   g i v e n   i n   ` f o r m _ d e t a i l s `         S u b m i t s   a   f o r m   g i v e n   i n   ` f o r m _ d e t a i l s `         P a r a m s :         P a r a m s :                 f o r m _ d e t a i l s   ( l i s t ) :   a   d i c t i o n a r y   t h a t   c o n t a i n   f o r m   i n f o r m a t i o n                 f o r m _ d e t a i l s   ( l i s t ) :   a   d i c t i o n a r y   t h a t   c o n t a i n   f o r m   i n f o r m a t i o n                 u r l   ( s t r ) :   t h e   o r i g i n a l   U R L   t h a t   c o n t a i n   t h a t   f o r m                 u r l   ( s t r ) :   t h e   o r i g i n a l   U R L   t h a t   c o n t a i n   t h a t   f o r m                 v a l u e   ( s t r ) :   t h i s   w i l l   b e   r e p l a c e d   t o   a l l   t e x t   a n d   s e a r c h   i n p u t s                 v a l u e   ( s t r ) :   t h i s   w i l l   b e   r e p l a c e d   t o   a l l   t e x t   a n d   s e a r c h   i n p u t s         R e t u r n s   t h e   H T T P   R e s p o n s e   a f t e r   f o r m   s u b m i s s i o n         R e t u r n s   t h e   H T T P   R e s p o n s e   a f t e r   f o r m   s u b m i s s i o n         " " "         " " "                 #   c o n s t r u c t   t h e   f u l l   U R L   ( i f   t h e   u r l   p r o v i d e d   i n   a c t i o n   i s   r e l a t i v e ) #   c o n s t r u c t   t h e   f u l l   U R L   ( i f   t h e   u r l   p r o v i d e d   i n   a c t i o n   i s   r e l a t i v e )         t a r g e t _ u r l           t a r g e t _ u r l   = =   u r l j o i n   u r l j o i n ( ( u r l u r l , ,   f o r m _ d e t a i l s   f o r m _ d e t a i l s [ [ " a c t i o n " " a c t i o n " ] ] ) )                 #   g e t   t h e   i n p u t s #   g e t   t h e   i n p u t s         i n p u t s           i n p u t s   = =   f o r m _ d e t a i l s   f o r m _ d e t a i l s [ [ " i n p u t s " " i n p u t s " ] ]         d a t a           d a t a   = =     { { } }                 f o r f o r     i n p u t i n p u t     i n i n   i n p u t s   i n p u t s : :                                 #   r e p l a c e   a l l   t e x t   a n d   s e a r c h   v a l u e s   w i t h   ` v a l u e ` #   r e p l a c e   a l l   t e x t   a n d   s e a r c h   v a l u e s   w i t h   ` v a l u e `                                 i f i f     i n p u t i n p u t [ [ " t y p e " " t y p e " ] ]     = = = =     " t e x t " " t e x t "     o r o r     i n p u t i n p u t [ [ " t y p e " " t y p e " ] ]     = = = =     " s e a r c h " " s e a r c h " : :                                                 i n p u t i n p u t [ [ " v a l u e " " v a l u e " ] ]     = =   v a l u e   v a l u e                 i n p u t _ n a m e                   i n p u t _ n a m e   = =     i n p u t i n p u t . . g e t g e t ( ( " n a m e " " n a m e " ) )                 i n p u t _ v a l u e                   i n p u t _ v a l u e   = =     i n p u t i n p u t . . g e t g e t ( ( " v a l u e " " v a l u e " ) )                                 i f i f   i n p u t _ n a m e     i n p u t _ n a m e   a n d a n d   i n p u t _ v a l u e   i n p u t _ v a l u e : :                                                 #   i f   i n p u t   n a m e   a n d   v a l u e   a r e   n o t   N o n e , #   i f   i n p u t   n a m e   a n d   v a l u e   a r e   n o t   N o n e ,                                                 #   t h e n   a d d   t h e m   t o   t h e   d a t a   o f   f o r m   s u b m i s s i o n #   t h e n   a d d   t h e m   t o   t h e   d a t a   o f   f o r m   s u b m i s s i o n                         d a t a                         d a t a [ [ i n p u t _ n a m e i n p u t _ n a m e ] ]     = =   i n p u t _ v a l u e   i n p u t _ v a l u e                 i f i f   f o r m _ d e t a i l s   f o r m _ d e t a i l s [ [ " m e t h o d " " m e t h o d " ] ]     = = = =     " p o s t " " p o s t " : :                                 r e t u r n r e t u r n   r e q u e s t s   r e q u e s t s . . p o s t p o s t ( ( t a r g e t _ u r l t a r g e t _ u r l , ,   d a t a   d a t a = = d a t a d a t a ) )                 e l s e e l s e : :                                 #   G E T   r e q u e s t #   G E T   r e q u e s t                                 r e t u r n r e t u r n   r e q u e s t s   r e q u e s t s . . g e t g e t ( ( t a r g e t _ u r l t a r g e t _ u r l , ,   p a r a m s   p a r a m s = = d a t a d a t a ) )
U R L H T M L 使 J a v a s c r i p t J a v s c r i p t X S S X S S X S S X S S X S S 使 X S S 使 X S S X S S t r i k e P y t h o n d e f d e f     s c a n _ x s s s c a n _ x s s ( ( u r l u r l ) ) : :                 " " " " " "         G i v e n   a   ` u r l ` ,   i t   p r i n t s   a l l   X S S   v u l n e r a b l e   f o r m s   a n d         G i v e n   a   ` u r l ` ,   i t   p r i n t s   a l l   X S S   v u l n e r a b l e   f o r m s   a n d         r e t u r n s   T r u e   i f   a n y   i s   v u l n e r a b l e ,   F a l s e   o t h e r w i s e         r e t u r n s   T r u e   i f   a n y   i s   v u l n e r a b l e ,   F a l s e   o t h e r w i s e         " " "         " " "                 #   g e t   a l l   t h e   f o r m s   f r o m   t h e   U R L #   g e t   a l l   t h e   f o r m s   f r o m   t h e   U R L         f o r m s           f o r m s   = =   g e t _ a l l _ f o r m s   g e t _ a l l _ f o r m s ( ( u r l u r l ) )                 p r i n t p r i n t ( ( f " [ + ]   D e t e c t e d   f " [ + ]   D e t e c t e d   { { l e n l e n ( ( f o r m s f o r m s ) ) } }   f o r m s   o n     f o r m s   o n   { { u r l u r l } } . " . " ) )         j s _ s c r i p t           j s _ s c r i p t   = =     " < S c r i p t > a l e r t ( ' h i ' ) < / s c r i p T > " " < S c r i p t > a l e r t ( ' h i ' ) < / s c r i p T > "                 #   r e t u r n i n g   v a l u e #   r e t u r n i n g   v a l u e         i s _ v u l n e r a b l e           i s _ v u l n e r a b l e   = =     F a l s e F a l s e                 #   i t e r a t e   o v e r   a l l   f o r m s #   i t e r a t e   o v e r   a l l   f o r m s                 f o r f o r   f o r m     f o r m   i n i n   f o r m s   f o r m s : :                 f o r m _ d e t a i l s                   f o r m _ d e t a i l s   = =   g e t _ f o r m _ d e t a i l s   g e t _ f o r m _ d e t a i l s ( ( f o r m f o r m ) )                 c o n t e n t                   c o n t e n t   = =   s u b m i t _ f o r m   s u b m i t _ f o r m ( ( f o r m _ d e t a i l s f o r m _ d e t a i l s , ,   u r l   u r l , ,   j s _ s c r i p t   j s _ s c r i p t ) ) . . c o n t e n t c o n t e n t . . d e c o d e d e c o d e ( ( ) )                                 i f i f   j s _ s c r i p t     j s _ s c r i p t   i n i n   c o n t e n t   c o n t e n t : :                                                 p r i n t p r i n t ( ( f " [ + ]   X S S   D e t e c t e d   o n   f " [ + ]   X S S   D e t e c t e d   o n   { { u r l u r l } } " " ) )                                                 p r i n t p r i n t ( ( f " [ * ]   F o r m   d e t a i l s : " f " [ * ]   F o r m   d e t a i l s : " ) )                         p p r i n t                         p p r i n t ( ( f o r m _ d e t a i l s f o r m _ d e t a i l s ) )                         i s _ v u l n e r a b l e                           i s _ v u l n e r a b l e   = =     T r u e T r u e                                                 #   w o n ' t   b r e a k   b e c a u s e   w e   w a n t   t o   p r i n t   a v a i l a b l e   v u l n e r a b l e   f o r m s #   w o n ' t   b r e a k   b e c a u s e   w e   w a n t   t o   p r i n t   a v a i l a b l e   v u l n e r a b l e   f o r m s                 r e t u r n r e t u r n   i s _ v u l n e r a b l e   i s _ v u l n e r a b l e i f i f   _ _ n a m e _ _     _ _ n a m e _ _   = = = =     " _ _ m a i n _ _ " " _ _ m a i n _ _ " : :         u r l           u r l   = =     " h t t p s : / / x s s - g a m e . a p p s p o t . c o m / l e v e l 1 / f r a m e " " h t t p s : / / x s s - g a m e . a p p s p o t . c o m / l e v e l 1 / f r a m e "                 p r i n t p r i n t ( ( s c a n _ x s s s c a n _ x s s ( ( u r l u r l ) ) ) ) [ [ + + ] ]   D e t e c t e d     D e t e c t e d   1 1   f o r m s   o n   h t t p s   f o r m s   o n   h t t p s : : / / / / x s s x s s - - g a m e g a m e . . a p p s p o t a p p s p o t . . c o m c o m / / l e v e l 1 l e v e l 1 / / f r a m e f r a m e . . [ [ + + ] ]   X S S   D e t e c t e d   o n   h t t p s   X S S   D e t e c t e d   o n   h t t p s : : / / / / x s s x s s - - g a m e g a m e . . a p p s p o t a p p s p o t . . c o m c o m / / l e v e l 1 l e v e l 1 / / f r a m e f r a m e [ [ * * ] ]   F o r m   d e t a i l s   F o r m   d e t a i l s : : { { ' a c t i o n ' ' a c t i o n ' : :     ' ' ' ' , ,     ' i n p u t s ' ' i n p u t s ' : :     [ [ { { ' n a m e ' ' n a m e ' : :     ' q u e r y ' ' q u e r y ' , ,                                                     ' t y p e ' ' t y p e ' : :     ' t e x t ' ' t e x t ' , ,                                                     ' v a l u e ' ' v a l u e ' : :     " < S c r i p t > a l e r t ( ' h i ' ) < / s c r i p T > " " < S c r i p t > a l e r t ( ' h i ' ) < / s c r i p T > " } } , ,                                                 { { ' n a m e ' ' n a m e ' : :     N o n e N o n e , ,     ' t y p e ' ' t y p e ' : :     ' s u b m i t ' ' s u b m i t ' } } ] ] , ,     ' m e t h o d ' ' m e t h o d ' : :     ' g e t ' ' g e t ' } } T r u e T r u e

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

本版积分规则