ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:32.97KB ,
资源ID:12087599      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12087599.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(web安全测试要点总结.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

web安全测试要点总结.docx

1、web安全测试要点总结一、Web 应用安全威胁分为如下六类:Authentication(验证) 用来确认某用户、服务或是应用身份的攻击手段。 Authorization(授权) 用来决定是否某用户、服务或是应用具有执行请求动作必要权限的攻击手段。 Client-Side Attacks(客户侧攻击)用来扰乱或是探测 Web 站点用户的攻击手段。 Command Execution(命令执行) 在 Web 站点上执行远程命令的攻击手段。 Information Disclosure(信息暴露) 用来获取 Web 站点具体系统信息的攻击手段。 Logical Attacks(逻辑性攻击) 用来扰

2、乱或是探测 Web 应用逻辑流程的攻击手段二、常见针对 Web 应用攻击的十大手段应用威胁负面影响后果跨网站脚本攻击标识盗窃,敏感数据丢失黑客可以模拟合法用户,控制其帐户。注入攻击通过构造查询对数据库、LDAP 和其他系统进行非法查询。黑客可以访问后端数据库信息,修改、盗窃。恶意文件执行在服务器上执行 Shell 命令 Execute,获取控制权。被修改的站点将所有交易传送给黑客不安全对象引用黑客访问敏感文件和资源Web 应用返回敏感文件内容伪造跨站点请求黑客调用 Blind 动作,模拟合法用户黑客发起 Blind 请求,要求进行转帐信息泻露和不正确的错误处理黑客得到详细系统信息恶意的系统检测

3、可能有助于更深入的攻击被破坏的认证和 Session 管理Session token 没有被很好的保护在用户推出系统后,黑客能够盗窃 session。不安全的木马存储过于简单的加密技术导致黑客破解编密码隐秘信息被黑客解密盗窃不安全的通讯敏感信息在不安全通道中以非加密方式传送黑客可以通过嗅探器嗅探敏感信息,模拟合法用户。URL 访问限制失效黑客可以访问非授权的资源连接黑客可以强行访问一些登陆网页、历史网页。三、Rational AppScan功能简介 Rational AppScan 同时提供了很多高级功能,帮助客户对复杂应用进行检测。支持的扫描配置有:Starting URL:起始 URL,制

4、定被测应用的起始地址 Custom Error Pages:制定错误网页提高测试效率 Session IDs:管理测试过程中的 session Automatic Server Detection:自动检测应用所在的应用服务器、web server、操作系统 Exclusion and Inclusion:制定哪些 Web 被扫描或者被排除,哪些文件类型不被扫描 Scan Limits:其他高级扫描限制,例如扫描次数限制等 Advanced:扫描的方式,是宽度扫描还是深度扫描 Communication Settings:对扫描中的延时、线程数量进行配置 Proxy Settings:代理设置

5、vLogin/logout:对被测应用的登陆进行设置,可以采用录制回放的方式、也可以使用自动登陆的方式 configure a Test Policy: 配置测试测量,即想测试哪些漏洞。 四、Web安全体系测试一个完整的Web安全体系测试可以从部署与基础结构,输入验证,身份验证,授权,配置管理,敏感数据,会话管理,加密,参数操作,异常管理,审核和日志记录等几个方面入手。数据加密:某些数据需要进行信息加密和过滤后才能进行数据传输,例如用户信用卡信 息、用户登陆密码信息等。此时需要进行相应的其他操作,如存储到数据库、解密发送要用户电子邮箱或者客户浏览器。目前的加密算法越来越多,越来越复杂,但一般数

6、据加密的过程时可逆的,也就是说能进行加密,同时需要能进行解密!注:对登陆帐户和密码进行加密,可在后台数据库查看是否进行了加密。登录: 一般的应用站点都会使用登录或者注册后使用的方式,因此,必须对用户名 和匹配的密码进行校验,以阻止非法用户登录。在进行登陆测试的时候,需要考虑输入的密码是否对大小写敏感、是否有长度和条件限制,最多可以尝试多少次登录,哪些页面或者文件需要登录后才能访问/下载等。超时限制:WEB应用系统需要有是否超时的限制,当用户长时间不作任何操作的时候, 需要重新登录才能使用其功能。SSL: 越来越多的站点使用SSL安全协议进行传送。SSL是Security Socket Laue

7、r(安全套接字协议层)的缩写,是由Netscape首先发表的网络数据安全传输协议。SSL是利用公开密钥/私有密钥的加密技术。(RSA),在位于HTTP层和TCP层之间,建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。进入一个SSL站点后,可以看到浏览器出现警告信息,然后地址栏的http变成https,在做SSL测试的时候,需要确认这些特点,以及是否有时间链接限制等一系列相关的安全保护。服务器脚本语言:脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录

8、。其他只允许访问邮件服务器,但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己。找出站点使用了哪些脚本语言,并研究该语言的缺陷。还要需要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。最好的办法是订阅一个讨论站点使用的脚本语言安全性的新闻组。 注:黑客利用脚本允许访问根目录的这个安全隐患特性攻击网站。这个网站包含了脚本代码(有允许访问根目录的特性)就可能有这个安全隐患。日志文件:在服务器上,要验证服务器的日志是否正常工作,例如CPU的占用率是否很高,是否有例外的进程占用,所有的事务处理是否被记录等。目录: WEB的目录安全是不容忽视的一个因素。如果WEB程序或WEB服务器的处理不

9、适当,通过简单的URL替换和推测,会将整个WEB目录完全暴露给用户,这样会造成很大的风险和安全性隐患。我们可以使用一定的解决方式,如在每个目录访问时有index.htm,或者严格设定WEB服务器的目录访问权限,将这种隐患降低到最小程度。 注:每个目录访问时有index.htm目的:通过首页中的登陆验证功能进行访问权限控制。五、web安全测试的checklist1. 不登录系统,直接输入登录后的页面的url是否可以访问 2. 不登录系统,直接输入下载文件的url是否可以下载,如输入http:/url/download?name=file是否可 以下载文件file3. 退出登录后按后退按钮能否访问

10、之前的页面4. ID/密码验证方式中能否使用简单密码。如密码标准为6位以上,字母和数字混合,不能包含ID,连续的字母或数字不能超过n位5. 重要信息(如密码,身份证号码,信用卡号等)在输入或查询时是否用明文显示;在浏览器地址栏里输入命令javascrpt:alert(doucument.cookie)时是否有重要信息;在html源码中能否看到重要信息6. 手动更改URL中的参数值能否访问没有权限访问的页面。如普通用户对应的url中的参数为l=e,高级用户对应的url中的参数为l=s,以普通用户的身份登录系统后将url中的参数e改为s来访问本没有权限访问的页面7. url里不可修改的参数是否可以

11、被修改, 浏览器缓存:认证和会话数据不应该作为GET的一部分来发送,应该使用POST8. 上传与服务器端语言(jsp、asp、php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行9. 注册用户时是否可以以-, or 1=1 -等做为用户名10. 传送给服务器的参数(如查询关键字、url中的参数等)中包含特殊字符(,and 1=1 -, and 1=0 -,or 1=0 -)时是否可以正常处理11. 执行新增操作时,在所有的输入框中输入脚本标签(alert())后能否保存12. 在url中输入下面的地址是否可以下载:http:/url/download.jsp?file=

12、C:windowssystem32driversetchosts,http:/url/download.jsp?file=/etc/passwd13. 是否对session的有效期进行处理14. 错误信息中是否含有sql语句、sql错误信息以及web服务器的绝对路径等15. ID/密码验证方式中,同一个账号在不同的机器上不能同时登录16. ID/密码验证方式中,连续数次输入错误密码后该账户是否被锁定17. 新增或修改重要信息(密码、身份证号码、信用卡号等)时是否有自动完成功能(在form标签中使用autocomplete=off来关闭自动完成功能18.Email Header Injectio

13、n(邮件标头注入) Email Header Injection:如果表单用于发送email,表单中可能包括“subject”输入项(邮件标题), 我们要验证subject中应能escape掉“n”标识。 因为“n”是新行,如果在subject中输入“helloncc:*”,可能会形成以下Subject: hellocc: * 如果允许用户使用这样的subject,那他可能会给利用这个缺陷通过我们的平台给其它用户发送垃圾邮件。19. Directory Traversal(目录遍历) (1)如何进行目录遍历测试? 目录遍历产生的原因是:程序中没有过滤用户输入的“./”和“./”之类的目录跳转符

14、,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。 测试方法:在URL中输入一定数量的“./”和“./”,验证系统是否ESCAPE掉了这些目录跳转符。 (2)如何预防目录遍历?限制Web应用在服务器上的运行 进行严格的输入验证,控制用户输入非法路径 20. exposed error messages(错误信息) (1)如何进行测试?首先找到一些错误页面,比如404,或500页面。 验证在调试未开通过的情况下,是否给出了友好的错误提示信息比如“你访问的页面不存在”等,而并非曝露一些程序代码。 (2)如何预防?测试人员在进行需求检查时,应该对出错信息进行详细查,比如是否给出了出错信息,

15、是否给出了正确的出错信息。六、跨站点脚本攻击测试要点 1.确定站点及其功能 - 与开发人员和 PM 交流 绘制一些简单的数据流图表,对站点上的页面及其功能进行描述。此时,可以安排一些与开发人员和项目经理的会议来建立威胁模型。在会议上尽可能对应用程序进行深入探讨。站点公开了 Web 服务吗?是否有身份验证表单?有留言板吗?有用户设置页面吗?确保列出了所有这些页面 2. 找出并列出所有由用户提供输入的点 对站点地图进行进一步细化。我通常会为此创建一个电子表格。对于每个页面,列出所有查询字符串参数、cookie 值、自定义 HTTP 标头、POST 数据值和以其他形式传递的用户输入。不要忘记搜索 W

16、eb 服务和类似的 SOAP 请求,并找出所有允许用户输入的字段。 分别列出每个输入参数,因为下面需要独立测试每个参数。这可能是最重要的一个步骤!如果阅读下面的电子表格,您会看到我已经在示例站点中找出了一大堆这样的东西。如 forwardURL 和 lang 这样的查询字符串。如 name、password、msgBody、msgTitle 和这样的 POST 数据,甚至某些 Cookie 值。所有这些都是我们感兴趣的重要测试内容 3. 认真思考并列出测试用例 4. 开始测试并注意输出结果 在查找漏洞的过程中,最重要的部分并不是您是否找到了漏洞。而是您是否真正知道究竟发生了哪些事情。对于 XS

17、S,只需检查 HTML 输出并看看您输入的内容在什么地方。它在一个 HREF 标记中吗?是否在 IFRAME 标记中?它在 CLSID 标记中吗?在 IMG SRC 中吗?某些 Flash 内容的 PARAM NAME 是怎样的?我会检查所有这些情况,如果您对所输入内容的目的十分了解,可以调整您的测试来找出问题。这意味着您可能需要添加一个额外的封闭括号“”来让某个标记变得完整,或者添加一个双引号来关闭标记内的一个元素。或者,您可能需要使用 URL 或 HTML 来编码您的字符,例如将双引号变为 %22 或 。 5. 这个站点看来防范比较严密。现在该怎么办呢? 那么,也许您的简单测试用例 ale

18、rt(hi) 并不能产生期望中的警告对话框。仔细想想这个问题并在可能的情况下与开发人员进行交流。也许他们对输入中的尖括号、单引号或圆括号进行了过滤。也许他们会过滤“scrpt”这个词。重新研究为何输入会产生这样的输出,并理解每个值(查询字符串、cookie、POST 数据)的作用。“pageId=10”这样的查询字符串值可能对输出没有影响,因此不值得花费时间测试它。有时,最好试着注入单个字符(例如尖括号、双引号标记或者圆括号),看看应用程序是否过滤这些字符。然后,便可以知道您面对的过滤级别究竟如何。接着,可以调整测试方法,对这些字符进行编码并重试,或者寻找其他注入办法。 改变测试用例 我恐怕无

19、法充分对此进行说明:研究输入的值会输出什么样的 HTML 页面非常重要。如果它们不能产生输出,那么不要在它们上面浪费时间。如果可以,请进行研究,因为您需要根据输出对测试进行相应的修改。我使用了各种变化形式来找出能接受和显示脚本代码的参数。因为这涉及太多内容,因此在这里无法一一进行讨论,但是请务必注意以下几种情况: 1.alert(XSS) 2.%22%273. 4.AK%22%20style%3D%22background:url(javascrpt:alert(%27XSS%27)%22%20OS%22 5.%22%2Balert(%27XSS%27)%2B%22 6. 7. 8.有许多变化

20、形式可以尝试。关键在于了解程序究竟使用何种方式处理输入和显示输出页面。如同这些例子所展示的,常见的变化形式经常是在脚本代码前面加上 “”,以尝试封闭网站可能在输出中生成的标记。还可以对代码进行 URL 编码,尝试绕过服务器端的输入过滤功能。此外,因为尖括号“”通常会在输入时被过滤和从输出中删除,所以还必须尝试不需要尖括号的 XSS,例如 ”&alert(XSS);”持久和动态 找出一个成功的 XSS 颇费周折,因为在开始时 XSS 攻击可能并不是那么显而易见的。随便举一个例子,如果向网站添加一条新留言并在“msgTitle”值中注入代码,在提交数据后,您可能不会立即看到脚本代码被执行。但是,当

21、您访问留言板的时侯,将会在 HTML 页面中使用“msgTitle”值并将其作为脚本代码执行。这种情况被称作持久性 XSS 攻击,如果包含脚本代码的值将被保存到客户端或者后端系统并在稍候的时间被执行,便会发生此种攻击。而与此相对的是动态 XSS 攻击,这种攻击会立即执行并只发生一次。比如,如果某个链接或 GET 请求在某个用来控制页面输出的查询字符串中包含了脚本代码,那么在点击链接后会立即显示输出。七、Cookie:什么是cookie?Cookie是Web网站放在您的硬盘上的程序。它守在您的电脑里,搜集您的信息以及您在因特网上所做的任何事情,当Web站点需要的时候它能够下载所有这些搜集到的信息

22、。Cookie设置方式: 1、持续的和非持续的以及安全的和非安全的。 2、浏览器会把持续的cookie存放在客户机本地的硬盘上。 3、浏览器会在非持续的cookie关闭的时候将其删除(存放在内存中)。 4、cookie本身不是安全的,但是浏览器可以通过https(http+ssh)完成。IE的cookie存放格式:usernamesitename1.txtIE的cookie采用了从1601年1月1日开始的以100纳秒为单位的计时增量cookie欺骗可以有多种途径:、跳过浏览器,直接对通讯数据改写。、修改浏览器,让浏览器从本地可以读写任意域名cookie。、使用签名脚本,让浏览器从本地可以读写任

23、意域名cookie(有安全问题)。、欺骗浏览器,让浏览器获得假的域名。八、跨站点攻击:什么是跨站点脚本攻击: 是一种通过虚假的WEB页面内容伪装用户的常用方法。 XSS 攻击的过程涉及以下三方:攻击者受害者存在漏洞的网站(攻击者可以使用它对受害者采取行动)在这三方之中,只有受害者会实际运行攻击者的代码。网站仅仅是发起攻击的一个载体,一般不会受到影响。可以用多种方式发起 XSS 攻击例如,攻击者可通过电子邮件、IM 或其他途径向受害者发送一个经过经心构造的恶意 URL。当受害者在 Web 浏览器中打开该 URL 的时侯,网站会显示一个页面并在受害者的计算机上执行脚本。XSS 攻击的目的是盗走客户

24、端 cookies,或者任何可以用于在 Web 站点确定客户身份的其他敏感信息恶意的 JavaScript 可以访问任何下列信息:浏览器维护的永久 cookies 浏览器实例维护的RAM cookies,但只有当最近浏览时发生。当关闭浏览器的时候,RAM cookie不存在。 攻击方式:1,除了 .,黑客可以使用 。这对于过滤 HTML 标签的站点来说很好用。 2,除了 .,还可以使用 。这对于 JavaScript 代码过长,或者其中包含了禁止字符时的情况是很好用的。3,XSS 攻击可以出现在用脚本回送响应的 GET 请求的参数中。但是也可以用 POST 请求实现攻击,或者利用 HTTP 请

25、求的路径组件 甚至使用一些 HTTP 头。防护措施:避免这种攻击的一个办法是web开发人员从用户提交的输入数据中过滤掉代码。九、DOS攻击:什么是DOS攻击:DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。DOS攻击方式:1、Synfl

26、ood: 该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。2、Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。3、Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自

27、己建立连接而陷入死循环,从而很大程度地降低了系统性能。 4、Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。 5、Pingflood: 该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。十、暴力破解解决办法:通过分析sshd的日志文件(/var/log/secure),当发现重复的攻击时,就会记录IP到/etc/hosts.deny文件,启用T

28、CP_wrappers,从而达到自动屏蔽IP的功能工具:十一、sql注入SQL注入攻击的总体思路1、发现SQL注入位置;2、判断后台数据库类型;3、确定XP_CMDSHELL可执行情况4、发现WEB虚拟目录5、上传ASP木马;6、得到管理员权限;SQL注入攻击的步骤一、SQL注入漏洞的判断只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入。如果ASP程序员没有安全意识,不进行必要的字符过滤,存在SQL注入的可能性就非常大。为了把问题说明清楚,以下以HTTP:/xxx.xxx.xxx/abc.asp?p=YY为例进行分析,YY可能是整型,也有可能是字符串。1、整型参数的判断

29、当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:select * from 表名 where 字段=YY,所以可以用以下步骤测试SQL注入是否存在。HTTP:/xxx.xxx.xxx/abc.asp?p=YY(附加一个单引号),此时abc.ASP中的SQL语句变成了select * from 表名 where 字段=YY,abc.asp运行异常; HTTP:/xxx.xxx.xxx/abc.asp?p=YY and 1=1, abc.asp运行正常,而且与HTTP:/xxx.xxx.xxx/abc.asp?p=YY运行结果相同; HTTP:/xxx.xxx.xxx/abc.asp?p=YY and 1=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1