由于经常要安检公司维护的网站,而且大部分的网站都是很老旧用ASP做的网站,工作繁多、琐碎,安全问题一直没法彻底根治。无意中看到这款微软的工具,非常符合我的日常工作内容,但是不足之处是:即使使用它,工作量依然巨大繁琐。因此借助Microsoft Source Code Analyzer工具,做了一个程序自动化扫描ASP网站,找出网站中的SQL漏洞。
工欲善其事,必先利其器。如果要正确的执行所有的扫描,对Microsoft Source Code Analyzer 工具执行时返回的错误信息要了然于胸,保证测试执行的正确性,这样才能保证测试结果的准确性。下面列几个常见的工具执行时的提示信息及解决方法:
1 ** msscasi_asp failure: Include directive must specify either a 'file' attribute or a 'virtual' attribute
关键字:failure,表示分析失败,这个文件没有执行分析,不解决的话影响测试结果。
失败根本原因是:在当前扫描的ASP文件中,在文件最后</html>下面使用了“<!--#include file="a.aspx" -->”包含,如果在当前ASP文件的包含文件中也错误的使用“<!--#include file="a.aspx" -->那么也会导致扫描错误,返回上述错误信息。当时一直以为是包含文件的方法问题,走了很多弯路,终于顺利解决。
解决办法:
1 找到文件,并且将包含文件的代码粘贴到<html></html>标签之间
2 删掉包含代码,将包含文件的所有代码粘贴在当前位置(具体看代码是否影响扫描)
3 在包含文件的代码的最后回车,添加一行。<!--#include file="../"-->扫描通过
2 ** msscasi_asp failure: cannot load file "F:/web/kankan/index.asp"
关键字:failure 分析失败。
失败原因: 文件路径不正确,文件完整物理路径中不能使用空格,否则扫描失败
解决方法: 替换所有文件夹名及asp文件的空格。当然前提是要备份好程序。
3 ** msscasi_asp warning: Virtual include include/Title_name.asp was not found in any of the specified include paths.
关键字:warning,警告,扫描完成,但结果不一定完全准确。
警告原因: 在执行扫描时, /IncludePaths=;; 中包含文件的路径不全或者不正确。
解决办法: 依据提示,找到代码,执行时添加相应的目录。
4 ** msscasi_asp warning: Error parsing tag attributes: Expected whitespace Ignoring attributes and attempting to continue.
关键字:warning,警告,扫描完成但不一定完全正确。
警告原因: 主要是包含文件产生的,如果一个ASP文件包含了<!-- include file="include/menu.asp" --!>,如果menu.asp文件只有HTML代码没有完整的</html>结尾或者最后没有空行,那么扫描工具就会提示上诉警告。
解决办法: 在menu.asp页面中的最后敲回车,添加一行空白行。问题顺利解决