Web应用安全高级测试.pdf
- 文档编号:3211502
- 上传时间:2022-11-20
- 格式:PDF
- 页数:52
- 大小:1.17MB
Web应用安全高级测试.pdf
《Web应用安全高级测试.pdf》由会员分享,可在线阅读,更多相关《Web应用安全高级测试.pdf(52页珍藏版)》请在冰豆网上搜索。
WEB应用安全和数据库安全的领航者!
杭州安恒信息技术有限公司应用安全高级测试应用安全高级测试吴卓群吴卓群rainmanrainman应用安全测试介绍测试工具介绍常规应用漏洞测试业务逻辑测试应用防火墙绕过技术漏洞测试方式漏洞测试方式安全性测试的方式太多,每种方式都有自己的优点和缺点。
没有一种方式是绝对正确的,也没有一种方式能够揭示一个给定目标的所有可能漏洞。
在较高层次上,有三种方式用来发现漏洞:
白盒测试、黑盒测试和灰盒测试。
应用安全测试介绍应用安全测试介绍白盒测试白盒测试白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
应用安全测试介绍应用安全测试介绍黑盒测试黑盒测试黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
应用安全测试介绍应用安全测试介绍灰盒测试灰盒测试灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
应用安全测试介绍应用安全测试介绍我们使用的测试方法我们使用的测试方法黑盒测试fuzzing模糊测试权限攻击流程攻击灰盒测试对关键部分代码进行审计协议的加密解密关键数据的解密白盒测试自动化工具审计代码走读,发现深层次漏洞应用安全测试介绍应用安全测试介绍应用安全测试介绍应用安全测试介绍更关注黑盒测试看清数据请求的本质识别所有输入及输出使用开发者的思路考虑问题不断假设并否定应用安全简介绍测试工具介绍常规应用漏洞测试业务逻辑测试应用防火墙绕过技术开源的测试利器ZedAttackProxy测试工具介绍测试工具介绍安全测试神器BurpSuite快速辅助测试工具Hackbar应用安全测试介绍测试工具介绍常规应用漏洞测试业务逻辑测试应用防火墙绕过技术注入-InjectionSQL注入(包括MSSQLMySQLOracle等)SQL注入漏洞,是依靠存在弱点的WEB脚本代码,来实现通过浏览器执行任意SQL语句,从而实现最终获取某种权限的攻击技术。
SQL注入的关键部分在于对元数据的利用,所谓元数据即数据库的基础数据。
例如我们可以通过database()version()来获得数据库的名称及版本,而我们通过SQL内臵函数获得的这些内容都属于数据库元数据的内容。
虽然还有其他类型的注入攻击,但绝大多数情况下,问题涉及的都是SQL注入。
攻击者通过发送SQL操作语句,达到获取信息、篡改数据库、控制服务器等目的。
是目前非常流行的Web攻击手段。
流行性:
常见;危害性:
严重示例注入-Injection网页中使用如下网页中使用如下SQL查询,其中查询,其中username和和password需要用户输入:
需要用户输入:
select*fromhacked_Userswhereusername=usernameandpassword=password攻击者可以输入任意用户名,并输入攻击者可以输入任意用户名,并输入or1=1作为密码,实现如下查询:
作为密码,实现如下查询:
select*fromhacked_Userswhereusername=Andyandpassword=or1=1主要防范措施:
严格检查用户输入,注意特殊字符:
“”“;”“”“-”|”“xp_”等转义用户输入内容拒绝已经经过转义的输入使用参数化的查询使用SQL存储过程最小化SQL权限(禁用SA帐号)防止错误页面信息泄露注入-Injection跨站脚本跨站脚本XSSXSS也是一个比较危险的安全隐患,很多国内介绍XSS漏洞的文章大部分在如何欺骗管理员获得后台登陆帐户或者管理员的cookies文件。
但这些仅仅是XSS漏洞的简单用法,如果寻找到的XSS漏洞可以任意执行任何的Javascript脚本,那安全性也是不容忽视的。
通过Javascript脚本其实也可以做一些恶意的攻击,甚至可以获得一些WEB程序的源代码,当然这个要看大家对Javascript脚本的熟悉程度。
例如我们这几天公布的这个可跨站执行任意Javascript脚本的漏洞,最后我也通过这个漏洞给客户演示了如何获取他们的服务器信息,并最终实现得到其一定权限的方法。
同时例如session欺骗,目前我也把这些规入了XSS漏洞的范围,当然仅仅研究这两个技术也是很值得大家去深入的进行漏洞挖掘的。
该PPT的所有内容都为黑盒子测试的范围,也即使用这些漏洞挖掘规则,大家仅仅需要一个WEB浏览器,如IEFirefox等即可,也无需读取WEB程序的源代码,只要某个规则符合了漏洞规则的要求,即可以采取相关的漏洞攻击技术进行相应的漏洞攻击办法。
影响面最广的Web安全漏洞。
攻击者通过向URL或其他提交内容插入脚本,来实现客户端脚本执行的目的。
可分为三种类型:
反射、存储和DOM流行性:
极为广泛;危害性:
中等示例跨站脚本-Cross-SiteScripting(XSS)反射型反射型XSS:
在搜索引擎中输入含脚本的查询内容后,查询结果页面中会出现脚本内:
在搜索引擎中输入含脚本的查询内容后,查询结果页面中会出现脚本内容。
容。
通常要结合社会工程学欺骗用户执行。
通常要结合社会工程学欺骗用户执行。
存储型存储型XSS:
在某论坛中攻击者新建一个帖子,在提交文本框时输入了脚本内容。
当:
在某论坛中攻击者新建一个帖子,在提交文本框时输入了脚本内容。
当其他用户打开这个帖子时,其中包含的脚本内容被执行。
其他用户打开这个帖子时,其中包含的脚本内容被执行。
DOM型型XSS:
网页中包含如下脚本内容,其中含有:
网页中包含如下脚本内容,其中含有window.location.href对象对象document.write();攻击者可以直接在原始地址后添加脚本内容攻击者可以直接在原始地址后添加脚本内容主要防范措施:
严格检查用户输入尽量限制在HTML代码中插入不可信的内容(可被用户输入或修改的内容)对于需要插入的不可信内容必须先进行转义(尤其对特殊字符、语法符合必须转义或重新编码)将Cookie设置为HttpOnly,防止被脚本获取跨站脚本-Cross-SiteScripting(XSS)文件包含文件包含文件包含类型,如PHP的的远程、本地文件包含漏洞文件包含漏洞是PHP程序特有的一个弱点攻击,原理就是在使用include时没有安全的编程,而能够找到文件包含漏洞则是入侵一个WEB系统的很重要的因素,有了文件包含漏洞则可以很快速的达到上传WEBSHELL,然后本地提升权限的作用。
攻击者构造恶意URL请求,然后诱骗合法用户访问此URL链接,以达到在Web应用中以此用户权限执行特定操作的目的。
和反射型XSS的主要区别是:
反射型XSS的目的是在客户端执行脚本;CSRF的目的是在Web应用中执行操作。
流行性:
广泛;危害性:
中等示例跨站请求伪造-Cross-SiteRequestForgery某网银在执行用户转账时会提交如下某网银在执行用户转账时会提交如下URL请求:
请求:
http:
/myPictures!
主要防范措施:
避免在URL中明文显示特定操作的参数内容使用同步令牌(SynchronizerToken),检查客户端请求是否包含令牌及其有效性检查RefererHeader,拒绝来自非本网站的直接URL请求跨站请求伪造-Cross-SiteRequestForgery某些Web应用包含一些“隐藏”的URL,这些URL不显示在网页链接中,但管理员可以直接输入URL访问到这些“隐藏”页面。
如果我们不对这些URL做访问限制,攻击者仍然有机会打开它们。
流行性:
不常见;危害性:
中等示例URL访问限制缺失-FailuretoRestrictURLAccess1.某商品网站举行内部促销活动,特定内部员工可以通过访问一个未公开的某商品网站举行内部促销活动,特定内部员工可以通过访问一个未公开的URL链接链接登录公司网站,购买特价商品。
此登录公司网站,购买特价商品。
此URL通过某员工泄露后,导致大量外部用户登录购买。
通过某员工泄露后,导致大量外部用户登录购买。
2.某公司网站包含一个未公开的内部员工论坛(某公司网站包含一个未公开的内部员工论坛(http:
/toRestrictURLAccess攻击者可能利用未经验证的重定向目标来实现钓鱼欺骗,诱骗用户访问恶意站点。
攻击者可能利用未经验证的跳转目标来绕过网站的访问控制检查。
流行性:
不常见;危害性:
中等示例未验证的重定向和跳转-UnvalidatedRedirectsandForwards利用重定向的钓鱼链接:
利用重定向的钓鱼链接:
http:
/RedirectsandForwards应用安全测试介绍测试工具介绍常规应用漏洞测试业务逻辑测试应用防火墙绕过技术业务逻辑测试业务逻辑测试业务逻辑测试随着系统功能越来越强大,业务逻辑也更加复杂。
逻辑上出现的安全问题也会越来越多。
而且当出现问题时,可能比常规的安全漏洞更加严重。
业务逻辑测试业务逻辑测试应用系统漏洞权限控制漏洞最常见和最普遍的漏洞,重点测试。
目前存在着两种越权操作类型:
横向越权操作和纵向越权操作。
前者指的是攻击者尝试访问与他拥有相同权限的用户的资源;而后者指的是一个低级别攻击者尝试访问高级别用户的资源权限控制漏洞普通管理员普通管理员C普通用户普通用户A普通用户普通用户B普通管理员普通管理员D超级管理员超级管理员E纵向越权纵向越权横横向越权向越权权限控制漏洞水平权限控制水平权限控制:
查询其他账金额查询其他账户身份信息查询其他账户的其他相关信息修改昵称修改手机信息修改业务开通功能权限控制漏洞垂直权限控制垂直权限控制:
低权限账户,是否可以操作高权限账户功能是否可查看高权限账户功能业务逻辑测试业务逻辑测试逻辑顺序测试逻辑顺序异常,可能导致安全问题如:
外挂账户操作:
1.判断账户号,2.判断密码,3.判断姓名,4.完成外挂操作业务逻辑测试业务逻辑测试数据校验问题使用提交异常数据进行测试提交负数提交超大数字溢出给别人打款100元,但是提交的参数中将100改成了-100,结果?
账户控制数据转换输入输出账户互换我转给A用户1000积分,但是在我提交数据时,将输入账户和输出账户进行对调。
结果?
业务逻辑测试业务逻辑测试短信测试很多系统存在短信功能,短信接口是否存在短信DOS攻击,伪造短信发送邮件测试存在发送邮件功能的系统,邮件接口是否存在问题,是否可以不断发送邮件,发送伪造邮件短信和邮件类似,如果没有限制发送次数就会产生拒绝服务攻击如果在参数中存在短信、邮件中的可控字段,就可伪造短信和邮件的内容业务逻辑测试业务逻辑测试其他测试是否有可暴力破解的点通过暴力可猜解出有效信息无二次验证无图形验证码其他可以直接通过工具自动猜测的验证码安全无验证码为字母,而非图片验证码使用完后没有从服务器缓存中清楚过于简单的图形验证码其他能想到的漏洞逻辑漏洞不像传统漏洞,分类相对固定。
任何可以利用的方法并可产生危害的方法都可以称为漏洞。
所以在测试过程中,明确输入输出,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web 应用 安全 高级 测试