1.概念
安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。
注意:安全性测试并不是最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。
2. web安全性测试
一个完整的web安全性测试可以从部署与基础结构、输入/输出验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等几方面入手。
3.一些安全性测试中运用到得专业术语
易受攻击性:
这是网络应用程序的一个软肋。造成这个“软肋”的原因,可能是程序中的bug,一种注入(SQL/脚本代码)活着已存在的病毒。
URL处理:
一些网络应用程序通过URL在客户端(浏览器)和服务器之间进行额外信息的传递。有时在URL中改变信息可能会导致服务器不可预期的结果。
XSS(跨站式脚本攻击):
当一个用户通过web应用接口插入HTML代码,而这种嵌入其中的代码对于其他用户是可见的,被称作XSS。
XSS是一种存在Web应用中,允许黑客以最终用户的身份向Web应用注入恶意脚本,以愚弄其他用户或获取其他用户重要数据和隐私信息为目的的一种攻击形式。XSS可使用的技术有JavaScript、VBScript、 ActiveX、 或 Flash, 且通常通过页面表单提交注入到web应用中并最终在用户的浏览器客户端执行。
策略:过滤、检测、限制等等策略,一定一定要在Web Server那一端去完成,而不是使用客户端的Javascript或者VBScript...去做简单的检查。因为真正的攻击者不会仅仅依赖于浏览器去做攻击,而更多的往往是借助于第三方工具,根本就可以绕过你精心设计制作的客户端Javascript进行过滤、检测或限制手段的。
SQL注入:
是指通过网络应用的用户接口插入SQL指令到服务器所执行的查询中去的过程。
远程命令执行(code execution) :
远程命令执行漏洞一般发生在Web系统允许用户通过Web应用接口访问与管理Web服务器且没有经过严格的输入验证与过滤的情况下的一种Web应用安全漏洞。
策略:1、严格限制运行Web服务的用户权限。就是说你的Web应用可以访问你的服务器系统的用户权限。一般情况一下,我们应该以白名单的形式介定Web应用可以访问服务器系统的权限。这样控制可以从系统级达到安全防范的效果。
2、严格执行用户输入的合法性检查。注意这里的输入不一定是你通过表单从键盘输入,往往是Web应用已经内定了某一些操作供您选择,而此时你可以通过Http抓包的方式获取Http请求信息包经改装后重新发送。
目录遍历(Directory traversal):
love.ah163.net上有网络硬盘服务,当注册用户登录并开通网络硬盘服务后,即可进入自己的硬盘管理界面,我们来看看它是如何进入某一个目录的,以下是进入某一目录的URL:http://love.ah163.net/Personal_Spaces_List.php?dir=MyFolder
那现在我把这个URL改装一下:
http://love.ah163.net/Personal_Spaces_List.php?dir=../../../../../../../../../../../../../usr/local/apache/conf/
在浏览器里运行它,会是什么结果呢?结果是:/usr/local/apache/conf/里的所有文件都老老实实的列出来了。