目前较为流行web入侵方式都是通过寻找程序的漏洞先得到网站的webshell然后再根据服务器的配置来找到相应的可以利用的方法进行提权,进而拿下服务器权限的。所以配合服务器来设置防止webshell是有效的方法。
我们大多数站长都会把从网上下载的网站程序的默认数据库路径进行更改。当然也有一部分管理员非常粗心,拿到程序直接在自己的服务器上进行安装,甚至连说明文件都不进行删除,更不要说更改数据库路径了。这样黑客就可以通过直接从源码站点下载网站源程序,然后在本地测试找到默认的数据库,再通过下载数据库读取里面的用户信息和资料(一般是经过MD5加密的)找到管理入口进行登陆获得webshell。还有一种情况是由于程序出错暴出了网站数据库的路径,那么怎么防止这种情况的发生呢?我们可以添加mdb的扩展映射。如上图所示:
打开IIS添加一个MDB的映射,让mdb解析成其他下载不了的文件:“IIS属性”—“主目录”—“配置”—“映射”—“应用程序扩展”里面添加.mdb文件应用解析,至于用于解析它的文件大家可以自己进行选择,只要访问数据库文件出现无法访问就可以了。
这样做的好处是:1只是要是mdb后缀格式的数据库文件就肯定下载不了;2对服务器上所有的mdb文件都起作用,对于虚拟主机管理员很有用处。
二、防止上传
针对以上的配置如果使用的是MSSQL的数据库,只要存在注入点,依然可以通过使用注入工具进行数据库的猜解。倘若上传文件根本没有身份验证的话,我们可以直接上传一个asp的木马就得到了服务器的webshell。
对付上传,我们可以总结为:可以上传的目录不给执行权限,可以执行的目录不给上传权限。Web程序是通过IIS用户运行的,我们只要给IIS用户一个特定的上传目录有写入权限,然后又把这个目录的脚本执行权限去掉,就可以防止入侵者通过上传获得webshell了。配置方法:首先在IIS的web目录中,打开权限选项卡、只给IIS用户读取和列出目录权限,然后进入上传文件保存和存放数据库的目录,给IIS用户加上写入权限,最后在这两个目录的“属性”—“执行权限”选项把“纯脚本”改为“无”即可。见下图
最后提醒一点,在你设置以上权限的时候,一定要注意到设置好父目录的继承。避免所做的设置白费。
但是如果是由于程序出错自己暴出了web目录,就没有办法了。所以我们还要让帐户的权限更低,无法完成备份操作。具体操作如下:在这个帐户的属性—数据库访问选项里只需要对选中对应的数据库并赋予其DBO权限,对于其他数据库不要操作。接着还要到该数据库—属性—权限把该用户的备份和备份日志的权限去掉,这样入侵者就不能通过差异备份获得webshell了。