我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019斗牛棋牌 > 防御能力 >

Web安全防范(XSS、CSRF)

归档日期:07-09       文本归类:防御能力      文章编辑:爱尚语录

  利用别人的cookie,可以冒充真实的用户,在颁发cookie的那个网站中为所欲为。

  因为浏览器的同源策略,所以不能获取到其他网站的cookie,但通过把JavaScript代码注入到目标页面中,就能绕过同源策略,比如在HTML的input中注入JavaScript代码,等到数据提交到服务器端,会保存下来,下次展示页面的时候,就会执行这段代码。

  等到再次有人访问这个页面的时候,就可以把那个人的cookie显示出来了!

  当然不能直接把用户的cookie直接alert出来,而同源策略严格限制了JavaScript的跨域访问,但同源策略并不限制img这样的标签从别的网站(跨域)去下载图片,所以可以通过创建一个不可见的img,通过这个img发cookie到自己的服务器。

  只要这段代码被执行,用户的cookie就会发送到别人的服务器上(。再将这段代码封装成一个js文件(web.js)。

  注:按照XSS的分类方法,上面介绍的叫做存储性XSS,危害最大。还有反射型XSS,基于DOM的XSS,本文不再展开。

  当然通过页面注入JavaScript代码,那就可以不只是借Cookie了。例如可以用这个JS代码画一个假的登录框,覆盖到真的登录框之上,让用户信以为真,这样就可以偷到真实的用户名和密码了。或者通过JavaScript构造GET,POST请求,可以模拟用户在该网站做点手脚,删点什么东西,从一个账户往另一个账户转账,都是可以的。

  将用户输入的特殊字符例如,过滤掉,这样script可能会变成script被存到数据库里。

  另一方面还可以对输出进行编码/转义操作,例如把变成,把变成,浏览器收到以后,就会认为是数据,把script作为字符串给显示出来,而不是执行后面的代码!

  一个用户的会话cookie在浏览器没有关闭的时候,是不会被删除的,所以可以换个思路,不再去偷这个cookie了,相反,可以在中构造一个领奖页面,里面包含一个连接,让用户去惦记,例如:

  如果这个用户恰好登录了icbc.com,那他的cookie还在,当他禁不住诱惑,点了这个链接后,一个转账操作就神不知鬼不觉的发生了。

  注:为了方便展示,本文举了一个非常简单的案例,银行实际的转账操作要远远比文章描述安全的多。

  除了让用户点击外,还可以使用img标签img src=黑客三兄弟的账户&money=金额,只要用户打开了这个页面,不点击任何东西,就会发生转账操作。

  如果转账操作需要form表单,是POST操作,那么可以自己创建一个表单,放到一个不可见的iframe中,用户只要一访问,就用JavaScript自动提交。

  总之,只要用户在访问icbc.com.cn的时候,访问了web.com,就极有可能中招,这种方式,只是利用了一下合法的Cookie,在服务器看来,发出的这个请求是一次合法的请求。这个就叫跨站请求伪造,Cross Site Request Forgest (CSRF)。

  1.用户在icbc.com.cn转账,显示转账的form,除了常用的字段之外,额外添加一个token:

  2.用户的转账数据发送的服务器端,icbc.com就会检查从浏览器发过来的数据中有没有token,并且这个token的值是不是和服务器端保存的相等,如果相等,就继续执行转账操作,如果不相等,那这次POST请求肯定是伪造的。

  每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

本文链接:http://xiahxiu.net/fangyunenli/227.html