安全测试的考虑点及测试方法

安全测试的考虑点及测试方法

软件安全性测试主要包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

用户认证安全的测试要考虑问题:

1.明确区分系统中不同用户权限

2.系统中会不会出现用户冲突

3.系统会不会因用户的权限的改变造成混乱

4.用户登陆密码是否是可见、可复制

5.是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)

6.用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统

系统网络安全的测试要考虑问题:

1.测试采取的防护措施是否正确装配好,有关系统的补丁是否打上

2.模拟非授权攻击,看防护系统是否坚固

3.采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI系列和 IPhacker IP )

4.采用各种木马检查工具检查系统木马情况

5.采用各种防外挂工具检查系统各组程序的客外挂漏洞

数据库安全考虑问题:

1.系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)

2.系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)

3.系统数据可管理性

4.系统数据的独立性

5.系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

浏览器安全

同源策略:不同源的“document”或脚本,不能读取或者设置当前的“document”

同源定义:host(域名,或者IP),port(端口号),protocol(协议)三者一致才属于同源。

要注意的是,同源策略只是一种策略,而非实现。这个策略被用于一些特定的点来保护web的安全。

★javascript:alert(/xss/)

★javascript:alert(/xss/)

★=’>

★1.jpg" οnmοuseοver="alert(‘xss’)

★">

★http://xxx’;alert(‘xss’);var/ a='a

★’”>xss&<

★"οnmοuseοver=alert(‘hello’);"

★&{alert(‘hello’);}

★>"’>

★>%22%27>

★>"’>

%26%23x70;%26%23x74;%26%23x3a;alert(%26quot;XSS%26quot;)>

★AK%22%20style%3D%22background:url(javascript:alert(%27XSS%27))%22%20OS%22

★%22%2Balert(%27XSS%27)%2B%22

★a?

&:

var from = ‘$!rundata.Parameters.getString(’from’)’;

var from = ”;hackerFunction(document.cookie);”;

上面这些同样适用于GET请求

经过以上测试,如果发现输入框代码溢出,则说明可能存在XSS漏洞,说明要进行过滤.

关于越权操作的问题

例如A用户的个人资料ID为1 B用户个人资料ID为2,我通过登陆B用户,把ID修改为1 就可以查看到用户A的个人资料,这就是越权。

测试方法:通过查看URL的get参数对那些类似明显的顺序数字 进行修改,看是否能越权访问。

关于登陆安全的问题

除了SQL注入,还有找回密码功能会出现安全问题

邮箱找回密码测试方法:

先从邮箱参数修改开始,看填入用户名和自己修改的邮箱账号,看是否能收到邮箱,收到后是否能修改。

如果不能修改邮箱参数那么,我们就让它邮箱找回,接着点击邮箱内修改密码的链接,看链接的邮箱参数是否可以修改,用户名是否可以修改,加密的urlcode 是否可以逆向解密。

如果是手机找回密码功能:则测试手机收到的验证码是否是纯数字、纯字母的,如果是请修改为字母与数字的组合。

关于用开源程序的问题

关注网上你所用的开源程序的官网更新情况和安全事件。

关于上传:

1.上传文件是否有格式限制,是否可以上传exe文件;

2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;

3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;

4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。

5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。

6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。

7.对于文件名中带有中文字符,特殊字符等的文件上传。

下载:

避免输入:…\web.

修改命名后缀。

输入验证

客户端验证 服务器端验证(禁用脚本调试,禁用Cookies)

1.输入很大的数(如4,294,967,269),输入很小的数(负数)

2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应

3.输入特殊字符,如:~!@#$%^&*()_+<>:”{}|

4.输入中英文空格,输入字符串中间含空格,输入首尾空格

5.输入特殊字符串NULL,null,0x0d 0x0a

6.输入正常字符串

7.输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值; 要求输入字母则检查输入数字

8.输入html和javascript代码

9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化

例如:

1.输入”gfhd,看是否出错;

2.输入,看是否出现文本框;

3.输入看是否出现提示。

4.输入”>看是否出现提示。

5.输入 ”>

页面权限泄露

测试在不登陆的情况下是否可以访问到后台的页面,这个只要把后台的目录的URL全部浏览一遍即可

关于任意文件下载

查看上传的图片文件是否可以删除,如果可以删除,查看删除的URL里面的参数是否可以修改。

转自2018年11月21日 17:16:35 天之影
https://blog.csdn.net/qq_34897661/article/details/84326398

你可能感兴趣的:(安全测试的考虑点及测试方法)