知名色情网站Brazzers 80万用户数据遭泄露

安全资讯admin 发表了文章 • 5 个评论 • 1079 次浏览 • 2016-09-07 07:32 • 来自相关话题

今天听闻某色情网站被黑了,八十万用户信息遭到泄露。吓得小编赶紧核查,发现还好不是1024,原来是Brazzers被黑了,虚惊一场。






Brazzers创建于2005年,其服务内容是为用户提供HD高清版色情电影。在2013年, Fabian Thylmann公司收购了Brazzers。可以说Brazzers这十多年来,把色情产业从社区级别做到了企业级别。然而最近,国外媒体爆料Brazzers的论坛被黑客攻击,80万个用户的信息遭到泄露,泄露的信息中包含用户的邮箱,明文密码,用户名等私人信息。

有用户指出,他们注册Brazzers账号是有其它原因的,并不是为了观看色情电影,但是这次泄露事件或许会影响到他们在现实中的生活。也许会有读者持有怀疑的态度,你注册色情网站的账号,不是看色情电影那么是为了什么?

举一个非常现实的例子,笔者也曾经做过一些约会APP的安全检测。在检测的过程中自然需要注册账号,但是这个并不能代表我需要用这个APP约会,也许注册该网站的人还有其它原因。还有用户指出他们从未登陆这个论坛,但是论坛的泄露数据中却包含他们的私人信息。

Brazzers的发言人说到:“Brazzers论坛泄露的数据是2012年的,而且当时论坛已经交给第三方机构负责管理和运营。产生漏洞的原因是vBulletin这个WEB程序,并不是Brazzers本身。“ 但是就算这个发言人再怎么“甩锅”, Brazzers用户的信息遭到泄露已经是一个事实。

*本文编译:ArthurKiller,编译来源:vice,转载须注明来自FreeBuf.COM 查看全部
今天听闻某色情网站被黑了,八十万用户信息遭到泄露。吓得小编赶紧核查,发现还好不是1024,原来是Brazzers被黑了,虚惊一场。

14731465469867.png!small_.jpg


Brazzers创建于2005年,其服务内容是为用户提供HD高清版色情电影。在2013年, Fabian Thylmann公司收购了Brazzers。可以说Brazzers这十多年来,把色情产业从社区级别做到了企业级别。然而最近,国外媒体爆料Brazzers的论坛被黑客攻击,80万个用户的信息遭到泄露,泄露的信息中包含用户的邮箱,明文密码,用户名等私人信息。

有用户指出,他们注册Brazzers账号是有其它原因的,并不是为了观看色情电影,但是这次泄露事件或许会影响到他们在现实中的生活。也许会有读者持有怀疑的态度,你注册色情网站的账号,不是看色情电影那么是为了什么?

举一个非常现实的例子,笔者也曾经做过一些约会APP的安全检测。在检测的过程中自然需要注册账号,但是这个并不能代表我需要用这个APP约会,也许注册该网站的人还有其它原因。还有用户指出他们从未登陆这个论坛,但是论坛的泄露数据中却包含他们的私人信息。

Brazzers的发言人说到:“Brazzers论坛泄露的数据是2012年的,而且当时论坛已经交给第三方机构负责管理和运营。产生漏洞的原因是vBulletin这个WEB程序,并不是Brazzers本身。“ 但是就算这个发言人再怎么“甩锅”, Brazzers用户的信息遭到泄露已经是一个事实。

*本文编译:ArthurKiller,编译来源:vice,转载须注明来自FreeBuf.COM

安全科普:流量劫持能有多大危害?

安全资讯TaeJa 发表了文章 • 5 个评论 • 651 次浏览 • 2016-09-06 23:03 • 来自相关话题

不同的劫持方式,获得的流量也有所差异。DNS 劫持,只能截获通过域名发起的流量,直接使用 IP 地址的通信则不受影响;CDN 入侵,只有浏览网页或下载时才有风险,其他场合则毫无问题;而网关被劫持,用户所有流量都难逃魔掌。

在本文中,我们通过技术原理,讲解如下问题:  - 为什么喜欢劫持网页?   - 只浏览不登陆就没事吗?   - 自动填写表单有风险吗?   - 离开劫持环境还受影响吗?   - 使用 HTTPS 能否避免劫持?   - 流量劫持能否控制我电脑?为什么喜欢劫持网页?

理论上说,劫持到用户的流量数据,也就获得相应程序的网络通信。但在现实中,数据并不代表真实内容。一些重要的网络程序,都是私有的二进制协议,以及各种加密方式。想通过流量来还原出用户的聊天信息、支付密码,几乎是不可能的。即使花费各种手段,破解出某个程序的通信协议,然而一旦程序升级改变了协议格式,或许就前功尽弃了。因此,很难找到种一劳永逸的客户端劫持方案。

然而,并非所有程序都是客户端的。一种新兴的应用模式 —— WebApp,发展是如此之快,以至于超越客户端之势。在如今这个讲究跨平台、体验好,并有云端支持的年代,WebApp 越来越火热。各种应用纷纷移植成网页版,一些甚至替代了客户端。同时,也造就了流量劫持前所未有的势头。

WebApp,其本质仍是普通的网页而已。尽管网页技术在近些年里有了很大的发展,各种新功能一再增加,但其底层协议始终没有太大的改进 —— HTTP,一种使用了 20 多年古老协议。

在 HTTP 里,一切都是明文传输的,流量在途中可随心所欲的被控制。传统程序事先已下至本地,运行时只有通信流量;而在线使用的 WebApp,流量里既有通信数据,又有程序的界面和代码,劫持简直轻而易举。

上一篇也提到,如果在户外没有 3G 信号的地方钓鱼,无法将获得的流量转发到外网。然而,使用网页这一切就迎刃而解。我们完全可以在自己的设备上搭建一个站点,留住用户发起离线攻击。对于那些连上 WiFi 能自动弹网页的设备,那就更容易入侵了。

因此,劫持网页流量成了各路黑客们的钟爱,一种可在任意网页发起 XSS 的入侵方式。








下面,开始我们的攻防之旅。

只浏览不登陆就没事吗?

每当砖家出来提醒时,总免不了这么一句:公共场合尽量不登录账号。于是,大家就认为只看网页不登陆就平安无事了。

如果是公共的电脑,那也就无所谓;否则,自己的一些账号可能就倒霉了。

在自己的设备上,大家都会记住各种账号的登录状态,反正只有自己用,也没什么大不了的。然而,在被劫持的网络里,一切皆有可能发生。即使浏览再平常不过的网页,或许一个悄无声息的间谍脚本已暗藏其中,正偷偷访问你那登录着的网页,操控起你的账号了。

听起来似乎很玄乎吧,砖家似乎也没说已登录的账号会怎么样。难道随便一个网页,就能让各种账号被控制吗?

大家都知道,HTTP 是无状态的,不像传统协议有个『会话』之类的概念。各种账号的登录状态,只能依靠浏览器的 Cookie 来实现。因此,只要有了的 Cookie 也就获得了用户账号的使用权。

和传统 XSS 攻击不同,流量劫持可以得到任何通信数据,当然也包括那些受 HttpOnly 保护的 Cookie。攻击脚本只需对某个站点发起请求,黑客即可在中途劫持到传输的 Cookie 数据。如果同时发起众多站点,就能覆盖相当一部分目标了。






这种请求未必要真正访问一次页面,仅仅将 URL 作为图片加载,将目标站点的 Cookie 送出即可。

黑客得到 Cookie,即可在自己浏览器里还原出登录状态。尽管你确实没有登录操作,但那些已登录的却能出卖你。

防范措施:访问一些重要的网站,尽量不要记住登录状态,以免 Cookie 被泄露。不过,只要网站绑定了 Cookie 和 IP 段,这招的危害程度就大幅降低了,仅凭 HttpOnly 还是很不靠谱的。
 
自动填写表单有风险吗?

使用上面的方法获得 Cookie,即使能控制账号,但其密码仍无法得知,随时都有可能失去控制权。

不过,一些用户有让浏览器自动保存密码的习惯。通过这点,我们是否能套出记住的密码来呢?

分析下浏览器是如何自动填写页面表单的。其实很简单,浏览器发现页面 URL 和表单名匹配记录里的,就自动填上了。






要是在流量可控的网络里,剥离页面所有内容只剩表单,又会如何?






保存着的密码仍能自动填上,并且可被脚本访问到!

如果我们在用户访问的页面里,创建大量的隐藏框架页,即可尝试获取各种网站保存着的账号了。(不过如今 Chrome 框架页已经不会自动填写了。具体实现和浏览器有关)。

不过,即使框架页不自动填写,但主页面总得保留该功能吧。如果发现用户某个打开着的网页很久没有交互了,可悄悄跳转到如上那样的纯表单页,无论能否获取数据,都将继续跳转,一个接一个的尝试。。。直到用户切回窗口,再恢复到原先那个页面。






由于泄露的是明文的账号和密码,即使数量不多,也能通过社工获取到用户的更多信息,最终导致更严重的泄露。

防范措施:所以无论是 Cookie 记住登录,还是浏览器自动填表,重要的账号都应慎用。 浏览器的自动填表也应增加些安全策略,例如必须有用户的交互才开始填写,规定的时间里只能填有限次。离开劫持环境还受影响吗?

或许你在想,网络再怎么不安全,离开之后就应该没事了吧。

有时在公共场合赶上免费的 WiFi,打开网页看一会新闻,是常有的事。这么短的时间里能有多大的事。不过在入侵脚本面前,一小会和长久并没太大区别。机会只要出现了,无论多么短暂都能渗透。

如果只看重眼前利益,这种短暂的入侵并没多少利用价值;但若放远目光,能让攻击在今后发起,那就不再局限于时间和空间了。因此,我们需要一个时光机,让入侵脚本穿越到用户未来的时空运行。

若用传统 XSS 的思维,这几乎无法实现。但在流量劫持面前,一切皆有可能 —— 因为我们能控制任意流量!

HTTP 缓存投毒

上一篇文章提到,但凡有缓存的地方都是大有可为的。显然,对于有着复杂的 HTTP 缓存系统来说,存在缺陷是在所难免了。这种简单的纯文本协议,几乎没有一种签名机制,来验证内容的真实性。即使页面被篡改了,浏览器也完全无法得知,甚至连同注入的脚本也一块缓存起来。

于是,我们可以将『缓存投毒』的概念,引入 HTTP 协议里。但凡具备可执行的资源,都可以通过预加载带毒的版本,将其提前缓存起来。

为了将缓存的有效期发挥到极致,我们事先在各大网站上,找出一些过期时间长、很久没有修改的资源,评估其未来变化不大的可能。






当用户打开任意一个 HTTP 网页时,注入的 XSS 代码开始预加载这些资源。由于一切流量都在控制之中,我们可以完全不走代理,而是返回自己的攻击脚本。






用户浏览器收到回复后,就将其一一缓存起来了。我们可以事先收集大量的资源地址,让用户在线的时间里,尽可能多的缓存受到感染。

未来,用户访问引用了这些资源的网站时,入侵脚本将穿越时空,从沉睡中唤醒。






只要用户不清空缓存,这些被感染的脚本始终附着在浏览器缓存里,直到用户强制刷新页面时或许才能解脱。更多细节可参考这里。

离线储存投毒

不过,有些网站使用的都是很短的缓存,上述的入侵方式似乎就无能为力了。不过,HTML5 时代带来了一项新的缓存技术 —— 离线储存。由于它没有过期时间,因此适用于任意网页的投毒!

类似的,当用户触发了我们的注入脚本之后,我们创建一个隐形的框架页,加载被感染的网页。同样,通过流量劫持,我们返回一个简单的页面,里面包含一个带有 manifest 属性的 HTML 文档,以及后期运行的脚本。






由于通过隐藏框架访问了这个页面,用户并不知情,但尽职的浏览器却将其缓存起来。

未来,用户打开被感染的网页时,浏览器直接从离线储存里取出,其中布置的脚本因此触发。

由于是个空白页面,因此需要填充上真实的网站内容。最简单的方法,就是嵌套一个原页面的框架,并在 URL 里加上随机数,确保是最新的在线内容。






因为嵌套的是同域框架,最终仍能被入侵脚本所控制。

不过,离线存储投毒的后期影响会小一些。未来用户在安全的网络里打开页面时,浏览器会再次请求 .appcache 文件。由于这个文件并不一定存在,因此浏览器很可能删除掉离线数据。

理论上说只有一次的触发机会,但它没有过期时间,适用于任意 HTTP 页面投毒。

防范措施:在不安全的场合,尽量使用『隐身模式』浏览网页。例如 Chrome 里按 Ctrl+Shift+N 就能调出,可将自己处于隔离的沙盒里。 FireFox 浏览器存储离线文件时,会有用户交互提示,提醒用户是否有这必要。也许不久后,框架页面不再被离线储存所接受,新标准随时都有可能改变。但 HTTP 缓存投毒是协议栈的缺陷,因此很难防范,下一篇会发现实际入侵效果非常理想。

使用 HTTPS 能否避免劫持?

如果从密码学的角度来说,使用了 SSL 加密的数据确实难以破解,更不用谈修改了。

然而,惹不起但总躲得起吧。虽然无法破解,但流量仍掌握在自己手中,走哪条路还是由我说的算,完全可以绕过你。

偷换证书

不同于简单的 HTTP 代理,HTTPS 服务需要一个权威机构认定的证书才算有效。自己随便签发的证书,显然是没有说服力的,HTTPS 客户端因此会质疑。

在过去,这并不怎么影响使用过程,无非弹出一个无效的证书之类的提示框。大多用户并不明白是什么情况,就点了继续,导致允许了黑客的伪证书,HTTPS 流量因此遭到劫持。






在经历越来越多的入侵事件之后,人们逐渐意识到,不能再轻易的让用户接受不信任的证书了。如今,主流浏览器对此都会给予严重的警告提示,避免用户进入伪安全站点。






如果重要的账户网站遇到这种情况,无论如何都不该继续,否则大门钥匙或许就落入黑客之手。

因此,这种偷换证书的劫持,在安全意识越来越高的今天,很难再发挥实效了。我们需要一个更隐蔽的方式来躲开加密数据。

过滤 HTTPS 跳转

事实上,在 PC 端上网很少有直接进入 HTTPS 网站的。例如支付宝网站,大多是从淘宝跳转过来,而淘宝使用的仍是不安全的 HTTP 协议。如果在淘宝网的页面里注入 XSS,屏蔽对 HTTPS 的页面访问,用 HTTP 取而代之,那么用户也就永远无法进入安全站点了。






尽管地址栏里没有出现 HTTPS 的字样,但域名看起来也是正确的,大多用户都会认为不是钓鱼网站,因此也就忽视了。

因此,只要入口页是不安全的,那么之后的页面再安全也无济于事。

当然也有一些用户通过输网址访问的,他们输入了 www.alipaly.com 就敲回车进入了。然而,浏览器并不知道这是一个 HTTPS 的站点,于是使用默认的 HTTP 去访问。不过这个 HTTP 版的支付宝的确也存在,其唯一功能就是重定向到自己 HTTPS 站点上。

劫持流量的中间人一旦发现有重定向到 HTTPS 站点的,显然不愿意让用户走这条不受自己控制的路。于是拦下重定向的命令,自己去获取重定向后的站点内容,然后再回复给用户。于是,用户始终都是在 HTTP 站点上访问,自然就可以无限劫持了。






搜索引擎劫持

事实上,HTTPS 站点还有个很大的来源 —— 搜索引擎。遗憾的是,国产搜索引擎几乎都不提供 HTTPS 服务。因此在不安全的网络里,搜索结果是不具备任何权威的。

防范措施:重要的网站必定使用 HTTPS 协议,登陆时需格外留意。国外的大型网站几乎都提供 HTTPS 服务,甚至是默认的标准。相比国内只有少数重要的服务才使用,绝大多数的信息都是在明文传输。这是为了方便什么来着,你猜。

流量劫持能否控制我电脑?

如果不考虑一些浏览器安全漏洞,理论上说网页与系统是完全隔离的,因此无需担心系统受到影响。

钓鱼插件

有时为了能让网页获得更多的在线能力,安装插件必不可少,例如支付控件、在线播放器等等。在方便使用的同时,也埋下了安全隐患。

如果是一些小网站强迫用户安装插件的,大家几乎都是置之不理。但若一些正规的大网站,提示用户缺少某些插件,并且配上一些专业的提示,相信大多都会选择安装。而这一切,通过被注入的攻击脚本完全能办到。






不过,正规的插件都是有完整的数字签名的,而伪造的很难躲过浏览器的验证,会出现各种安全提示。因此,攻击者往往使用直接下载的方式,提示用户保存并打开安装包。

页面提权

现在越来越多的应用程序,选择使用内嵌网页来简化界面的开发,在移动设备上更是普遍。

通常为了能让页面和客户端交互,赋予一些本地程序的接口供调用,因此具有了较高的权限。不过,正常情况下嵌入的都是受白名单限制的可信页面,因此不存在安全隐患。

然而在被劫持的网络里,一切明文传输的数据都不再具备可信度。同样的脚本注入,就能获得额外的权限了。






一些带有缺陷的系统,攻击脚本甚至能获得出乎意料的能力。通过之前提到的网页缓存投毒,这颗埋下的地雷随时都有可能触发。

下载程序

即使上网从不安装插件,但是下载程序还是经常需要的。由于大多数的下载网站,使用的都是 HTTP 流量,因此劫持者能轻易的修改可执行文件,将其感染上病毒或木马,甚至完全替换成另一个程序。

用户总认为从官网上下载的肯定没问题,于是就毫无顾虑的打开了。这时,入侵的不再是浏览器环境,而是能控制整个系统了。

防范措施:如果是从浏览器里下载的程序,留意是否具有数字签名,正规的厂商几乎都会提供。如果想试用一些来路不明的小程序,保存到虚拟机里使用就放心多了。未来 SPDY 技术普及的时候,就再不用担心网页劫持这些事。它将 HTTP 协议封装在加密的流量里传输,想劫持一个普通网页都很困难了。

结尾

暂时就说到这。事实上类似 XSS 的攻击方式还有很多,这里只谈了一些能和流量劫持配合使用的。利用上一篇讲述的各种劫持途径,配合本文提到的入侵方式,可以劫持不少用户了。下一篇,将演示如何利用这些原理,发起实战攻击。
 
  查看全部
不同的劫持方式,获得的流量也有所差异。DNS 劫持,只能截获通过域名发起的流量,直接使用 IP 地址的通信则不受影响;CDN 入侵,只有浏览网页或下载时才有风险,其他场合则毫无问题;而网关被劫持,用户所有流量都难逃魔掌。

在本文中,我们通过技术原理,讲解如下问题:  - 为什么喜欢劫持网页?   - 只浏览不登陆就没事吗?   - 自动填写表单有风险吗?   - 离开劫持环境还受影响吗?   - 使用 HTTPS 能否避免劫持?   - 流量劫持能否控制我电脑?为什么喜欢劫持网页?

理论上说,劫持到用户的流量数据,也就获得相应程序的网络通信。但在现实中,数据并不代表真实内容。一些重要的网络程序,都是私有的二进制协议,以及各种加密方式。想通过流量来还原出用户的聊天信息、支付密码,几乎是不可能的。即使花费各种手段,破解出某个程序的通信协议,然而一旦程序升级改变了协议格式,或许就前功尽弃了。因此,很难找到种一劳永逸的客户端劫持方案。

然而,并非所有程序都是客户端的。一种新兴的应用模式 —— WebApp,发展是如此之快,以至于超越客户端之势。在如今这个讲究跨平台、体验好,并有云端支持的年代,WebApp 越来越火热。各种应用纷纷移植成网页版,一些甚至替代了客户端。同时,也造就了流量劫持前所未有的势头。

WebApp,其本质仍是普通的网页而已。尽管网页技术在近些年里有了很大的发展,各种新功能一再增加,但其底层协议始终没有太大的改进 —— HTTP,一种使用了 20 多年古老协议。

在 HTTP 里,一切都是明文传输的,流量在途中可随心所欲的被控制。传统程序事先已下至本地,运行时只有通信流量;而在线使用的 WebApp,流量里既有通信数据,又有程序的界面和代码,劫持简直轻而易举。

上一篇也提到,如果在户外没有 3G 信号的地方钓鱼,无法将获得的流量转发到外网。然而,使用网页这一切就迎刃而解。我们完全可以在自己的设备上搭建一个站点,留住用户发起离线攻击。对于那些连上 WiFi 能自动弹网页的设备,那就更容易入侵了。

因此,劫持网页流量成了各路黑客们的钟爱,一种可在任意网页发起 XSS 的入侵方式。


1.png



下面,开始我们的攻防之旅。

只浏览不登陆就没事吗?

每当砖家出来提醒时,总免不了这么一句:公共场合尽量不登录账号。于是,大家就认为只看网页不登陆就平安无事了。

如果是公共的电脑,那也就无所谓;否则,自己的一些账号可能就倒霉了。

在自己的设备上,大家都会记住各种账号的登录状态,反正只有自己用,也没什么大不了的。然而,在被劫持的网络里,一切皆有可能发生。即使浏览再平常不过的网页,或许一个悄无声息的间谍脚本已暗藏其中,正偷偷访问你那登录着的网页,操控起你的账号了。

听起来似乎很玄乎吧,砖家似乎也没说已登录的账号会怎么样。难道随便一个网页,就能让各种账号被控制吗?

大家都知道,HTTP 是无状态的,不像传统协议有个『会话』之类的概念。各种账号的登录状态,只能依靠浏览器的 Cookie 来实现。因此,只要有了的 Cookie 也就获得了用户账号的使用权。

和传统 XSS 攻击不同,流量劫持可以得到任何通信数据,当然也包括那些受 HttpOnly 保护的 Cookie。攻击脚本只需对某个站点发起请求,黑客即可在中途劫持到传输的 Cookie 数据。如果同时发起众多站点,就能覆盖相当一部分目标了。

2.png


这种请求未必要真正访问一次页面,仅仅将 URL 作为图片加载,将目标站点的 Cookie 送出即可。

黑客得到 Cookie,即可在自己浏览器里还原出登录状态。尽管你确实没有登录操作,但那些已登录的却能出卖你。

防范措施:访问一些重要的网站,尽量不要记住登录状态,以免 Cookie 被泄露。不过,只要网站绑定了 Cookie 和 IP 段,这招的危害程度就大幅降低了,仅凭 HttpOnly 还是很不靠谱的。
 
自动填写表单有风险吗?

使用上面的方法获得 Cookie,即使能控制账号,但其密码仍无法得知,随时都有可能失去控制权。

不过,一些用户有让浏览器自动保存密码的习惯。通过这点,我们是否能套出记住的密码来呢?

分析下浏览器是如何自动填写页面表单的。其实很简单,浏览器发现页面 URL 和表单名匹配记录里的,就自动填上了。

3.png


要是在流量可控的网络里,剥离页面所有内容只剩表单,又会如何?

4.png


保存着的密码仍能自动填上,并且可被脚本访问到!

如果我们在用户访问的页面里,创建大量的隐藏框架页,即可尝试获取各种网站保存着的账号了。(不过如今 Chrome 框架页已经不会自动填写了。具体实现和浏览器有关)。

不过,即使框架页不自动填写,但主页面总得保留该功能吧。如果发现用户某个打开着的网页很久没有交互了,可悄悄跳转到如上那样的纯表单页,无论能否获取数据,都将继续跳转,一个接一个的尝试。。。直到用户切回窗口,再恢复到原先那个页面。

5.png


由于泄露的是明文的账号和密码,即使数量不多,也能通过社工获取到用户的更多信息,最终导致更严重的泄露。

防范措施:所以无论是 Cookie 记住登录,还是浏览器自动填表,重要的账号都应慎用。 浏览器的自动填表也应增加些安全策略,例如必须有用户的交互才开始填写,规定的时间里只能填有限次。离开劫持环境还受影响吗?

或许你在想,网络再怎么不安全,离开之后就应该没事了吧。

有时在公共场合赶上免费的 WiFi,打开网页看一会新闻,是常有的事。这么短的时间里能有多大的事。不过在入侵脚本面前,一小会和长久并没太大区别。机会只要出现了,无论多么短暂都能渗透。

如果只看重眼前利益,这种短暂的入侵并没多少利用价值;但若放远目光,能让攻击在今后发起,那就不再局限于时间和空间了。因此,我们需要一个时光机,让入侵脚本穿越到用户未来的时空运行。

若用传统 XSS 的思维,这几乎无法实现。但在流量劫持面前,一切皆有可能 —— 因为我们能控制任意流量!

HTTP 缓存投毒

上一篇文章提到,但凡有缓存的地方都是大有可为的。显然,对于有着复杂的 HTTP 缓存系统来说,存在缺陷是在所难免了。这种简单的纯文本协议,几乎没有一种签名机制,来验证内容的真实性。即使页面被篡改了,浏览器也完全无法得知,甚至连同注入的脚本也一块缓存起来。

于是,我们可以将『缓存投毒』的概念,引入 HTTP 协议里。但凡具备可执行的资源,都可以通过预加载带毒的版本,将其提前缓存起来。

为了将缓存的有效期发挥到极致,我们事先在各大网站上,找出一些过期时间长、很久没有修改的资源,评估其未来变化不大的可能。

6.png


当用户打开任意一个 HTTP 网页时,注入的 XSS 代码开始预加载这些资源。由于一切流量都在控制之中,我们可以完全不走代理,而是返回自己的攻击脚本。

7.png


用户浏览器收到回复后,就将其一一缓存起来了。我们可以事先收集大量的资源地址,让用户在线的时间里,尽可能多的缓存受到感染。

未来,用户访问引用了这些资源的网站时,入侵脚本将穿越时空,从沉睡中唤醒。

8.png


只要用户不清空缓存,这些被感染的脚本始终附着在浏览器缓存里,直到用户强制刷新页面时或许才能解脱。更多细节可参考这里。

离线储存投毒

不过,有些网站使用的都是很短的缓存,上述的入侵方式似乎就无能为力了。不过,HTML5 时代带来了一项新的缓存技术 —— 离线储存。由于它没有过期时间,因此适用于任意网页的投毒!

类似的,当用户触发了我们的注入脚本之后,我们创建一个隐形的框架页,加载被感染的网页。同样,通过流量劫持,我们返回一个简单的页面,里面包含一个带有 manifest 属性的 HTML 文档,以及后期运行的脚本。

9.png


由于通过隐藏框架访问了这个页面,用户并不知情,但尽职的浏览器却将其缓存起来。

未来,用户打开被感染的网页时,浏览器直接从离线储存里取出,其中布置的脚本因此触发。

由于是个空白页面,因此需要填充上真实的网站内容。最简单的方法,就是嵌套一个原页面的框架,并在 URL 里加上随机数,确保是最新的在线内容。

10.png


因为嵌套的是同域框架,最终仍能被入侵脚本所控制。

不过,离线存储投毒的后期影响会小一些。未来用户在安全的网络里打开页面时,浏览器会再次请求 .appcache 文件。由于这个文件并不一定存在,因此浏览器很可能删除掉离线数据。

理论上说只有一次的触发机会,但它没有过期时间,适用于任意 HTTP 页面投毒。

防范措施:在不安全的场合,尽量使用『隐身模式』浏览网页。例如 Chrome 里按 Ctrl+Shift+N 就能调出,可将自己处于隔离的沙盒里。 FireFox 浏览器存储离线文件时,会有用户交互提示,提醒用户是否有这必要。也许不久后,框架页面不再被离线储存所接受,新标准随时都有可能改变。但 HTTP 缓存投毒是协议栈的缺陷,因此很难防范,下一篇会发现实际入侵效果非常理想。

使用 HTTPS 能否避免劫持?

如果从密码学的角度来说,使用了 SSL 加密的数据确实难以破解,更不用谈修改了。

然而,惹不起但总躲得起吧。虽然无法破解,但流量仍掌握在自己手中,走哪条路还是由我说的算,完全可以绕过你。

偷换证书

不同于简单的 HTTP 代理,HTTPS 服务需要一个权威机构认定的证书才算有效。自己随便签发的证书,显然是没有说服力的,HTTPS 客户端因此会质疑。

在过去,这并不怎么影响使用过程,无非弹出一个无效的证书之类的提示框。大多用户并不明白是什么情况,就点了继续,导致允许了黑客的伪证书,HTTPS 流量因此遭到劫持。

11.png


在经历越来越多的入侵事件之后,人们逐渐意识到,不能再轻易的让用户接受不信任的证书了。如今,主流浏览器对此都会给予严重的警告提示,避免用户进入伪安全站点。

12.png


如果重要的账户网站遇到这种情况,无论如何都不该继续,否则大门钥匙或许就落入黑客之手。

因此,这种偷换证书的劫持,在安全意识越来越高的今天,很难再发挥实效了。我们需要一个更隐蔽的方式来躲开加密数据。

过滤 HTTPS 跳转

事实上,在 PC 端上网很少有直接进入 HTTPS 网站的。例如支付宝网站,大多是从淘宝跳转过来,而淘宝使用的仍是不安全的 HTTP 协议。如果在淘宝网的页面里注入 XSS,屏蔽对 HTTPS 的页面访问,用 HTTP 取而代之,那么用户也就永远无法进入安全站点了。

13.png


尽管地址栏里没有出现 HTTPS 的字样,但域名看起来也是正确的,大多用户都会认为不是钓鱼网站,因此也就忽视了。

因此,只要入口页是不安全的,那么之后的页面再安全也无济于事。

当然也有一些用户通过输网址访问的,他们输入了 www.alipaly.com 就敲回车进入了。然而,浏览器并不知道这是一个 HTTPS 的站点,于是使用默认的 HTTP 去访问。不过这个 HTTP 版的支付宝的确也存在,其唯一功能就是重定向到自己 HTTPS 站点上。

劫持流量的中间人一旦发现有重定向到 HTTPS 站点的,显然不愿意让用户走这条不受自己控制的路。于是拦下重定向的命令,自己去获取重定向后的站点内容,然后再回复给用户。于是,用户始终都是在 HTTP 站点上访问,自然就可以无限劫持了。

14.png


搜索引擎劫持

事实上,HTTPS 站点还有个很大的来源 —— 搜索引擎。遗憾的是,国产搜索引擎几乎都不提供 HTTPS 服务。因此在不安全的网络里,搜索结果是不具备任何权威的。

防范措施:重要的网站必定使用 HTTPS 协议,登陆时需格外留意。国外的大型网站几乎都提供 HTTPS 服务,甚至是默认的标准。相比国内只有少数重要的服务才使用,绝大多数的信息都是在明文传输。这是为了方便什么来着,你猜。

流量劫持能否控制我电脑?

如果不考虑一些浏览器安全漏洞,理论上说网页与系统是完全隔离的,因此无需担心系统受到影响。

钓鱼插件

有时为了能让网页获得更多的在线能力,安装插件必不可少,例如支付控件、在线播放器等等。在方便使用的同时,也埋下了安全隐患。

如果是一些小网站强迫用户安装插件的,大家几乎都是置之不理。但若一些正规的大网站,提示用户缺少某些插件,并且配上一些专业的提示,相信大多都会选择安装。而这一切,通过被注入的攻击脚本完全能办到。

15.png


不过,正规的插件都是有完整的数字签名的,而伪造的很难躲过浏览器的验证,会出现各种安全提示。因此,攻击者往往使用直接下载的方式,提示用户保存并打开安装包。

页面提权

现在越来越多的应用程序,选择使用内嵌网页来简化界面的开发,在移动设备上更是普遍。

通常为了能让页面和客户端交互,赋予一些本地程序的接口供调用,因此具有了较高的权限。不过,正常情况下嵌入的都是受白名单限制的可信页面,因此不存在安全隐患。

然而在被劫持的网络里,一切明文传输的数据都不再具备可信度。同样的脚本注入,就能获得额外的权限了。

16.png


一些带有缺陷的系统,攻击脚本甚至能获得出乎意料的能力。通过之前提到的网页缓存投毒,这颗埋下的地雷随时都有可能触发。

下载程序

即使上网从不安装插件,但是下载程序还是经常需要的。由于大多数的下载网站,使用的都是 HTTP 流量,因此劫持者能轻易的修改可执行文件,将其感染上病毒或木马,甚至完全替换成另一个程序。

用户总认为从官网上下载的肯定没问题,于是就毫无顾虑的打开了。这时,入侵的不再是浏览器环境,而是能控制整个系统了。

防范措施:如果是从浏览器里下载的程序,留意是否具有数字签名,正规的厂商几乎都会提供。如果想试用一些来路不明的小程序,保存到虚拟机里使用就放心多了。未来 SPDY 技术普及的时候,就再不用担心网页劫持这些事。它将 HTTP 协议封装在加密的流量里传输,想劫持一个普通网页都很困难了。

结尾

暂时就说到这。事实上类似 XSS 的攻击方式还有很多,这里只谈了一些能和流量劫持配合使用的。利用上一篇讲述的各种劫持途径,配合本文提到的入侵方式,可以劫持不少用户了。下一篇,将演示如何利用这些原理,发起实战攻击。
 
 

php array_count_values() 重复次数

编程wukong 发表了文章 • 6 个评论 • 703 次浏览 • 2016-09-06 22:49 • 来自相关话题

$array6 = [10,20,30,30,50,40,30,40,50];
function pp($array){
        //创建一个空的数组
        $newArr=[];
        //从头开始遍历数组$array
        for ($i=0; $i < count($array); $i++) {
            $a=0;
            $b=0;
            for ($j=$i; $j < count($array); $j++) {
                $keys=array_keys($newArr);//获取keys值
                //判断$array[$i]是不是在$keys数组里面
                if (in_array($array[$i], $keys)) {
                    $b=1;
                    break;
                }elseif ($array[$i]==$array[$j]) {
                    $a++;
                }
            }
            if ($b==0) {
                $newArr[(String)$array[$i]]=$a;
            }
        }
        return $newArr;
    }
    print_r(pp($array6)); 查看全部
$array6 = [10,20,30,30,50,40,30,40,50];
function pp($array){
        //创建一个空的数组
        $newArr=[];
        //从头开始遍历数组$array
        for ($i=0; $i < count($array); $i++) {
            $a=0;
            $b=0;
            for ($j=$i; $j < count($array); $j++) {
                $keys=array_keys($newArr);//获取keys值
                //判断$array[$i]是不是在$keys数组里面
                if (in_array($array[$i], $keys)) {
                    $b=1;
                    break;
                }elseif ($array[$i]==$array[$j]) {
                    $a++;
                }
            }
            if ($b==0) {
                $newArr[(String)$array[$i]]=$a;
            }
        }
        return $newArr;
    }
    print_r(pp($array6));

破解自动售货机免费喝可乐

安全资讯Shun 发表了文章 • 5 个评论 • 714 次浏览 • 2016-09-06 22:46 • 来自相关话题

我们天天见到的自动售货机,在黑客手下不要几分钟就能“免费”吐出一罐罐饮料;家里的智能插座虽然遥控家电很方便,但同时黑客控制你家也很方便……第一届XPwn大会前日在北京举办,这场未来安全探索盛会上,参赛的国内顶级“极客”们成功破解了众多知名品牌的智能硬件,让越来越依赖人工智能各种便利生活的观众们“心惊胆战”。

智能开关几分钟控制你家

摄像头变成隐私泄露“孔”
XPwn中的“Pwn”发音类似“砰”,在极客文化中是指找到硬件或软件的漏洞:“Pwn”的一声,设备或系统被攻克。在8月31日的比赛现场,“Pwn”的声音不时响起,引来阵阵惊呼。一种在国内非常知名品牌的智能硬件,有多个智能设备,比如用来控制家里电饭煲、冰箱、洗衣机等等的智能插座、多功能网关等。但是记者看到,在极客打开电脑后,输入一连串外行们看不懂的编码,很快这个智能插座就非常“听话”。

而据现场一位极客告诉记者,其实现在很多智能家居的东西存在安全漏洞,比如指纹安全锁,很可能被黑客攻陷后就把主人锁在门外;还有一些物联网的设备,比如家庭摄像头等等,说不定就会被黑客从后台侵入,原来用来保护家里安全的摄像头,结果变成暴露自己隐私的通道。甚至高端黑客还能轻松侵入你的电脑和手机,让这些设备的摄像头为自己所用。

国内大多售货机都有漏洞

十多种途径可免费喝可乐

近年来,自动售货机越来越普及,地铁里,公交站台上,几乎遍地都是,既节省了人力,也方便了顾客。但是少有人知道的是,大部分自动售货机存在安全漏洞。在此次XPwn大会上,参赛的极客选手通过现场写代码的形式,对放置在现场的自动售货机进行测试。结果发现,自动售货机在硬件端、设备APP端、服务端均存在大量的漏洞,据现场极客说就有十多种途径可以“黑”了自动售货机,其中有些非常简单,利用这些漏洞,最终可以实现少花钱,甚至不花钱购买商品,只要简单操作下,不用付款,一罐罐可乐就能自动滚出来了。


听完是不是有点心动,想知道漏洞在哪?不用费心了,根据XPwn的赛制,选手发现漏洞后,要第一时间联系厂商,并帮助解决漏洞。
  查看全部
我们天天见到的自动售货机,在黑客手下不要几分钟就能“免费”吐出一罐罐饮料;家里的智能插座虽然遥控家电很方便,但同时黑客控制你家也很方便……第一届XPwn大会前日在北京举办,这场未来安全探索盛会上,参赛的国内顶级“极客”们成功破解了众多知名品牌的智能硬件,让越来越依赖人工智能各种便利生活的观众们“心惊胆战”。

智能开关几分钟控制你家

摄像头变成隐私泄露“孔”
XPwn中的“Pwn”发音类似“砰”,在极客文化中是指找到硬件或软件的漏洞:“Pwn”的一声,设备或系统被攻克。在8月31日的比赛现场,“Pwn”的声音不时响起,引来阵阵惊呼。一种在国内非常知名品牌的智能硬件,有多个智能设备,比如用来控制家里电饭煲、冰箱、洗衣机等等的智能插座、多功能网关等。但是记者看到,在极客打开电脑后,输入一连串外行们看不懂的编码,很快这个智能插座就非常“听话”。

而据现场一位极客告诉记者,其实现在很多智能家居的东西存在安全漏洞,比如指纹安全锁,很可能被黑客攻陷后就把主人锁在门外;还有一些物联网的设备,比如家庭摄像头等等,说不定就会被黑客从后台侵入,原来用来保护家里安全的摄像头,结果变成暴露自己隐私的通道。甚至高端黑客还能轻松侵入你的电脑和手机,让这些设备的摄像头为自己所用。

国内大多售货机都有漏洞

十多种途径可免费喝可乐


近年来,自动售货机越来越普及,地铁里,公交站台上,几乎遍地都是,既节省了人力,也方便了顾客。但是少有人知道的是,大部分自动售货机存在安全漏洞。在此次XPwn大会上,参赛的极客选手通过现场写代码的形式,对放置在现场的自动售货机进行测试。结果发现,自动售货机在硬件端、设备APP端、服务端均存在大量的漏洞,据现场极客说就有十多种途径可以“黑”了自动售货机,其中有些非常简单,利用这些漏洞,最终可以实现少花钱,甚至不花钱购买商品,只要简单操作下,不用付款,一罐罐可乐就能自动滚出来了。


听完是不是有点心动,想知道漏洞在哪?不用费心了,根据XPwn的赛制,选手发现漏洞后,要第一时间联系厂商,并帮助解决漏洞。
 

浅谈DNS放大攻击

协议安全pygain 发表了文章 • 8 个评论 • 953 次浏览 • 2016-09-06 20:37 • 来自相关话题

攻击前的准备:
攻击者对所有要使用的DNS服务器进行DNS解析器IP地址欺骗,将询问源地址变为受害者的IP地址,使所有的DNS服务器都将询问回复发送到受害者服务器。
 
 
攻击者找到含有大量DNS记录的网络域名,攻击者向DNS服务器询问所有的域名,此时DNS会产生大量的询问回复数据包,当数据流量过大时,会进行分包回复。
 
攻击开始:
几台电脑使用高频率对数个DNS服务器进行DNS询问,要求服务器返回之前定好的那些有大量DNS记录的域名;DNS找到并发送给DNS解析器。由于IP地址为受害者IP,所有的询问回复都流向受害者IP。
有时这样的询问回复的效果会将询问时的流量放大100赔。
由于DNS发送给受害者的是大量的子数据包,受害者需要进行重组数据包的过程,消耗大量资源,导致服务器不能处理正常的访问请求。
配图





  查看全部
攻击前的准备:
攻击者对所有要使用的DNS服务器进行DNS解析器IP地址欺骗,将询问源地址变为受害者的IP地址,使所有的DNS服务器都将询问回复发送到受害者服务器。
 
 
攻击者找到含有大量DNS记录的网络域名,攻击者向DNS服务器询问所有的域名,此时DNS会产生大量的询问回复数据包,当数据流量过大时,会进行分包回复。
 
攻击开始:
几台电脑使用高频率对数个DNS服务器进行DNS询问,要求服务器返回之前定好的那些有大量DNS记录的域名;DNS找到并发送给DNS解析器。由于IP地址为受害者IP,所有的询问回复都流向受害者IP。
有时这样的询问回复的效果会将询问时的流量放大100赔。
由于DNS发送给受害者的是大量的子数据包,受害者需要进行重组数据包的过程,消耗大量资源,导致服务器不能处理正常的访问请求。
配图

dns.jpg

 

php实现“计算摆线”,可以当做php的小练习!

编程katerina 发表了文章 • 7 个评论 • 1035 次浏览 • 2016-09-06 19:22 • 来自相关话题

一、什么是摆线?
  摆线(cycloid)是数学中众多的迷人曲线之一.它是这样定义的:一个圆沿一直线缓慢地滚动,则圆上一固定点所经过的轨迹称为摆线。ps:来自百度百科
二、计算摆线的公式
  x=r; y=rr为圆的半径, t是圆的半径所经过的弧度(滚动角),当t由0变到2π时,动点就画出了摆线的一支,称为一拱。
三、实现源码
 
  输入“滚动角”和“半径”就能算出它的摆线,执行结果的截图如下:




 
<html>
<head>
<meta http-equiv="content-type" content="text/html ; charset=utf-8 ; "/><!-- 设置网页代码 -->
<title>计算摆线 php</title>
</head>
<body style="background-color: #6b5db0"></body>
<h3 style="color: #06b5db; text-align: left">php……………………计算摆线</h3>
<form style="color: #f6b5db; text-align: left" method="post">
半径:<input type = 'number_format' name='fnumr' />
角度:<input type = 'number_format' name='fnumb' />
<input type="submit" /> <br />

<?php
@$r = $_POST['fnumr'];
@$b = $_POST['fnumb'];
$pi = M_PI ;
echo " pi = " . $pi . "<br>" ;//输出pi值//
echo " r = " . $r . "<br>" ;
echo "角度:x;y" . "<br>" ;
$t = $b * $pi / 180 ;
echo "*[i][b][/i]" . $t . "[/b]***" ;
$x = $r * ( $t -sin($t));
$y = $r * (1- cos($t )) ;
echo $b . "^ : x = " . $x . ": y = " . $y . "<br>" . "<br>" ;//输出定值结果;
echo "特征数值 角度 :x:y" . "<br>" ;
for ( $a = 0; $a <= 12; $a++ )
{
$c = $a * 30 ;
$t = $c * $pi / 180 ;
$x = $r * ( $t - sin($t )) ;
$y = $r * (1 - cos($t )) ;
echo $c . "^ : x = " . $x . ": y = " . $y ."<br>" ;//输出特征结果//
}

?>
  代码里我都加了注释,假如有看不懂的,可以在评论区提问哦 查看全部
一、什么是摆线?
  摆线(cycloid)是数学中众多的迷人曲线之一.它是这样定义的:一个圆沿一直线缓慢地滚动,则圆上一固定点所经过的轨迹称为摆线。ps:来自百度百科
二、计算摆线的公式
  x=r; y=rr为圆的半径, t是圆的半径所经过的弧度(滚动角),当t由0变到2π时,动点就画出了摆线的一支,称为一拱。
三、实现源码
 
  输入“滚动角”和“半径”就能算出它的摆线,执行结果的截图如下:
jsbx.PNG

 
<html>
<head>
<meta http-equiv="content-type" content="text/html ; charset=utf-8 ; "/><!-- 设置网页代码 -->
<title>计算摆线 php</title>
</head>
<body style="background-color: #6b5db0"></body>
<h3 style="color: #06b5db; text-align: left">php……………………计算摆线</h3>
<form style="color: #f6b5db; text-align: left" method="post">
半径:<input type = 'number_format' name='fnumr' />
角度:<input type = 'number_format' name='fnumb' />
<input type="submit" /> <br />

<?php
@$r = $_POST['fnumr'];
@$b = $_POST['fnumb'];
$pi = M_PI ;
echo " pi = " . $pi . "<br>" ;//输出pi值//
echo " r = " . $r . "<br>" ;
echo "角度:x;y" . "<br>" ;
$t = $b * $pi / 180 ;
echo "*[i][b][/i]" . $t . "[/b]***" ;
$x = $r * ( $t -sin($t));
$y = $r * (1- cos($t )) ;
echo $b . "^ : x = " . $x . ": y = " . $y . "<br>" . "<br>" ;//输出定值结果;
echo "特征数值 角度 :x:y" . "<br>" ;
for ( $a = 0; $a <= 12; $a++ )
{
$c = $a * 30 ;
$t = $c * $pi / 180 ;
$x = $r * ( $t - sin($t )) ;
$y = $r * (1 - cos($t )) ;
echo $c . "^ : x = " . $x . ": y = " . $y ."<br>" ;//输出特征结果//
}

?>
  代码里我都加了注释,假如有看不懂的,可以在评论区提问哦

路由器现新漏洞:黑客远程劫持网络连接

安全资讯Shun 发表了文章 • 4 个评论 • 630 次浏览 • 2016-09-06 18:53 • 来自相关话题

近日,安全专家发现Inteno家用路由器中,可能存在一个安全漏洞。该漏洞会导致黑客可以远程对家中的路由器远程劫持和监控,并且将路由器的固件改造成黑客自制的版本,从而完全接管家中联网的设备。一旦这个漏洞被利用,用户通过自己家中的设备上网,将会跳转到黑客设置好的钓鱼网站,自己的个人隐私、社交网络账号和网银信息等都有被窃取的风险。
我们家中的路由器,通常与制造商的相关服务器进行通信,从而接收到最新的系统升级固件。这种更新方式,有一些Inteno路由器的型号不会验证服务器的证书,导致黑客可以干扰路由器与服务器之间的通信。从而诱导路由器与黑客自己组建的更新服务器通信,让路由器获取被污染的固件。路由器一旦更新到黑客自己的固件,用户所有的上网行为和网络流量都难逃其监控。
 
尤其是现在每个家庭不光是电脑接入路由器,智能手机、平板电脑、电视、智能家居设备都连上了WiFi,一旦路由器出现问题,这些设备都存在被攻击的安全风险。尤其是像用户名和密码为“admin”,或密码为“123456”这类简单密码的路由器,非常容易遭到破解。自己的个人信息和生活方式,将全部处在黑客的监控之下,非常可怕。
 
在此,我们建议大家及时更新自己家中无线路由器的固件。如果不相信路由器的自行升级,可至产品官网下载最新的官方固件,再进行本地升级工作。升级完成后,立即进入路由器的管理后台,把设置中的“远程管理”功能关闭。最后,我们还需要修改登录路由器管理后台的账户名称和密码,尽量使用复杂的用户名和密码,不使用默认的用户名和密码,提高安全等级。 查看全部
近日,安全专家发现Inteno家用路由器中,可能存在一个安全漏洞。该漏洞会导致黑客可以远程对家中的路由器远程劫持和监控,并且将路由器的固件改造成黑客自制的版本,从而完全接管家中联网的设备。一旦这个漏洞被利用,用户通过自己家中的设备上网,将会跳转到黑客设置好的钓鱼网站,自己的个人隐私、社交网络账号和网银信息等都有被窃取的风险。
我们家中的路由器,通常与制造商的相关服务器进行通信,从而接收到最新的系统升级固件。这种更新方式,有一些Inteno路由器的型号不会验证服务器的证书,导致黑客可以干扰路由器与服务器之间的通信。从而诱导路由器与黑客自己组建的更新服务器通信,让路由器获取被污染的固件。路由器一旦更新到黑客自己的固件,用户所有的上网行为和网络流量都难逃其监控。
 
尤其是现在每个家庭不光是电脑接入路由器,智能手机、平板电脑、电视、智能家居设备都连上了WiFi,一旦路由器出现问题,这些设备都存在被攻击的安全风险。尤其是像用户名和密码为“admin”,或密码为“123456”这类简单密码的路由器,非常容易遭到破解。自己的个人信息和生活方式,将全部处在黑客的监控之下,非常可怕。
 
在此,我们建议大家及时更新自己家中无线路由器的固件。如果不相信路由器的自行升级,可至产品官网下载最新的官方固件,再进行本地升级工作。升级完成后,立即进入路由器的管理后台,把设置中的“远程管理”功能关闭。最后,我们还需要修改登录路由器管理后台的账户名称和密码,尽量使用复杂的用户名和密码,不使用默认的用户名和密码,提高安全等级。

那些年我们踩得那些shell坑(二)

SHELL脚本ttgo2 发表了文章 • 6 个评论 • 887 次浏览 • 2016-09-06 17:39 • 来自相关话题

0x01 测试环境
 
OS:red hat 6.8
shell: bash shell
 
0x02 字符串“迷踪拳”
 
比较字符串是否相等?具体情况代码,,(看不懂的小白自行脑补。。)
 
#!/bin/bash
str1="tom"
str2="cat"
if [ "$str1"=="$str2" ]; then
echo "string is same"
else
echo "string is no same"
fi
 
 
0x03 测试结果
 
结果是什么呢?大家思考一下在往下看结果。。。。





 
0x04 坑位置
 
问题发生那里?大家是否可以自己思考一下?,有明白的可以抢先回答,稍后给大家公布答案?
 
0x05 答案公布
 
if 判断字符串的时候,记得在“==”两边加上空格
 
#!/bin/bash
str1="tom"
str2="cat"
if [ "$str1" == "$str2" ]; then
echo "string is same"
else
echo "string is no same"
fi
  查看全部
0x01 测试环境
 
OS:red hat 6.8
shell: bash shell
 
0x02 字符串“迷踪拳”
 
比较字符串是否相等?具体情况代码,,(看不懂的小白自行脑补。。)
 
#!/bin/bash
str1="tom"
str2="cat"
if [ "$str1"=="$str2" ]; then
echo "string is same"
else
echo "string is no same"
fi
 
 
0x03 测试结果
 
结果是什么呢?大家思考一下在往下看结果。。。。

QQ截图20160906173432.png

 
0x04 坑位置
 
问题发生那里?大家是否可以自己思考一下?,有明白的可以抢先回答,稍后给大家公布答案?
 
0x05 答案公布
 
if 判断字符串的时候,记得在“==”两边加上空格
 
#!/bin/bash
str1="tom"
str2="cat"
if [ "$str1" == "$str2" ]; then
echo "string is same"
else
echo "string is no same"
fi

 

那些年我们踩得那些shell坑(一)

SHELL脚本ttgo2 发表了文章 • 12 个评论 • 956 次浏览 • 2016-09-06 09:49 • 来自相关话题

0x1 环境介绍
 
  操作系统:red hat 6.8
 
  shell 类型:bash shell
 
0x2需求介绍
  
  循环输出目录下的".txt"文件(很简单吧。。。^^),那就边做边看吧。。。下面是目录下的文件
[root@localhost test]# ll

总用量 4

-rw-r--r--. 1 root root  0  8月 24 21:01 1- re.txt

-rw-r--r--. 1 root root  0  8月 24 21:01 2- re.txt

-rw-r--r--. 1 root root  0  8月 24 21:17 3.mp3

-rw-r--r--. 1 root root  0  8月 24 21:01 3- re.txt

-rw-r--r--. 1 root root  0  8月 24 21:17 4.mp3

-rwxr-xr-x. 1 root root 44  8月 24 21:09 for.sh

[root@localhost test]# 

0x3脚本开写, 如下;
 
#!/bin/bash
for i in `ls *.txt`;
do
echo $i
done

0x4运行结果,如下;
 
[root@localhost test]# ./for.sh 

1-

re.txt

2-

re.txt

3-

re.txt
 
这是什么鬼。。。跟自己想的完全不一样了
 
0x5坑位置
 
为什么会出现这样的问题呢? 因为for in 是根据空白符来分词的。。 是不是明白了?我们的文件名中间有空格,导致了这个问题
 
0x6 调整姿势
 
增加双引号,,改一下脚本,看看是否OK?
 
[root@localhost test]# cat for.sh 

#!/bin/bash

for i in "`ls *.txt`";

do

echo $i

done
 
测试结果

[root@localhost test]# ./for.sh 

1- re.txt 2- re.txt 3- re.txt    -----成了一个整体输出了,也不对
 
 
 
0x7 一起来
 
大家自己试试,,,稍后公布答案,,踊跃参加呀。。。。。
 
 0x8 答案揭晓 
 
#!/bin/bash
for i in *.txt;
do
echo $i
done
 
  查看全部
0x1 环境介绍
 
  操作系统:red hat 6.8
 
  shell 类型:bash shell
 
0x2需求介绍
  
  循环输出目录下的".txt"文件(很简单吧。。。^^),那就边做边看吧。。。下面是目录下的文件
[root@localhost test]# ll

总用量 4

-rw-r--r--. 1 root root  0  8月 24 21:01 1- re.txt

-rw-r--r--. 1 root root  0  8月 24 21:01 2- re.txt

-rw-r--r--. 1 root root  0  8月 24 21:17 3.mp3

-rw-r--r--. 1 root root  0  8月 24 21:01 3- re.txt

-rw-r--r--. 1 root root  0  8月 24 21:17 4.mp3

-rwxr-xr-x. 1 root root 44  8月 24 21:09 for.sh

[root@localhost test]# 

0x3脚本开写, 如下;
 
#!/bin/bash
for i in `ls *.txt`;
do
echo $i
done

0x4运行结果,如下;
 
[root@localhost test]# ./for.sh 

1-

re.txt

2-

re.txt

3-

re.txt

 
这是什么鬼。。。跟自己想的完全不一样了
 
0x5坑位置
 
为什么会出现这样的问题呢? 因为for in 是根据空白符来分词的。。 是不是明白了?我们的文件名中间有空格,导致了这个问题
 
0x6 调整姿势
 
增加双引号,,改一下脚本,看看是否OK?
 
[root@localhost test]# cat for.sh 

#!/bin/bash

for i in "`ls *.txt`";

do

echo $i

done
 
测试结果

[root@localhost test]# ./for.sh 

1- re.txt 2- re.txt 3- re.txt    -----成了一个整体输出了,也不对
 
 
 
0x7 一起来
 
大家自己试试,,,稍后公布答案,,踊跃参加呀。。。。。
 
 0x8 答案揭晓 
 

#!/bin/bash
for i in *.txt;
do
echo $i
done
 
 

论坛发起问题不能添加附件和图片

安全资讯kakaxi 回复了问题 • 7 人关注 • 6 个回复 • 1013 次浏览 • 2016-09-05 20:30 • 来自相关话题