[16088] 2020-11-14_Codeql分析Vulnerability-GoApp

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-18
2020-11-14_Codeql分析Vulnerability-GoApp C o d e q l V u l n e r a b i l i t y - G o A p p Z h e   F r e e B u f   2 0 2 0 - 1 1 - 1 4 c o d e q l c o o k i e h t t p o n l y c o d e q l 使 V u l n e r a b i l i t y - g o a p p g o c o d e q l - g o V u l n e r a b i l i t y - g o a p p V u l n e r a b l e   g o l a n g   W e b   a p p l i c a t i o n   f o r   e d u c a t i o n c o o k i e h t t p - o n l y c o o k i e h t t p - o n l y p k g a d m i n a d m i n . g o p k g l o g i n l o g i n . g o
p k g r e g i s t e r r e g i s t e r . g o d a t a b a s e D A T a b a s e c o d e q l h t t p o n l y h t t p o n l y h t t p o n l y f a l s e S o u r c e S i n k S i n k S i n k C o o k i e h t t p . S e t C o o k i e , C o o k i e S i n k i m p o r t   g o
S i n k S i n k S o u r c e S o u r c e , h t t p . S e t C o o k i e C o o k i e i m p o r t   g o f r o m   D a t a F l o w : : N o d e   s i n k w h e r e   e x i s t s ( D a t a F l o w : : C a l l N o d e   c   |             c . g e t T a r g e t ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " S e t C o o k i e " )   a n d   c . g e t A r g u m e n t ( 1 )   =   s i n k         ) s e l e c t   s i n k p r i v a t e   c l a s s   S i n k   e x t e n d s   D a t a F l o w : : N o d e   {     S i n k ( )   {         e x i s t s ( D a t a F l o w : : C a l l N o d e   c   |             c . g e t T a r g e t ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " S e t C o o k i e " )   a n d   c . g e t A r g u m e n t ( 1 )   =   t h i s         )     } } i m p o r t   g o p r i v a t e   c l a s s   S i n k   e x t e n d s   D a t a F l o w : : N o d e   {     S i n k ( )   {         e x i s t s ( D a t a F l o w : : C a l l N o d e   c   |             c . g e t T a r g e t ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " S e t C o o k i e " )   a n d   c . g e t A r g u m e n t ( 1 )   =   t h i s         )     } } f r o m   S i n k   s s e l e c t   s
c o d e q l - g o i m p o r t   g o f r o m   S t r u c t L i t   s o u r c e s e l e c t   s o u r c e
, h a s Q u a l i f i e d N a m e C o d e q l - g o g e t P a c k a g e g e t N a m e s o u r c e i m p o r t   g o f r o m   S t r u c t L i t   s o u r c e / /   w h e r e   s o u r c e . g e t T y p e ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " ) s e l e c t   s o u r c e . g e t T y p e ( ) . g e t P a c k a g e ( ) ,   s o u r c e . g e t T y p e ( ) . g e t N a m e ( ) i m p o r t   g o f r o m   S t r u c t L i t   s o u r c e w h e r e   s o u r c e . g e t T y p e ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " ) s e l e c t   s o u r c e
D a t a F l o w : : N o d e T a i n t C o n f i g S o u r c e S i n k T a i n t C o n f i g S o u r c e S i n k p r i v a t e   c l a s s   S o u r c e   e x t e n d s   D a t a F l o w : : N o d e   {     S o u r c e ( )   {         e x i s t s ( S t r u c t L i t   s   |   s . g e t T y p e ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " )   a n d   t h i s . a s E x p r ( )   =   s )     } } i m p o r t   g o p r i v a t e   c l a s s   S o u r c e   e x t e n d s   D a t a F l o w : : N o d e   {     S o u r c e ( )   {         e x i s t s ( S t r u c t L i t   s   |   s . g e t T y p e ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " )   a n d   t h i s . a s E x p r ( )   =   s )     } } p r i v a t e   c l a s s   S i n k   e x t e n d s   D a t a F l o w : : N o d e   {     S i n k ( )   {         e x i s t s ( D a t a F l o w : : C a l l N o d e   c   |             c . g e t T a r g e t ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " S e t C o o k i e " )   a n d   c . g e t A r g u m e n t ( 1 )   =   t h i s         )     } } c l a s s   C o n f i g u r a t i o n   e x t e n d s   T a i n t T r a c k i n g : : C o n f i g u r a t i o n   {     C o n f i g u r a t i o n ( )   {   t h i s   =   " H t t p O n l y "   }     o v e r r i d e   p r e d i c a t e   i s S o u r c e ( D a t a F l o w : : N o d e   s o u r c e )   {   s o u r c e   i n s t a n c e o f   S o u r c e   }     o v e r r i d e   p r e d i c a t e   i s S i n k ( D a t a F l o w : : N o d e   s i n k )   {   s i n k   i n s t a n c e o f   S i n k   } }
h t t p o n l y = t r u e H t t p O n l y t r u e   C o d e Q L     T a i n t T r a c k i n g : : i s S a n i t i z e r H t t p O n l y i s S a n i t i z e r f r o m   C o n f i g u r a t i o n   c f g ,   D a t a F l o w : : P a t h N o d e   s o u r c e ,   D a t a F l o w : : P a t h N o d e   s i n k w h e r e   c f g . h a s F l o w P a t h ( s o u r c e ,   s i n k ) s e l e c t   s o u r c e ,   s i n k o v e r r i d e   p r e d i c a t e   i s S a n i t i z e r ( D a t a F l o w : : N o d e   n o d e )   {         e x i s t s ( W r i t e   w ,   F i e l d   f ,   D a t a F l o w : : N o d e   r h s   |             f . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " ,   " H t t p O n l y " )   a n d             w . w r i t e s F i e l d ( n o d e ,   f ,   r h s )   a n d             r h s . g e t B o o l V a l u e ( )   =   t r u e         )     } o v e r r i d e   p r e d i c a t e   i s S a n i t i z e r ( D a t a F l o w : : N o d e   n o d e )   {         e x i s t s ( W r i t e   w ,   F i e l d   f ,   D a t a F l o w : : N o d e   n ,   D a t a F l o w : : N o d e   r h s   |             f . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " ,   " H t t p O n l y " )   a n d             w . w r i t e s F i e l d ( n ,   f ,   r h s )   a n d             r h s . g e t B o o l V a l u e ( )   =   t r u e   a n d             n o d e   =   n . g e t A P r e d e c e s s o r * ( ) n         )
n o d e n 0 n o d e n 仿     } n o d e = n . g e t A P r e d e c e s s o r * ( ) / * *   *   @ n a m e   C o o k i e h t t p o n l y   *   @ d e s c r i p t i o n   C o o k i e s H T T P O n l y 使 c o o k i e j s H T T P   *   @ k i n d   p a t h - p r o b l e m   *   @ p r o b l e m . s e v e r i t y   e r r o r   *   @ p r e c i s i o n   l o w   *   @ i d   g o / C o o k i e - n o t - s e t - h t t p o n l y   *   @ t a g s   s e c u r i t y   * / i m p o r t   g o i m p o r t   D a t a F l o w : : P a t h G r a p h p r i v a t e   c l a s s   S o u r c e   e x t e n d s   D a t a F l o w : : N o d e   {     S o u r c e ( )   {         e x i s t s ( S t r u c t L i t   s   |   s . g e t T y p e ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " )   a n d   t h i s . a s E x p r ( )   =   s )     } } p r i v a t e   c l a s s   S i n k   e x t e n d s   D a t a F l o w : : N o d e   {     S i n k ( )   {         e x i s t s ( D a t a F l o w : : C a l l N o d e   c   |             c . g e t T a r g e t ( ) . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " S e t C o o k i e " )   a n d   c . g e t A r g u m e n t ( 1 )   =   t h i s         )     } } c l a s s   C o n f i g u r a t i o n   e x t e n d s   T a i n t T r a c k i n g : : C o n f i g u r a t i o n   {     C o n f i g u r a t i o n ( )   {   t h i s   =   " H t t p O n l y "   }     o v e r r i d e   p r e d i c a t e   i s S o u r c e ( D a t a F l o w : : N o d e   s o u r c e )   {   s o u r c e   i n s t a n c e o f   S o u r c e   }     o v e r r i d e   p r e d i c a t e   i s S i n k ( D a t a F l o w : : N o d e   s i n k )   {   s i n k   i n s t a n c e o f   S i n k   }     o v e r r i d e   p r e d i c a t e   i s S a n i t i z e r ( D a t a F l o w : : N o d e   n o d e )   {         e x i s t s ( W r i t e   w ,   F i e l d   f ,   D a t a F l o w : : N o d e   n ,   D a t a F l o w : : N o d e   r h s   |             f . h a s Q u a l i f i e d N a m e ( " n e t / h t t p " ,   " C o o k i e " ,   " H t t p O n l y " )   a n d             w . w r i t e s F i e l d ( n ,   f ,   r h s )   a n d             r h s . g e t B o o l V a l u e ( )   =   t r u e   a n d             n o d e   =   n . g e t A P r e d e c e s s o r * ( )         )     } }
f r o m   C o n f i g u r a t i o n   c f g ,   D a t a F l o w : : P a t h N o d e   s o u r c e ,   D a t a F l o w : : P a t h N o d e   s i n k w h e r e   c f g . h a s F l o w P a t h ( s o u r c e ,   s i n k ) s e l e c t   s i n k . g e t N o d e ( ) ,   s o u r c e ,   s i n k ,   " C o o k i e - n o t - s e t - h t t p o n l y   i n   $ @ . " ,   s o u r c e . g e t N o d e ( ) ,   " h e r e "

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

本版积分规则