小心注入式入侵预防中的短板
2016-11-26
引言:为了预防注入式入侵攻击,很多的网站管理员都会采取一些“防注”措施来阻止入侵者,但事实证明这并非是万全之策,而且恰恰是自认为比较安全的防注入措施有时反倒成为入侵预防中的“短板”!
作为对网站数据库进行入侵攻击的最惯用手段之一,SQL“注入”式入侵攻击因网站模板程序员编写代码时未对用户输入数据的合法性进行严格全面的判断而导致安全隐患的存在。为了预防注入式入侵攻击,很多的网站管理员都会采取一些“防注”措施来阻止入侵者,比如将 “and”、“delete”、“;”等敏感注入字符全部列入非法访问的“黑名单”,过滤入侵者所提交的恶意查询字符串;或是通过代码转换的方式将ASP/PHP动态网页转换成“伪静态”的.htm网页,打消入侵者窥探猜解的念头(静态网页没有“注入”漏洞之说)。但这并非是万全之策,而且恰恰是这两种自认为较安全的防注入措施有时反倒成为入侵预防中的“短板”!
“短板”一:被“注入中转”注入的“防注”
图1 提示检测失败
目前入侵者在检测网站注入点时所使用的工具比较多,其工作流程基本上类似。比如先是将目标网站的某条访问记录的URL进行注入点的常规检测,由于网站管理员事先做过数据库查询命令过滤的“防注”处理,因此在开始检测之后很快就会有提示:“检测失败,该URL不可以进行注入!”(如图1)。
不过,入侵者为了进一步确认目标网站是否真的不存在入侵的注入点,而不是仅仅依靠工具的机械探测,他可能会在浏览器地址栏该URL记录最后添加一个英文字符,回车访问后发现有“传参错误!参数的值中包含非法字符串!”的提示。这些,都是网站模板中“防注”程序代码的功劳。
1.借“注入中转生成器”生成有注入点的ASP文件
入侵者用注入中转类工具生成ASP,这样,就得到了一个“.asp”的文件。
2.搭建好本地ASP运行环境
为给接下来二次使用“旁注Web综合检测程序”注入检测搭好“戏台”——ASP运行环境,入侵者使用工具设置后可在本地计算机浏览器中“半正常”地访问目标网站,说明生成的ASP文件是有效的。
3.二次使用注入工具进行“非常规”注入点检测
再次打开“旁注Web综合检测程序”,在“注入点”处粘贴刚才可以“半正常”访问的页面链接,接着,开始检测,结果很快就出现与第一次检测完全不同的提示:“恭喜,该URL可以注入!数据库类型:Access数据库!”。入侵者会探测出网站数据库及列名,甚至是账号和密码。可见,“防注”并没有防住“注入”的脚步。
“短板”二:被搜索“出卖”的“伪静态”
在浏览器中访问网站,随机打开几条链接时,浏览器地址栏中所显示的URL都是.htm静态文件,难道这就表示无法被“注入”式入侵所攻击?入侵者有可能尝试使用搜索引擎来查找是否在存在动态链接。
1.工具未查出有注入点但检测到后台登录地址
通过注入工具在“注入连接”后输入URL,接着检测出现提示:“这个连接不能SQL注入!请试别的连接!”。未检测出网站的注入漏洞,但尝试扫描网站的后台登录地址,IE浏览器就可以打开网站链接,就可能进入网站后台管理登录入口。
2.被模板默认的管理员账号和密码“出卖”
由于之前使用“注入检测”扫描了不存在注入漏洞,入侵者就无法探测到管理账号和密码,也就无法进行后台登录。但若探测到网站后台管理页面,考虑到很多网站模板系统的默认管理账号和密码都是“admin”之类的简单组合,这就给自己的网站留下了极大的安全隐患!
“短板”修补措施:做好三个“化”
其实,以上两处入侵预防“短板”事例只是网络安全防护漏洞中的冰山一角。在预防“注入”式入侵的防护中,网管员除了要做好最常规的防注入措施外,如网站核心数据库路径及名称的隐藏与防下载、各种危险查询命令字符串的过滤以及一些恶意高频访问IP地址自动添加进黑名单等等,还有些比较简单但非常有效的做法:
1.管理员账号的数目要最少化
大多数网站为了管理的方便而设置了多个管理员账号,而且权限都比较高,这其实是一种比较危险的做法——只要其中一个管理账号被猜解就可能导致整个网站的沦陷。即使真有设置多个管理账号的需求也应该分出级别,设置好不同的权限,最起码让拥有最高权限的管理账号是惟一的,尽可能减少被注入猜解的几率。
2.管理登录密码的强度要最大化
虽然密码的强度是个老生常谈的问题,但仍有很多的网站管理员设置使用模板默认的密码或是一些简单的密码组合,一旦其对应的MD5密码被注入猜解的话,接下来的破解将会变得非常简单。假如管理登录密码足够强大的话,即使是被入侵者注入猜解出MD5密码也不能被破解,网站的安全性也可得到一定的保障。建议将自己所设置的密码进行MD5加密,然后进行破解测试,如果显示“无法破解”的话就是比较理想的密码。
3.后台管理登录地址的最隐蔽化
如果不幸被入侵者注入猜解,但只要后台管理登录地址隐蔽得足够好,那也算是比较安全的。因此一定不要使用模板默认的后台路径,更不要在网站首页设置后台管理登录的链接,最好是自定义一个不易被猜解出来的路径名称,以提高其隐蔽性。