XSS跨站脚本攻击原理

XSS跨站脚本攻击原理

文章目录

    • XSS跨站脚本攻击原理
      • 1.反射型 XSS 原理
      • 2.存储型 XSS 原理
      • 3.DOM 型 XSS 原理
        • 3.1 DOM 概述
        • 3.2 Document 对象,使用documen.write() 向输出流写文本
        • 3.3 关闭浏览器XSS 防护进行 XSS DOM 攻击

1.反射型 XSS 原理

验证:工作原理,这个功能类似一个留言板,输入信息后下面会增加对应的信息

输入fengzilin 会显示

XSS跨站脚本攻击原理_第1张图片

点击 submit 查 URL 链接

http://192.168.37.147/DVWA-master/vulnerabilities/xss_r/?name=fengzilin#

XSS跨站脚本攻击原理_第2张图片

根据回显信息判断出,显示文本内容是 Hello $name 输入的变量被放入 $name

添加一条 JavaScript 代码获取 cookie

<script>alert(document.cookie);</script>

XSS跨站脚本攻击原理_第3张图片

点击submit 显示结果

XSS跨站脚本攻击原理_第4张图片

我们提交的文本信息被浏览器执行了,显示出了我们的cookie 信息

按F12 查看cookie

XSS跨站脚本攻击原理_第5张图片

完全一致,关键点是通过 URL 控制了页面的输出,我们看一下 URL ,JavaScript 代码是可以通过 URL 控制页面输出,

http://192.168.37.147/DVWA-master/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28document.cookie%29%3B%3C%2Fscript%3E#

通过 burpsuite 抓包分析

XSS跨站脚本攻击原理_第6张图片

可以看出反射型 XSS 是将原来提交的语法返回来,然后浏览器在本地解析了,js所以就会弹出弹窗

2.存储型 XSS 原理

Name:fengzilin

Message:

XSS跨站脚本攻击原理_第7张图片

显示已经插入了 js 代码

XSS跨站脚本攻击原理_第8张图片

存储型 XSS 和 反射型 XSS 的区别是 XSS只会弹一次cookie 信息,存储型 XSS 每访问这个页面弹出都会弹出 cookie 信息,因为 XSS 代码已经嵌入在了 该 web 站点当中,所以每次访问都会执行

刷新一次就会出现

XSS跨站脚本攻击原理_第9张图片

接下来进入数据库查看数据存放

MariaDB [(none)]> select * from dvwa.guestbook;

XSS跨站脚本攻击原理_第10张图片

可以看到我们提交的数据被存放在数据库当中,每次用户访问页面时 Web 程序会从数据库中读取出 XSS 攻击代码,从而代码可以重复使用

也可以直接查看源代码:

按 Ctrl+ F 输入 alert 查找

XSS跨站脚本攻击原理_第11张图片

burpsuite 抓包分析

当访问该网页时,网页从数据库返回js语句,然后浏览器解析,触发XSS ,存储型的危害极大,如果有存储型漏洞,每个用户访问都会触发存储型XSS

XSS跨站脚本攻击原理_第12张图片

3.DOM 型 XSS 原理

3.1 DOM 概述

DOM Based XSS 漏洞是基于文档对象模型 (Document Objeet Model,DOM) 的一种漏洞。 它其实属于反射型 XSS 的一种,所以它也通过 URL 来进行触发 XSS 攻击。

XSS跨站脚本攻击原理_第13张图片

3.2 Document 对象,使用documen.write() 向输出流写文本

创建一个JavaScript脚本dom 网页

[root@localhost ~]# vim /var/www/html/dom.html
<html>
<body>

<script type="text/javascript">
	document.write("Hello World!")
script>

body>
html>

访问http://192.168.37.147/dom.html 发现输出文本

XSS跨站脚本攻击原理_第14张图片

3.3 关闭浏览器XSS 防护进行 XSS DOM 攻击

现在默认情况下很多浏览器都会存在 XSS 防御,比如Chrome的 XSS-Auditor 功能,我们日常使用都开启了,我们关闭

方法:

1)右击桌面图标,选择属性,复制目标中的内容

"C:\Program Files\Google\Chrome\Application\chrome.exe"

XSS跨站脚本攻击原理_第15张图片

2)在桌面空白处,右击→新建→快捷方式,在"请键入对象的位置" 输入一下内容

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-xss-auditor

XSS跨站脚本攻击原理_第16张图片

3)起一个名字:Chrome关闭XSS

XSS跨站脚本攻击原理_第17张图片

4)双击运行

image-20210328154426692

4.进入 DVWA 进行 XSS DOM 攻击

XSS跨站脚本攻击原理_第18张图片

可以看到参数在 URL 地址中是可控的

修改URL 中传递的参数为 fengzilin

http://192.168.37.147/DVWA-master/vulnerabilities/xss_d/?default=fengzilin   

XSS跨站脚本攻击原理_第19张图片

可以看到 URL 中的参数被带入到页面中浏览器执行,从而修改页面中内容变为:fengzilin

在URL中加入js脚本

http://192.168.37.147/DVWA-master/vulnerabilities/xss_d/?default=<script>alert("fengzilin");script>

XSS跨站脚本攻击原理_第20张图片

可以看到我们构造的代码都能够被执行,当然这样可能和其他两种攻击方式也没什么不同,我们切换到网页源代码中查看

XSS跨站脚本攻击原理_第21张图片

这里需要逐步点开才可以看到我们修改的信息位置,注意图片中三角形朝下的项,一次点开即可

image-20210328160652078

我们修改这一项的值为 FZL 然后回车,页面中的值也为修改为 FZL

XSS跨站脚本攻击原理_第22张图片

你可能感兴趣的:(漏洞原理,xss)