系统设置搞定脚本安全
用户权限设置
~,`4O*D9Y2Cx0IXPUB技术博客-Bv$d%xP3J/\_外部客户端在访问本机网站时是以IUSR_SERVERNAME用户(以下简称为IUSR用户)的权限执行所有操作的,所以为了保证系统的安全,我们必须对该用户的权限作一些限制。
slQ5il"i0IXPUB技术博客R.bk/Ue6l/A6_d 小知识:IXPUB技术博客[iJ ^m[+m
IUSR_ServerName是WEB访问者使用的系统默认账号,系统表示为Internet访问用户。当WEB服务器不需用户登录就能访问数据库时,它实际是使用IUSR_ServerName用户身份来访问数据库。IUSR_ServerName是在安装IIS时创建的用户。默认情况下,“启用Windows账户同步”是选中的。
首先,要删除Everyone对系统所有的卷的访问权限。由于Everyone是各用户(组)权限设置的父对象,所以在删除Everyone权限之前,要取消子对象对父对象权限的继承。IXPUB技术博客 W Wouib8t:M
4U3V~'~{`(D0 方法是在所设置目录的“属性”对话框的“安全”选项卡中点击“高级”按钮,取消“允许父对象将其权限传播到该对象及其子对象”的选定(如图1所示)。这时系统会提示选择是否将父对象的权限复制给子对象,笔者建议大家选择复制,这样的好处就是以后不必重新设置管理员用户的权限。IXPUB技术博客/sq%GRB'o6B5?;i
IXPUB技术博客 mx? M&V;l
图1
5{ u(?ji4Y8E`n0IXPUB技术博客*b)}#`l LG接着就是对IUSR用户作设置。在网站数据库(ACCESS)、上传文件的所在目录,我们须赋予其“列文件目录”、“读取”和“写入”权限(如图2所示);而在其它无需通过IIS进行写操作的目录,我们只须给予其“列文件目录”和“读取”权限即可(如图3所示)。IXPUB技术博客:r"S*TH_v"s

f(RrLVu
?Qk0IXPUB技术博客Pkh6ZG;rnJ
图2IXPUB技术博客,EQ R1k-{ HpM

d(s0C5hq5N0IXPUB技术博客DU}L%m-iB6of:q8F
图3
{'@;j"r~1uJ7_K"S0IXPUB技术博客'F?`#`n到此,对用户权限的设置结束了。
H6qZhlR0;S!Vw%MP ^W0 脚本执行设置
-f/g.IjNS0oO2t$I+NGa+Y,zH0 这个就简单多了。网站目录大体分两类:一类保存着我们的脚本文件,另一类保存着非脚本文件,例如网站数据库、上传的图片等等。因此,具体的设置也就有两种,前一类允许执行脚本文件,后一类禁止执行其中的脚本文件。
m q)iYlKE;Y;U0IXPUB技术博客;Bw*n0e%}E6G设置方法:在IIS服务管理器中右键点击所需设置目录,在“目录”选项卡里,对“执行权限”进行设置,前一类设置成“纯脚本”,后一类设置成“无”即可,如图4所示。IXPUB技术博客 l8e_'rC#E ]J

T.x8f,wmtZOWX0IXPUB技术博客0f6L!ms/O&gz5_YN L
图4IXPUB技术博客?/P*i\ r%h
IXPUB技术博客H3[&k:h5m;e0Yh$j数据库防下载设置(针对ACCESS数据库)
W\H4fz9H"M5gr0IXPUB技术博客]"[3[,yux 上面的设置已禁止数据库文件中的ASP脚本的执行,大家也许会想:“那以前用ASP语句出错的方法防止数据库被下载不就不行了么?”别急,我们这次用筛选器来进行数据库的防下载保护。IXPUB技术博客,sy0T M['Kg
具体设置方法如下:
'a;V&py4u%B\7X5F0 在IIS服务管理器中,进入被设置网站的属性框,点击“主目录”、“配置”、“添加”(上面那个),扩展名自然就输入数据库文件的扩展名了,上面的可执行文件项就随便添一个EXE文件就行了,点“确定”就完成了设置(如图5所示)。读者可以试一下,将会出现这种结果:“无法找到该页”(如图6所示)。IXPUB技术博客{AB0um(t v$J.k"\.I
IXPUB技术博客+I cvU1[vM
图5
*Xc3l z#A7T;M0
1WWj2jR2zY2^Oi0
图6
v*A%lD:t)cFe \0IXPUB技术博客BP NAvM:VMSSQL数据库设置IXPUB技术博客2Q)Ja q-A$zm
IXPUB技术博客/B3zDLl@)F由于MSSQL数据库服务是以SYSTEM权限运行的,所以通过MSSQL的注入攻击往往能较容易的取得ADMIN权限,因此对它的设置也是脚本安全防护中的重中之重。IXPUB技术博客)d%}(Z5W*T0w3i1d.BR
IXPUB技术博客0g4V.e?9{Y首先自然是用户设置。大家都知道“SA”是一个拥有极高权限的用户,所以脚本系统在连接SQL数据库的时候一定不要使用“SA”,我们应该建立一个“database creator”级的新用户,只赋予其对网站数据库的DB_OWNER权限,用它来连接数据库可以很好的保证系统的安全。IXPUB技术博客1vAt#|0E+RA e
IXPUB技术博客i+T8lx:m2p^(M{~小知识:IXPUB技术博客+ln(m8b6rN2H1a4`c6KL
SQLServer的用户sa是个等同Adminstrators权限的角色,拿到了sa权限,几乎肯定可以拿到主机的 Administrator了。SQL Server的默认用户sa的权限非常巨大,有种观点是sa的权限要大于administrator的权限,也就是说没有限制的sa用户可以做Windows系统管理员所做的任何事。
接着就是对SQL扩展存储过程进行配置了,大名鼎鼎的xp_cmdshell和xp_dirtree都是其中的成员,还有“臭要饭的!”大哥的GETWEBSHELL中用到的Sp_makewebtask等等。在所有扩展存储过程中,有一部分对文件、目录和注册表进行操作的几乎是没有任何一个管理员会用到,黑客们倒是用倍儿熟。当然,对这些百害无一利的扩展存储只有一个字可说,就是“删”。IXPUB技术博客@C!GT/|{h\{5[
/T h|4rH7a0 删除方法就是在SQL查询分析器中执行“exec master..sp_dropextendedproc ‘被删除的扩展存储名’”(无双引号)即可(如图7所示)。IXPUB技术博客j~PK j!?RAv
IXPUB技术博客.x1@cBQnBZ
IXPUB技术博客0Y]}IWb?A;V&T
图7
k:[L4o [-e)e)J+q$?0C)jb(v'EU'l2u0 需要删除的存储过程列表如下:
3ST#Z|9d^o0 Sp_makewebtask
-Sd,XNG:~Z0 xp_cmdshell
-D ojc~Av?a0 xp_dirtreeIXPUB技术博客V&h Ca\%B
xp_fileexist