安全性测试之续课件.pptx

上传人(卖家):晟晟文业 文档编号:4846482 上传时间:2023-01-17 格式:PPTX 页数:42 大小:3.87MB
下载 相关 举报
安全性测试之续课件.pptx_第1页
第1页 / 共42页
安全性测试之续课件.pptx_第2页
第2页 / 共42页
安全性测试之续课件.pptx_第3页
第3页 / 共42页
安全性测试之续课件.pptx_第4页
第4页 / 共42页
安全性测试之续课件.pptx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、12019/1/302019/1/30 网站安全性问题一直是一个大家所需要重视,但有时候缺总是感觉缺乏这种资源或是这个范围太广而无法全部覆盖到把,但一旦被人利用就会造成很多不利影响。所以这个问题最好从源头开始杜绝,而不是靠后期测试人员或者使用者发现再去修复,想到这个周末便对都是开发童鞋的oschina进行了一次友情测试,并得到了不错的效果。首先认证钓鱼这个问题是由于一个引用网络图片问题而导致的,这个实在影响太大,包括qq,百度,人人,163邮箱,qq邮箱等著名网站。那么为什么一个引用网络图片会导致这个认证钓鱼呢,因为http认证的关系,好了,下面具体看图把。22023-1-17测试新浪邮箱,欺

2、骗窗口弹出32023-1-17前面一段时间作为wooyun的一员,一直致力于网络安全,发现各类网站及邮箱都会有一个高危漏洞,即认证钓鱼,包括淘宝论坛,支付宝论坛,百度贴吧,qq空间,163邮箱,qq邮箱等网站,当用户打开页面的时候会引发了一个http认证,如果用户不注意就会输入用户名密码进去,因为基于对网站的信任,这个时候黑客就会受到用户输入的用户名和密码,即可登录该网站,危害很大,特别是邮箱那么我就以163邮箱为例演示下这个过程吧首先我先写一封邮件42023-1-1752023-1-17点击发送,然后到163邮箱查看收到内容,并打开邮件看到62023-1-17这个时候不注意的用户就会看到提示

3、登录的弹框,很可能输入用户名密码,那么我输入下看看,结果输入的用户名密码发到了我所对应的地址72023-1-17首先,我先找个能够引用网络图片的地方,其实不引用也可以,只要插如img src=“即可82023-1-17之后刷新看效果吧,因为指定的图片地址引用了一个http认证92023-1-17这个时候重新打开页面就会触发一个钓鱼认证,没有警惕性的用户发现是要连接关于访问网站,就输入了该网站的用户名和密码,点击确定以后其实这个密码就发给我了,因为这个钓鱼认证是我搞的,好了看看效果把。102023-1-17看来我已经收到有人输如的oschina的用户名和密码了112023-1-17看了真的有人中

4、招了,好了那么登陆发发消息看看这个就是我使用刚才收到的用户名密码所发的一条信息,因为之前没有测试就联系红薯了,只是他找周公去了,所以发一条消息再下。至此测试成功,之后就有程序猿发现了这个情况并发帖,看来程序猿的警惕性还是很高的,不过也说明他们也对安全性的知识比较缺乏,并不知道这是一个认证钓鱼。122023-1-17132023-1-17就此测试结束,第二天联系红薯把事情讲清楚后,红薯特地在首页搞了一个置顶贴,看来他也认识到了问题的严重性,毕竟他的网站至少还是可以的142023-1-17 至此,大家应该对认证钓鱼这个有所认识,网站安全性问题一直层出不穷,这个不但给黑客有了图利的机会,更给用户很多

5、不安定因素,造成对网站的不信任。很多东西涉及范围太广我们也无法全部覆盖到,只能一点点积累。比如xss这个问题,最简单的当然使用白名单,但很多时候是无法避免一些比如onload的标签的,那么就只能过滤,这个时候问题就会层出不穷,大家有兴趣可以看一下腾讯围脖10+的xss虑全面啊,测试童鞋很多时候也无法全部覆盖,只有大家通力协作才能把网站做的更好。下面就是一个新蛋的弹窗,只是在这个地方利用方式比较复杂,最简单的就是你登陆我输个代码cookies就发到我指定地方了,不过这个还是开发童鞋过滤不严导致的,千里之堤,溃于蚁穴,安全无小事啊。152023-1-17162023-1-17172023-1-17

6、或者这样利用,窗口是模态的182023-1-17输入用户名密码后的效果192023-1-17 好了,测试同学肯定觉得上面的和自己关系不是很大,那么下面的内容我觉得是对于web测试应该掌握的,当然开发同学肯定要很了解其本质。首先我们必须明晰Session的概念,Session是由服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID为标识符来存取服务器端的Session存储空间。SessionID可以由cookie保存,用户访问网站时,SessionID将会随cookie提交到服务器端。服务器也可以通过URL重写的方式来传递Se

7、ssionID的值,但是在URL中传递SessionID是存在很大的安全风险的,黑客可能获取HTTP请求的来源信息等手段直接就得到了客户端的SessionID。其次我们应该认识到cookie和session的区别,因为这里的概念是混淆和模糊的。HTTP协议是无状态的,客户端与服务端无法长期的保存身份认证及会话状态,所以便需要cookie机制,在客户端以文件的形式保存会话状态。而session机制则是在服务器端保持状态,不需要长期保持会话状态,但是服务器端保持状态的同时在客户端也需要保存一个标识,前面我提到了使用URL传递SessionID的安全风险,所以session机制需要借助于cookie

8、机制。原理上cookie只是做为SessionID的一个载体,我们只需要区分cookie机制和session机制即可。202023-1-17 同源策略是被提起比较多的一个安全概念,这个策略是浏览器的安全基础,cookie做为浏览器的一个功能,自然也考虑到了同源策略,cookie的同源策略分为两个方面,第一个方面涉及到cookie的domain和path两个值,浏览器根据这两个值判断什么样的域名和页面能够读取cookie。第二个方面是第一方cookie和第三方cookie两个概念,第一方cookie是指当前正在查看的网站的cookie,在这个情况下对同源的HTTP请求都读取cookie发送,自然

9、没有任何限制。而第三方cookie来自当前正在查看的网站以外的网站的cookie,第三方cookie可以是会话cookie和持久化cookie,我们正在查看的网站可能包含了第三方的资源,在这种情况下浏览器会因为考虑到同源策略,而判断从当前浏览的网站对站外的请求是否允许读取第三方cookie发送。cookie的同源策略可能比较晦涩,但是并不难理解,我们拿javascript的同源策略类比,比如AJAX不允许跨域的GET和POST请求,而正常的HTML代码中带有文件请求的标签实际上是属于GET请求,当网站嵌入了第三方的文件资源,也就产生了跨域的请求,同源策略是不可能干预这类正常的请求的,但是从安全

10、的角度仍然有必要限制第三方cookie的存取。212023-1-17 一个应用程序在设计的过程中,为了实现对资源和请求进行管理,用户信息认证是非常重要的一环。由于HTTP请求的无连接性,一般的应用程序都是通过Cookie或者Session来完成认证工作,通过将加密的用户认证信息存储到Cookie中,或者通过赋予客户端的一个Token,通常也就是所说的SessionId来在服务器端直接完成认证和取得用户的身份信息,不管哪一种方式,实际上在HTTP协议里都是通过Cookie来实现的,不同的是Cookie可能可以比较长期地存储在客户端上,而Session往往在会话结束之后服务器监视会话不处于活动状态

11、而予以销毁。有的完全将认证信息(用户密码信息)加密存储到客户端里,只要用户密码信息不修改,就可以一直利用这个认证信息来登录应用程序。也有的是将认证通过后应用程序赋予客户端一个Token,这个Token存储在Cookie里,这样当客户端登录的时候就可以通过这个Token获得对应的身份,这样只要这个Cookie不被删除,就可以永远的处于登录状态。而另外的一些应用程序将Token放置到Session里,当客户端退出应用程序之后或者客户端在一段时间无响应之后,服务器就销毁这个Session,而且因为是Session里,所以客户端浏览器关闭之后,这个Session也从浏览器内存里销毁了。222023-1

12、-17 譬如163邮箱,譬如baidu的认证机制。我们可以经常遇到这样的情况,我在一个浏览器里开了webmail然后新打开一个浏览器开了webmail,然后我第一个浏览器退出了并不影响第二个的账户,两者互不影响,其实是因为他们获取到了两个SessionId,这在应用程序里可能是作为用户体验考虑的,但是正是这种机制存在巨大的安全漏洞。Session信息是以一个SessionId或者表现为临时Cookie的Token的形式发送的,而我们在实现了XSS的时候其实是可以操作Cookie的了,可以想象,如果我们赋给浏览器一个和Session Cookie名字相同而值不同的Cookie会怎么样?通过我们的

13、测试发现,实际上两个Cookie都是被发送出去的,在HTTP头里表现为出现两个一样的COOKIE,那么服务器会选择哪个Cookie作为实际取得的COOKIE变量呢?测试的时候发现实际上是以第一个出现的COOKIE为准的,而不管发送过来的是Session Cookie还是Store Cookie,所以我们就可以利用Javascript改变客户端的Session Token了。232023-1-17 跨域web攻击指的是利用网站跨域安全设置缺陷进行的web攻击,有别于传统的攻击,跨域web攻击可以从网站某个不重要的业务直接攻击和影响核心业务。传统的安全思维教会我们按资产、功能等需求划分核心业务,优

14、先保护核心业务等,非核心业务的安全等级一般没有核心业务高,给我们错觉是非核心业务受到攻击的话,所造成损失不会很大,也不会影响到核心业务,所以了解跨域web攻击这一概念还是非常有意义的。基于ajax跨域设置的跨域攻击 使用ajax技术让人头痛的地方就是如何跨域,受同源策略所限不同域名包括子域名在内是无法进行AJAX请求的,随后衍生出一类技术可以通过设置document.domain实现跨域。如和,当两个网站通过javascript操作DOM接口 document.domain= 将网站的域设置为后,两个网站就处于同一个域内,可以进行各种跨域操作。在开发人员方面这是很方便的跨域技术,但是在攻击者眼

15、中这简直就是一个大后门,黑客只需要找到*下任意一个XSS漏洞,在任意一个子域名里的网页都可以跨域攻击和。说到这里就不得不说说腾讯的架构问题,腾讯围脖和QQ邮箱的cookies都没有设置httponly,现在腾讯业务线很长,腾讯网站很多地方程序员都是从 document.cookie里读取skey来使用的,一旦http-only的话,很多程序都要修改。鉴于成本和可能出现的难以预料的问题就没有改,但这个时候只要先关腾讯的网站有一个xss,我们就能够通过这个xss构造一个短地址发在围脖或发给邮箱用户,只要点击就会执行第三方脚本,从而导致qq相关cookies被窃取,那么所有腾讯网站就都可以登陆了。2

16、42023-1-17 上面的基础知识不知道童鞋们能体会多少,现在就到了fiddler工具的使用,这个就比较实际了,开发童鞋应该都很熟练了。当今web程序的开发技术真是百家争鸣,ASP.NET,PHP,JSP,Perl,AJAX 等等。无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要,因为它让我们理解了Web应用程序的内部工作。协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。目前我们使用的是HTTP/1.1 版本 http协议是无状态

17、的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。为了解决这个问题,Web程序引入了Cookie机制来维护状态。252023-1-17262023-1-17 我们再看Response消息的结构,和Request消息的结构基本一样。同样也分为三部分,第一部分叫Response line,第二部分叫Response header,第三部分是body.header和body之间也有个空行,结构如下图 HTTP/version-number表示HTTP协议的版本号,status-code 和message。我们用Fiddler 捕捉一个博客

18、园首页的Response然后分析下它的结构,在Inspectors tab下以Raw的方式可以看到完整的Response的消息272023-1-17282023-1-17Get和和Post方法的区别方法的区别 Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE.一个URL地址用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.我们看看GET和POST的区别1.GET提交的数

19、据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456.POST方法是把提交的数据放在HTTP包的Body中.2.GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.3.GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。4.GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记

20、录获得该用户的账号和密码.292023-1-17 Inspectors tab下有很多查看Request或者Response的消息。其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header.如下图302023-1-17QuickExec命令行的使用命令行的使用Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。常见得命令有help 打开官方的使用页面介绍,所有的命令都会列出来cls 清屏 (Ctrl+x 也可以清屏)select 选择会话的命令?.png 用来选择png后缀的图片bpu 截获request312023-1-17Fid

21、dler中设置断点修改中设置断点修改Request Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host,cookie或者表单中的数据。设置断点有两种方法第一种:打开Fiddler 点击Rules-Automatic Breakpoint -Before Requests(这种方法会中断所有的会话)如何消除命令呢?点击Rules-Automatic Breakpoint -Disabled第二种:在命令行中输入命令:bpu (这种方法只会中断)如何消除命令呢?在命令行中输入命令 bpu322023-1-17332023-1-17Fi

22、ddler中设置断点修改中设置断点修改Response 当然Fiddler中也能修改Response第一种:打开Fiddler 点击Rules-Automatic Breakpoint -After Response (这种方法会中断所有的会话)如何消除命令呢?点击Rules-Automatic Breakpoint -Disabled第二种:在命令行中输入命令:bpafter (这种方法只会中断)如何消除命令呢?在命令行中输入命令 bpafter,342023-1-17Fiddler中提供的编码小工具中提供的编码小工具 点击Fiddler 工具栏上的TextWizard,这个工具可以Enco

23、de和Decode string.352023-1-17如何在如何在VS调试网站的时候使用调试网站的时候使用Fiddler 我们在用visual stuido 开发ASP.NET网站的时候也需要用Fiddler来分析HTTP,默认的时候Fiddler是不能嗅探到localhost的网站。不过只要在localhost后面加个点号,Fiddler就能嗅探到。例如:原本ASP.NET的地址是 http:/localhost:2391/Default.aspx,加个点号后,变成 http:/localhost.:2391/Default.aspx 就可以了 第二个办法就是在hosts文件中加入 127.0.0.1 localsite如何你访问http:/localsite:端口号 。这样Fiddler也能截取到了。362023-1-17 TKANKS 讲了差不多了,最后就实际演示下fiddler的使用吧,上面讲的东西童鞋们可以回去慢慢消化,很多东西大家可以多多交流。安全性测试这个范围实在太广,希望大家以后可以把自己觉得很有意思或者很重要的点拿出来分享。372023-1-17382023-1-17392023-1-17402023-1-17412023-1-17422023-1-17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(安全性测试之续课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|