XSS漏洞-跨站脚本攻击介绍(一)

1.1 反射型XSS

这个功能类似一个留言板, 输入信息后下面会增加对应的信息。

1.1.1 原理演示

1、输入文本信息后页面汇总会添加我们输入的文本信息:

图片[1]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

2、根据4中回显信息判断出显示的文本内容是Hello $name,我们输入的信息被存放在$name变量中。

3、我们添加一条JavaScript代码获取cookie:

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

图片[2]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

4、查看浏览器中cookie,与获取到的cookie一致。

5、关键点是在通过url控制了页面的输出。URL中JavaScript代码是可以通过URL控制页面输出的:

http://192.168.10.159/DVWA/vulnerabilities/xss_r/?name=%3Cscript%3E+alert%28document.cookie%29%3B+%3C%2Fscript%3E#

1.2 存储型XSS

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

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

1.2.1 原理演示

1、在留言板中插入JS脚本:

图片[3]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

2、后面每次访问该页面都会执行JS脚本,弹出cookie信息:

图片[4]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

3、查看数据库数据:

MariaDB [dvwa]> select * from dvwa.guestbook;
+------------+--------------------------------------------+------+
| comment_id | comment                                    | name |
+------------+--------------------------------------------+------+
|          1 | This is a test comment.                    | test |
|          2 | <script> alert(document.cookie); </script> | leon |
+------------+--------------------------------------------+------+
3 rows in set (0.00 sec)

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

1.3 DOM型XSS原理

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

1.3.1 原理演示

图片[5]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

1、通过3可以看到参数在URL地址中是可控的,修改URL中传递的参数为leon , 将光标停留在地址栏上,按下回车,提交数据:

http://192.168.10.159/DVWA/vulnerabilities/xss_d/?default=leon

图片[6]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

2、可以看到URL中的参数被带入到页面中被浏览器执行,从而修改页面中的内容变为leon,在url中加入JS脚本:

http://192.168.10.159/DVWA/vulnerabilities/xss_d/?default=<script> alert("leon"); </script>

图片[7]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

3、可以看到我们构造的代码都能够被执行。

1.3.2 high级别DOM型XSS攻击

1.3.2.1  分析源码

代码中定义了一个白名单,我们只能选择白名单的内容才可以,输入其他字符无效。

图片[8]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

1.3.2.2  构造payload

注入思路:#符号之后的代码不会被发送到服务器,也就是说代码没有被传递到服务器端,但是在本地页面已经加载。

http://192.168.10.159/DVWA/vulnerabilities/xss_d/?default=English#<script>alert("leon")</script>

1.3.2.3  执行payload

图片[9]|XSS漏洞-跨站脚本攻击介绍(一)|leon的博客

温馨提示:本文最后更新于2022-12-20 20:57:35,已超过486天没有更新。某些文章具有时效性,若文章内容或图片资源有错误或已失效,请联系站长。谢谢!
转载请注明本文链接:https://blog.leonshadow.cn/763482/2524.html
© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享