三、笔者的旁门左道:
在笔者的测试过程中就遇到了ASP和ASA文件也会被下载的问题,所以经过研究发现了以下的方法。
如果在给数据库的文件命名的时候,将数据库文件命名为“#admin.asa”则可以完全避免用IE下载,但是如果破坏者猜测到了数据库的路径,用FlashGet还是可以成功地下载下来,然后把下载后的文件改名为“admin.mdb”,则网站秘密就将暴露。所以我们需要找到一种FlashGet无法下载的方法,但是如何才能让他无法下载呢?大概是因为以前受到unicode漏洞攻击的缘故,网站在处理包含unicode码的链接的时候将会不予处理。所以我们可以利用unicode编码(比如可以利用“%3C ”代替“<”等),来达到我们的目的。而FlashGet在处理包含unicode码的链接的时候却“自作聪明”地把unicode编码做了对应的处理,比如自动把“%29”这一段unicode编码形式的字符转化成了“(”,所以你向FlashGet提交一个 http://127.0.0.1/xweb/data/%29xadminsxx.mdb的下载链接,它却解释成了http://127.0.0.1/xweb/data/(xadminsxx.mdb,看看我们上面的网址的地方和下面的重命名的地方是不同的,FlashGet把“%29xadminsxx.mdb”解释为了“(xadminsxx.mdb”,当我们单击“确定”按钮进行下载的时候,它就去寻找一个名为“(xadminsxx.mdb”的文件。也就是说FlashGet给我们引入了歧途,它当然找不到,所以提示失败了。
不过如果提示下载失败,攻击者肯定要想采取其他的攻击方法。由此我们可以采用另一个防范的方法,既然FlashGet去找那个名为“(xadminsxx.mdb”的文件了,我们可以给它准备一个,我们给它做一个仿真的数据库名为“(xadminsxx.mdb”,这样当入侵者想下载文件的时候的的确确下载了一个数据库回去,只不过这个数据库文件是虚假的或者是空的,在他们暗自窃喜的时候,实际上最终的胜利是属于我们的。
总结:
通过本次旁门左道保护MDB数据库文件方法的介绍,我们可以明确两点安全措施,一是迷惑法,也就是将黑客想得到的东西进行改变,例如改变MDB文件的文件名或者扩展名;二是替代法,也就是将黑客想得到的东西隐藏,用一个没有实际意义的东西替代,这样即使黑客成功入侵,拿到的也是一个虚假的信息,他们还会以为入侵成功而停止接下来的攻击。
