《安全性测试初步接触》由会员分享,可在线阅读,更多相关《安全性测试初步接触(34页珍藏版)》请在金锄头文库上搜索。
1、初步分类:初步分类:权限权限 (黑盒(黑盒+sql+sql注入注入+目录遍历目录遍历+非法文件与文字上传与写入)非法文件与文字上传与写入)加密加密 (网络传输、本地(网络传输、本地cookiecookie、源文件、认证与会话)、源文件、认证与会话)攻击攻击 (缓冲区溢出、(缓冲区溢出、sqlsql注入、异常处理信息、端口扫描、服务器攻注入、异常处理信息、端口扫描、服务器攻 击、跨站脚本攻击、击、跨站脚本攻击、httphttp回车换行注入攻击、代码注入、回车换行注入攻击、代码注入、 urlurl重定向、重定向、googlegoogle攻击)攻击)理论篇理论篇n n黑盒主要测试点黑盒主要测试点 用
2、户管理模块,权限管理模块,加密系统,认证系统等用户管理模块,权限管理模块,加密系统,认证系统等 n n工具使用工具使用 AppscanAppscan(首要)、(首要)、Acunetix Web Vulnerability ScannerAcunetix Web Vulnerability Scanner(备(备 用)、用)、HttpAnalyzerFullHttpAnalyzerFull、TamperIESetupTamperIESetupn n木桶原理木桶原理 安全性最低的模块将成为瓶颈,需整体提高安全性最低的模块将成为瓶颈,需整体提高n n模型模型安全管理与审计物理层 安全网络层 安全传输
3、层 安全应用层 安全链路层 物理层网络层传输层应用层表示层会话层审计与监控身份认证数据加密数字签名完整性鉴别端到端加密访问控制点到点链路加 密 物理信道安全l访问控制 l数据机密性 l数据完整性l用户认证 l防抵赖 l安全审计网络安全 层次层次 模型网络安全 技术实现安 全目标用户 安全(一)可手工执行或工具执行(一)可手工执行或工具执行n n输入的数据没有进行有效的控制和验证输入的数据没有进行有效的控制和验证 n n用户名和密码用户名和密码 n n直接输入需要权限的网页地址可以访问直接输入需要权限的网页地址可以访问 n n上传文件没有限制上传文件没有限制n n不安全的存储不安全的存储 n n
4、操作时间的失效性操作时间的失效性 1.11.1)输入的数据没有进行有效的控制和验证)输入的数据没有进行有效的控制和验证n n数据类型(字符串,整型,实数,等)数据类型(字符串,整型,实数,等)n n允许的字符集允许的字符集n n最小和最大的长度最小和最大的长度n n是否允许空输入是否允许空输入n n参数是否是必须的参数是否是必须的n n重复是否允许重复是否允许n n数值范围数值范围n n特定的值(枚举型)特定的值(枚举型)n n特定的模式(正则表达式)(注:建议尽量采用白名单)特定的模式(正则表达式)(注:建议尽量采用白名单) 1.211.21)用户名和密码)用户名和密码-1-1n n检测接口
5、程序连接登录时,是否需要输入相应的用户检测接口程序连接登录时,是否需要输入相应的用户n n是否设置密码最小长度(密码强度)是否设置密码最小长度(密码强度)n n用户名和密码中是否可以有空格或回车?用户名和密码中是否可以有空格或回车?n n是否允许密码和用户名一致是否允许密码和用户名一致n n防恶意注册:可否用自动填表工具自动注册用户?防恶意注册:可否用自动填表工具自动注册用户? n n遗忘密码处理遗忘密码处理n n有无缺省的超级用户有无缺省的超级用户? ?(adminadmin等,关键字需屏蔽)等,关键字需屏蔽)n n有无超级密码有无超级密码? ?n n是否有校验码?是否有校验码?1.221.
6、22)用户名和密码)用户名和密码-2-2n n密码错误次数有无限制?密码错误次数有无限制?n n大小写敏感?大小写敏感?n n口令不允许以明码显示在输出设备上口令不允许以明码显示在输出设备上n n强制修改的时间间隔限制(初始默认密码)强制修改的时间间隔限制(初始默认密码)n n口令的唯一性限制(看需求是否需要)口令的唯一性限制(看需求是否需要)n n口令过期失效后,是否可以不登陆而直接浏览某个页面口令过期失效后,是否可以不登陆而直接浏览某个页面n n哪些页面或者文件需要登录后才能访问哪些页面或者文件需要登录后才能访问/ /下载下载n ncookiecookie中或隐藏变量中是否含有用户名、密码
7、、中或隐藏变量中是否含有用户名、密码、useriduserid等等 关键信息关键信息1.31.3)直接输入需要权限的网页地址可以访问)直接输入需要权限的网页地址可以访问n n避免研发只是简单的在客户端不显示权限高的功能项避免研发只是简单的在客户端不显示权限高的功能项 举例举例BugBug:n n没有登录或注销登录后,直接输入登录后才能查看的页面没有登录或注销登录后,直接输入登录后才能查看的页面 的网址(含跳转页面),能直接打开页面;的网址(含跳转页面),能直接打开页面;n n注销后,点浏览器上的后退,可以进行操作。注销后,点浏览器上的后退,可以进行操作。n n正常登录后,直接输入自己没有权限查
8、看的页面的网址,正常登录后,直接输入自己没有权限查看的页面的网址, 可以打开页面。可以打开页面。n n通过通过HttpHttp抓包的方式获取抓包的方式获取HttpHttp请求信息包经改装后重新发请求信息包经改装后重新发 送送 n n从权限低的页面可以退回到高的页面(如发送消息后,浏从权限低的页面可以退回到高的页面(如发送消息后,浏 览器后退到信息填写页面,这就是错误的)览器后退到信息填写页面,这就是错误的)1.41.4)上传文件没有限制)上传文件没有限制n n上传文件还要有大小的限制。上传文件还要有大小的限制。 n n上传木马病毒等(往往与权限一起验证)上传木马病毒等(往往与权限一起验证)n
9、n上传文件最好要有格式的限制;上传文件最好要有格式的限制;1.51.5)不安全的存储)不安全的存储 n n在页面输入密码,页面应显示在页面输入密码,页面应显示 “ “*” ”;n n数据库中存的密码应经过加密;数据库中存的密码应经过加密;n n地址栏中不可以看到刚才填写的密码;地址栏中不可以看到刚才填写的密码;n n右键查看源文件不能看见刚才输入的密码;右键查看源文件不能看见刚才输入的密码;n n帐号列表:系统不应该允许用户浏览到网站所有的帐号,帐号列表:系统不应该允许用户浏览到网站所有的帐号, 如果必须要一个用户列表,推荐使用某种形式的假名(屏如果必须要一个用户列表,推荐使用某种形式的假名(
10、屏 幕名)来指向实际的帐号幕名)来指向实际的帐号1.61.6)操作时间的失效性)操作时间的失效性 n n检测系统是否支持操作失效时间的配置,同时达到所配置检测系统是否支持操作失效时间的配置,同时达到所配置 的时间内没有对界面进行任何操作时,检测系统是否会将的时间内没有对界面进行任何操作时,检测系统是否会将 用户自动失效,需要重新登录系统。用户自动失效,需要重新登录系统。n n支持操作失效时间的配置。支持操作失效时间的配置。n n支持当用户在所配置的时间内没有对界面进行任何操作则支持当用户在所配置的时间内没有对界面进行任何操作则 该应用自动失效。该应用自动失效。如,用户登陆后在一定时间内(例如如
11、,用户登陆后在一定时间内(例如15 15 分钟)没有点击任分钟)没有点击任 何页面,是否需要重新登陆才能正常使用。何页面,是否需要重新登陆才能正常使用。(二)借助工具或了解后手工来进行测试(二)借助工具或了解后手工来进行测试n n不能把数据验证寄希望于客户端的验证不能把数据验证寄希望于客户端的验证 n n不安全的对象引用,防止不安全的对象引用,防止XSSXSS攻击攻击n n注入式漏洞(注入式漏洞(SQLSQL注入)注入) n n传输中与存储时的密码没有加密传输中与存储时的密码没有加密 ,不安全,不安全 的通信的通信 n n目录遍历目录遍历 2.12.1)不能把数据验证寄希望于客户端的验证)不能
12、把数据验证寄希望于客户端的验证n n避免绕过客户端限制(如长度、特殊字符或脚本等),所避免绕过客户端限制(如长度、特殊字符或脚本等),所 以在服务器端验证与限制以在服务器端验证与限制n n客户端是不安全,重要的运算和算法不要在客户端运行。客户端是不安全,重要的运算和算法不要在客户端运行。n nSessionSession与与cookiecookie例:保存网页并对网页进行修改,使其绕过客户端的验证。例:保存网页并对网页进行修改,使其绕过客户端的验证。 (如只能选择的下拉框,对输入数据有特殊要求的文本框)(如只能选择的下拉框,对输入数据有特殊要求的文本框) 还可以查看还可以查看cookiecoo
13、kie中记录,伪造请求中记录,伪造请求测试中,可使用测试中,可使用TamperIESetupTamperIESetup来绕过客户端输入框的限制来绕过客户端输入框的限制 2.212.21)不安全的对象引用,防止)不安全的对象引用,防止XSSXSS等攻击等攻击n n阻止带有语法含义的输入内容,防止阻止带有语法含义的输入内容,防止Cross Site Scripting Cross Site Scripting (XSS) Flaws (XSS) Flaws 跨站点脚本攻击(跨站点脚本攻击(XSSXSS)n n防止防止Cross-site request forgeryCross-site requ
14、est forgery(CSRFCSRF)跨站请求伪造跨站请求伪造n nxssxss解释:不可信的内容被引入到动态页面中,没有识别解释:不可信的内容被引入到动态页面中,没有识别 这种情况并采取保护措施。攻击者可在网上提交可以完成这种情况并采取保护措施。攻击者可在网上提交可以完成 攻击的脚本,普通用户点击了网页上这些攻击者提交的脚攻击的脚本,普通用户点击了网页上这些攻击者提交的脚 本,那么就会在用户客户机上执行,完成从截获帐户、更本,那么就会在用户客户机上执行,完成从截获帐户、更 改用户设置、窃取和篡改改用户设置、窃取和篡改 cookie cookie 到虚假广告在内的种种到虚假广告在内的种种攻
15、击行为攻击行为2.222.22)不安全的对象引用,防止)不安全的对象引用,防止XSSXSS等攻击等攻击测试方法:在输入框中输入下列字符,可直接输入脚本来看测试方法:在输入框中输入下列字符,可直接输入脚本来看n nHTMLHTML标签:标签: n n转义字符:转义字符:alert(document.cookie);n n特殊字符:特殊字符: / n n最小和最大的长度最小和最大的长度n n是否允许空输入是否允许空输入n n对对GridGrid、LabelLabel、Tree viewTree view类的输入框未作验证,输入的类的输入框未作验证,输入的 内容会按照内容会按照htmlhtml语法解
16、析出来,要控制脚本注入的语法要语法解析出来,要控制脚本注入的语法要 素。比如:素。比如:javascriptjavascript离不开:离不开:“ “ ” ”、“ “( (” ”、“ “)” ”、“ “; ;” ”. . 在输入或输出时对其进行字符过滤或转义处理在输入或输出时对其进行字符过滤或转义处理2.232.23)注入式漏洞()注入式漏洞(SQLSQL注入)注入)n n对数据库等进行注入攻击。对数据库等进行注入攻击。n n例:一个验证用户登陆的页面,例:一个验证用户登陆的页面, 如果使用的如果使用的sqlsql语句为:语句为: Select *Select * fromfrom user userwhere where namename and pass word =and pass word = 则在则在SqlSql语句后面语句后面 输入输入