XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端执行”。有人将XSS攻击分为三种,分别是:
1、Reflected XSS(基于反射的XSS攻击)
2、Stored XSS(基于存储的XSS攻击)
3、DOM-based or local XSS(基于DOM或本地的XSS攻击)
Reflected XSS
基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击。
例子:
1、做个假设,当亚马逊在搜索书籍,搜不到书的时候显示提交的名称。
2、在搜索框搜索内容,填入“”, 点击搜索。
3、当前端页面没有对返回的数据进行过滤,直接显示在页面上, 这时就会alert那个字符串出来。
4、进而可以构造获取用户cookies的地址,通过QQ群或者垃圾邮件,来让其他人点击这个地址:
PS:这个地址当然是没效的,只是举例子而已。
结论:
如果只是1、2、3步做成功,那也只是自己折腾自己而已,如果第4步能做成功,才是个像样的XSS攻击。
开发安全措施:
1. 前端在显示服务端数据时候,不仅是标签内容需要过滤、转义,就连属性值也都可能需要。
2. 后端接收请求时,验证请求是否为攻击请求,攻击则屏蔽。
例如:
转义
属性:
如果一个input的value属性值是
就可能出现
点击input导致攻击脚本被执行,解决方式可以对script或者双引号进行过滤。
基于存储的XSS攻击,是通过发表带有恶意跨域脚本的帖子/文章,从而把恶意脚本存储在 服务器 ,每个访问该帖子/文章的人就会触发执行。
例子:
1. 发一篇文章,里面包含了恶意脚本
2. 后端没有对文章进行过滤,直接保存文章内容到数据库。
3. 当其他看这篇文章的时候,包含的恶意脚本就会执行。
出现这种情况。
结论:
后端尽可能对提交数据做过滤,在场景需求而不过滤的情况下,前端就需要做些处理了。
开发安全措施:
1. 首要是服务端要进行过滤,因为前端的校验可以被绕过。
2. 当服务端不校验时候,前端要以各种方式过滤里面可能的恶意脚本,例如script标
签,将特殊字符转换成HTML编码。
DOM-based or local XSS
基于DOM或本地的XSS攻击。一般是提供一个免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本或者是直接返回一个钓鱼页面,从而植入恶意脚本。这种直接存在于页面,无须经过服务器返回就是基于本地的XSS攻击。
例子1:
1. 提供一个免费的wifi。
2. 开启一个特殊的DNS服务,将所有域名都解析到我们的电脑上,并把Wifi的DHCP-DNS设置为我们的电脑IP。
3. 之后连上wifi的用户打开任何网站,请求都将被我们截取到。我们根据http头中的host字段来转发到真正服务器上。

4. 收到服务器返回的数据之后,我们就可以实现网页脚本的注入,并返回给用户。
5. 当注入的脚本被执行,用户的浏览器将依次预加载各大网站的常用脚本库。
PS:例子和图片来自,不是我写的,请注意!
这个其实就是wifi流量劫持,中间人可以看到用户的每一个请求,可以在页面嵌入恶意代码,使用恶意代码获取用户的信息,可以返回钓鱼页面。
例子2:
1. 还是提供一个免费wifi
2. 在我们电脑上进行抓包
3. 分析数据,可以获取用户的微信朋友圈、邮箱、社交网站帐号数据(HTTP)等。
PS:这个是我的测试,在51job页面登录时进行抓包,可以获取帐号密码。
结论:
这攻击其实跟网站本身没有什么关系,只是数据被中间人获取了而已,而由于HTTP是明文传输的,所以是极可能被窃取的。
开发安全措施:
1. 使用HTTPS!就跟我前面《HTTP与HTTPS握手的那些事》这篇文章说的,HTTPS会在请求数据之前进行一次握手,使得客户端与服务端都有一个私钥,服务端用这个私钥加密,客户端用这个私钥解密,这样即使数据被人截取了,也是加密后的数据。
总结
XSS攻击的特点就是:尽一切办法在目标网站上执行非目标网站上原有的脚本(某篇文章说的)。本地的XSS攻击的示例2其实不算XSS攻击,只是简单流量劫持。前两种XSS攻击是我们开发时候要注意的,而流量劫持的则可以使用HTTPS提高安全性。
cooki欺骗攻击除了用x-scan还能用什么
即Cross Site Script Execution(通常简写为XSS)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。 业界对跨站攻击的定义如下:“跨站攻击是指入侵者在远程WEB页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。 ”由于HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。 如这句简单的Java脚本就能轻易获取用户信息:alert(),它会弹出一个包含用户信息的消息框。 入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍做分析便获取了用户的敏感信息。
什么是phpinfo xss跨站脚本攻击漏洞?
说明: php是一款被广泛使用的编程语言,可以被嵌套在html里用做web程序开发。 phpinfo()是用来显示当前php环境的一个函数,许多站点和程序都会将phpinfo放在自己的站点上或者在程序里显示,但是phpinfo里存在一些安全问题,导致精心构造数据就可以产生一个跨站脚本漏洞,可以被用来进行攻击。 漏洞成因: phpinfo页面对输入的参数都做了详细的过滤,但是没有对输出的进行charSet的指定,而在一些浏览器里如IE7里,你可以让它自动选择编码或者通过一个iframe页面给它指定编码,这样就可以饶过phpinfo的过滤而产生一个跨站脚本漏洞。
...世界上最好的车是什么?
世界上最贵的车谁能说出世界上最贵的车是哪一辆?;劳斯莱斯 银魅,价值一亿英镑(13亿-15.5亿人民币,因汇率经常都在变化);据它的主人说:“如果把他看成艺术品,它值一亿英镑或许更高,因为世界著名艺术大师的绘画作品有不少都在一亿美元左右,绘画作品只能看,我的劳斯莱斯不但能看而且能开动;但它绝非是世界上最好的汽车,如果把它看成一辆一般的汽车,它可能只值395镑,可能会还少一点”;劳斯莱斯 银幽和德国大众的派克峰概念车,它们的价值都在2.7亿人民币左右,但银色幽灵是以英镑报价,派克峰是以欧元报价,英镑在高位时,银色幽灵价值会超过派克峰达3亿多,派克峰属概念车,价值含量中有极高的炒作成份,2.7亿人民币的价值有很大的夸大成份,但它真的的价值我就不好评说了,仁者见仁,智者风智!还有,劳斯莱斯 银云、银魂、美国加利福尼亚州伯班克市杰·奥尔伯格设计的世界上最长的汽车价值几何,能不能和在北京成交天价劳斯莱斯相比呢?;布加迪威龙,在网上报价多种多样,有两千万欧元的,有70万英镑(按最近汇率,约值1034万人民币,不含关税),还有报价1150万欧元的,有直接打出来,值1.2亿人民币的,天价,我手头关于布加迪威龙的报价资料比较有限,但凭我这么多年对世界高中档车的研究,可以得出结论,布加迪威龙的最高报价不会高于180万美元,或许还要低一些。 可以想一下,天下有没有人会花一个天价去买一张今年发行的非常好,发行量比较少但绝非孤品的邮票。 我在一个论谈上看到一个版主的介绍的汽车,全是高速跑车,也不乏有一两部概念车,价格可吓人啦,最低的也不少于120万美元,最高的达250万美元,也不知道这些价是谁定的,也不知道这些达官贵人纨绔子弟肯不肯按这位兄弟出的价买这些车。 对汽车限量推出的也不是没有,但限量的汽车的价格最高不会高于当世最顶级汽车的价格的10倍,一般多为当世顶级汽车价格的2-3倍。 最理性的消费规律,当世最顶级的汽车(内外设计很好很科学很人性化,发行量少,速度极快,提速也快,其它科技含量极高)的最高价为100-150万美元,可以得出结论,新车的最高价不会高于1500万美元,但试问天下有几人肯出1500万来买一辆新车,盖茨不会这么做的,阿布拉莫维奇会不会我就不得而知了,可天下有几个阿布拉莫维奇,阿布拉莫维奇这种人一百万人里可能才能找一个,汽车毕竟不是私人飞机!.据许多资料显示,1931 布加迪 Royale Kellner(可能是布加迪威龙?)是交易成功的汽车中最贵的(1987年成交,870万美元),但今天它的收藏价值远不及劳斯莱斯银鬼,该车现属劳斯莱斯公司所有,并不是在哪个收藏家那里,估价超过1亿英镑.但还有一些资料显示,有一部上世纪50年代产的奔驰的交易价超过2100万美元,但交易时间上看,这车还算不上古董车,大约交易时间为上世纪六七十年代,可信度不高.
发表评论