安全性测试初步接触.ppt

上传人:xt****7 文档编号:22708060 上传时间:2021-05-30 格式:PPT 页数:35 大小:242.50KB
返回 下载 相关 举报
安全性测试初步接触.ppt_第1页
第1页 / 共35页
安全性测试初步接触.ppt_第2页
第2页 / 共35页
安全性测试初步接触.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
初步分类: 权限 (黑盒 +sql注入 +目录遍历 +非法文件与文字上传与写入) 加密 (网络传输、本地 cookie、源文件、认证与会话) 攻击 (缓冲区溢出、 sql注入、异常处理信息、端口扫描、服务器 攻击、跨站脚本攻击、 http回车换行注入攻击、代码注入、 url重定向、 google攻击) 理论篇 做的比较粗糙,大家在这块有什么可以交 流下, 消逝 黑盒主要测试点 用户管理模块,权限管理模块,加密系统,认证系统等 工具使用 Appscan(首要)、 Acunetix Web Vulnerability Scanner(备 用)、 HttpAnalyzerFull、 TamperIESetup 木桶原理 安全性最低的模块将成为瓶颈,需整体提高 他人模型 (虽然比较旧了) 安全管理与审计 物 理 层 安 全 网 络 层 安 全 传 输 层 安 全 应 用 层 安 全 链 路 层 物 理 层 网 络 层 传输 层 应用 层 表 示 层 会 话 层 审 计 与 监 控 身 份 认 证 数 据 加 密 数 字 签 名 完 整 性 鉴 别 端 到 端 加 密 访 问 控 制 点 到 点 链 路 加 密 物 理 信 道 安 全 访问控制 数据机密性 数据完整性 用户认证 防抵赖 安全审计 网 络 安 全 层 次 层 次 模 型 网 络 安 全 技 术 实 现 安 全 目 标 用户 安 全 (一)可手工执行或工具执行 输入的数据没有进行有效的控制和验证 用户名和密码 直接输入需要权限的网页地址可以访问 上传文件没有限制 ( 此次不需要 ) 不安全的存储 操作时间的失效性 1.1)输入的数据没有进行有效的控制和验证 数据类型(字符串,整型,实数,等) 允许的字符集 最小和最大的长度 是否允许空输入 参数是否是必须的 重复是否允许 数值范围 特定的值(枚举型) 特定的模式(正则表达式)(注:建议尽量采用白名单) 1.21)用户名和密码 -1 检测接口程序连接登录时,是否需要输入相应的用户 是否设置密码最小长度(密码强度) 用户名和密码中是否可以有空格或回车? 是否允许密码和用户名一致 防恶意注册:可否用自动填表工具自动注册用户? (傲 游等) 遗忘密码处理 有无缺省的超级用户 ?( admin等,关键字需屏蔽) 有无超级密码 ? 是否有校验码? 1.22)用户名和密码 -2 密码错误次数有无限制? 大小写敏感? 口令不允许以明码显示在输出设备上 强制修改的时间间隔限制(初始默认密码) 口令的唯一性限制(看需求是否需要) 口令过期失效后,是否可以不登陆而直接浏览某个页面 哪些页面或者文件需要登录后才能访问 /下载 cookie中或隐藏变量中是否含有用户名、密码、 userid等 关键信息 1.3)直接输入需要权限的网页地址可以访问 避免研发只是简单的在客户端不显示权限高的功能项 举例 Bug: 没有登录或注销登录后,直接输入登录后才能查看的页面 的网址(含跳转页面),能直接打开页面; 注销后,点浏览器上的后退,可以进行操作。 正常登录后,直接输入自己没有权限查看的页面的网址, 可以打开页面。 通过 Http抓包的方式获取 Http请求信息包经改装后重新发 送 从权限低的页面可以退回到高的页面(如发送消息后,浏 览器后退到信息填写页面,这就是错误的) 1.4)上传文件没有限制(此次不需要) 上传文件还要有大小的限制。 上传木马病毒等(往往与权限一起验证) 上传文件最好要有格式的限制; 此次我们不需要验证此处,简单介绍下,跳过 1.5)不安全的存储 在页面输入密码,页面应显示 “ *” ; 数据库中存的密码应经过加密; 地址栏中不可以看到刚才填写的密码; 右键查看源文件不能看见刚才输入的密码; 帐号列表:系统不应该允许用户浏览到网站所有的帐号, 如果必须要一个用户列表,推荐使用某种形式的假名(屏 幕名)来指向实际的帐号 1.6)操作时间的失效性 检测系统是否支持操作失效时间的配置,同时达到所配置 的时间内没有对界面进行任何操作时,检测系统是否会将 用户自动失效,需要重新登录系统。 支持操作失效时间的配置。 支持当用户在所配置的时间内没有对界面进行任何操作则 该应用自动失效。 如,用户登陆后在一定时间内(例如 15 分钟)没有点击任 何页面,是否需要重新登陆才能正常使用。 (二)借助工具或了解后手工来进行测试 不能把数据验证寄希望于客户端的验证 不安全的对象引用,防止 XSS攻击 注入式漏洞( SQL注入) 传输中与存储时的密码没有加密 ,不安全 的通信 目录遍历 2.1)不能把数据验证寄希望于客户端的验证 避免绕过客户端限制(如长度、特殊字符或脚本等),所 以在服务器端验证与限制 客户端是不安全,重要的运算和算法不要在客户端运行。 Session与 cookie 例:保存网页并对网页进行修改,使其绕过客户端的验证。 (如只能选择的下拉框,对输入数据有特殊要求的文本框) 还可以查看 cookie中记录,伪造请求 测试中,可使用 TamperIESetup来绕过客户端输入框的限制 2.21)不安全的对象引用,防止 XSS等攻击 阻止带有语法含义的输入内容,防止 Cross Site Scripting (XSS) Flaws 跨站点脚本攻击( XSS) 防止 Cross-site request forgery( CSRF) 跨站请求伪造 xss解释:不可信的内容被引入到动态页面中,没有识别 这种情况并采取保护措施。攻击者可在网上提交可以完成 攻击的脚本,普通用户点击了网页上这些攻击者提交的脚 本,那么就会在用户客户机上执行,完成从截获帐户、更 改用户设置、窃取和篡改 cookie 到虚假广告在内的种种 攻击行为 2.22)不安全的对象引用,防止 XSS等攻击 测试方法:在输入框中输入下列字符,可直接输入脚本来看 HTML标签: 转义字符: 特殊字符: / 最小和最大的长度 是否允许空输入 对 Grid、 Label、 Tree view类的输入框未作验证,输入的 内容会按照 html语法解析出来,要控制脚本注入的语法要 素。比如: javascript离不开: “ ”、 “ (”、 “ ) ” 、 “ ;”. 在输入或输出时对其进行字符过滤或转义处理 2.23)注入式漏洞( SQL注入) 对数据库等进行注入攻击。 例:一个验证用户登陆的页面, 如果使用的 sql语句为: Select * from table A where username + username+ and pass word . 则在 Sql语句后面 输入 or 1 1 就可以不输入任 何 password进行攻击 SELECT count(*) FROM users WHERE username=a or a=a AND password=a or a=a (资料太多,不显示了此处,借助工具 Appscan等吧 ) 2.24)传输中与存储时的密码没有加密 利用 ssl来进行加密,在位于 HTTP层和 TCP层之间,建立用 户与服务器之间的加密通信 进入一个 SSL站点后,可以看到浏览器出现警告信息,然 后地址栏的 http变成 https (特点确定) 证书认证 检查数据库中的用户密码、管理者密码等字段是否是以加 密方式保存。 存储数据库单独隔离,有备份的数据库,权限唯一 2.25)目录遍历 举例: 那现在把这个改装一下: . /local/apache/conf/ /usr/local/apache/conf/里的所有文件都出来了 简要的解决方案 : 、限制 Web应用在服务器上的运行 ,格设定 WEB 服务器的目录访问权限 、进行严格的输入验证,控制用户输入非法路径, 如在每个目录访问时有 index.htm (三)研发或使用工具才能进行 认证和会话数据不能作为 GET的一部分来发 送 隐藏域与 CGI参数 不恰当的异常处理 不安全的配置管理 缓冲区溢出 拒绝服务 日志完整性、可审计性与可恢复性 3.1) Get or post 认证和会话数据不应该作为 GET的一部分来发送,应该使 用 POST 例:对 Grid、 Label、 Tree view类的输入框未作验证,输 入的内容会按照 html语法解析出来 可使用 TamperIESetup或 ScannerHttpAnalyzerFull来判断 3.2)隐藏域与 CGI参数 Bug举例: 分析:隐藏域中泄露了重要的信息,有时还可以暴露程序 原代码。 直接修改 CGI参数,就能绕过客户端的验证了。 如: 只要改变 value的值就可能会把程序的原代码显示出来。 如大小写,编码解码,附加特殊字符或精心构造的特殊请 求等都可能导致 CGI源代码泄露 可使用 appscan或 sss等来检测,检查特殊字符集 3.3)不恰当的异常处理 分析:程序在抛出异常的时候给出了比较详细的内部错误 信息,暴露了不应该显示的执行细节,网站存在潜在漏洞, 有可能会被攻击者分析出网络环境的结构或配置 通常为其他攻击手段的辅助定位方式 举例:如 www.c* ,搜索为空时,数据库显示 出具体错误位置,可进行 sql注入攻击或关键字猜测攻击 3.4)不安全的配置管理 分析: Config中的链接字符串以及用户信息,邮件,数据存 储信息都需要加以保护 配置所有的安全机制, 关掉所有不使用的服务, 设置角色权限帐号, 使用日志和警报。 手段:用户使用缓冲区溢出来破坏 web应用程序的栈,通 过发送特别编写的代码到 web程序中,攻击者可以让 web 应用程序来执行任意代码 例:数据库的帐号是不是默认为 “ sa”,密码(还有端口 号)是不是直接写在配置文件里而没有进行加密。 3.5)缓冲区溢出 WEB服务器没有对用户提交的超长请求没有进行合适的处 理,这种请求可能包括超长 URL,超长 HTTP Header域, 或者是其它超长的数据 使用类似于 “ strcpy(), strcat()”不进行有效位检查的函数, 恶意用户编写一小段程序来进一步打开安全缺口,然后将 该代码放在缓冲区有效载荷末尾,这样,当发生缓冲区溢 出时,返回指针指向恶意代码 用户使用缓冲区溢出来破坏 web应用程序的栈,通过发送 特别编写的代码到 web程序中,攻击者可以让 web应用程 序来执行任意代码。 如 apach缓冲区溢出等错误,第三方软件也需检测 3.6)拒绝服务 手段:超长 URL,特殊目录,超长 HTTP Header域,畸形 HTTP Header域或者是 DOS设备文件 分析:攻击者可以从一个主机产生足够多的流量来耗尽狠 多应用程序,最终使程序陷入瘫痪。需要做负载均衡来对 付。 详细如:死亡之 ping、泪滴( Teardorop)、 UDP洪水 ( UDP Flood)、 SYN洪水( SYN Flood)、 Land攻击、 Smurf攻击、 Fraggle攻击、 畸形消息攻击 3.7)日志完整性。可审计性与可恢复性 服务器端日志:检测系统运行时是否会记录完整的日志。 如进行详单查询,检测系统是否会记录相应的操作员、操 作时间、系统状态、操作事项、 IP地址等 检测对系统关键数据进行增加、修改和删除时,系统是否 会记录相应的修改时间、操作人员和修改前的数据记录。 工具篇 Watchfire Appscan 全面自动测试工具 Acunetix Web Vulnerability 全面自动测试工具 ScannerHttpAnalyzerFull 加载网页时可判断 TamperIESetup 提交表单时改造数据 注:上述工具最好安装在虚拟机中,不影响实际机环境 Appscan、 Web Vulnerability 需安装 .net framework,可能与 sniffer 冲突 ScannerHttpAnalyzerFul与 TamperIESetup会影响实际机浏览器平时 的功能测试 (一) Watchfire Appscan 选择模板, default(含大部分的测试集合) 填入用户名与密码(各页面通用) (二) Acunetix Web Vulnerability 选择 web scan,填写用户名与密码 (三) ScannerHttpAnalyzerFull 嵌套在网页中,对于每个加载项都有加载 时间、 method、 result、 type、 url等 Method 主要验证到时是否使用 post来进行认证与会 话 Result 主要看加载项是否出现 http 403、 404、 500等错误(对于错误还要进行归类) (四) TamperIESetup 验证用户名与密码传输( post or get) (五)其他工具 Companion js 逆向查看 java语言编写的网页源 码 Nessus 扫描服务器(协议与端口) Paros 扫描工具 Sss 系统扫描工具 Sds 数据库扫描工具 wikto spider、 google hack等 X-scan、流光
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!