XSS注入——DOM型XSS

news/2024/10/18 8:34:24/

 DOM型xss

XSS根据恶意脚本的传递方式可以分为3种,分别为反射型、存储型、DOM型,前面两种恶意脚本都会经过服务器端然后返回给客户端,相对DOM型来说比较好检测与防御,而DOM型不用将恶意脚本传输到服务器在返回客户端,这就是DOM型和反射、存储型的区别

DOM型xss可以在前端通过js渲染来完成数据的交互,达到插入数据造成xss脚本攻击,且不经过服务器,所以即使抓包无无法抓取到这里的流量。

它是基于DoM文档对象的一种漏洞,并且DOM型XSS是基于JS上的,并不需要与服务器进行交互。

DOM型ⅩSS攻击中,服务器在返回HTML文档的时候,是不包含恶意脚本的;恶意脚本是在其执行了非恶意脚本后,被注入到文档里的。通过JS脚本对对文档对象进行编辑,从而修改页面的元素。也就是说,客户端的脚本程序可以DOM动态修改页面的内容,从客户端获取DOM中的数据并在本地执行。由于DOM是在客户端修改节点的,所以基于DOM型的XSS漏洞不需要与服务器端交互,它只发生在客户端处理数据的阶段。

这里推荐一个大佬的博客 是关于dom文档的相关知识

DOM(文档对象模型)学习_dom文档_漫山谷的博客-CSDN博客

接下来利用皮卡丘靶场做一下这三种xss注入

皮卡丘靶场解决问题

我是用phpstudy来进行搭建的 新建了一个数据库

 

这里依据我出现的问题来进行解答

1.靶场未安装

进来就是这个界面  做题时也会出现  Table 'pikachu.users' doesn't exist

可以访问ip/pikachu/install.php 进行初始化安装

2. xss后台无法登录 分两种情况

1.Unknown database 'pkxss' in D:\phpstudy_pro\WWW\pikachu\pkxss\index.php on line 10

出现这种类似的是因为你的pikachu\pkxss\inc里的config.inc.php中的DBNAME没有修改

比如我的DBNAME是pikachu 那就需要改成pikachu

 2.Access denied for user '123'@'' to database 'pkxss' in D:\phpstudy_pro\WWW\pikachu\pkxss\index.php on line 10

出现这种类似的事因为你的前端数据库连接但是可能后端的没连接

pikachu的前端后端都需要连同一个数据库,但是用的两个配置文件,两个配置文件都需要修改参数。只要都修改了就可以了

3.xss后台登录失败

也是因为没有进行初始化的原因

进入install.php 进行初始化就可以了

 1.反射型(get)

尝试普通注入 <script>alert()</script> 但是发现字符长度被限制了

f12源代码 找到修改长度的地方(要是正常找很难找到,所以可以点击输入框,右击鼠标点击检查

找到了 修改长度到100

 接着输入<script>alert('11')</script>

完成

2.反射型xss(post)

先看提示----为了能够让你练习xss获取cookie,我们还是登陆一下,账号admin/123456

登陆进去之后,输入 <script>alert(document.cookie)</script> (这里用document.cookie的原因是因为靶场想让我们练习xss获取cookie  而通过 document.cookie 可以获取与设置 cookie 。)

 成功注入

3.存储型xss

 看到无用提示

 发现这个没什么不同, 依然输入<script>alert(document.cookie)</script> 就可以

4.DOM型xss

 先看提示 说让我们先搞懂dom是什么

输入 <script>alert(111)</script>  试试

发现不行

看看源代码

 

 

 function domxss(){
                        var str = document.getElementById("text").value;
                        document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
                    }
                    //试试:'><img src="#" οnmοuseοver="alert('xss')">
                    //试试:' οnclick="alert('xss')">,闭合掉就行
               

 

 

找到关键部分  js代码执行后 会将a标签和字符串连接起来 然后输出一个 what do you see?

利用了DOM将字符串进行了拼接并把值给a标签的href

所以我们可以利用已知条件构建payload效果为弹窗 弹窗内容任意 他也给了paylaod

//试试:'><img src="#" οnmοuseοver="alert('xss')">
                    //试试:' οnclick="alert('xss')">,闭合掉就行 

 

发现这两个都可以 成功实现注入 之后的靶场内容会另起一个来写

 

 

 

 

 

 

 

 

 


http://www.ppmy.cn/news/590599.html

相关文章

【backtrader源代码解析17】sharpe.py源代码解析(backtrader计算夏普率的方式)

这篇文章依然很枯燥,我也在思考一个问题,如何能把源代码讲的有趣一些,感觉挺难的。 from __future__ import (absolute_import, division, print_function,unicode_literals)import mathfrom backtrader.utils.py3 import itervaluesfrom backtrader import Analyzer, TimeF…

YOLOv5、YOLOv7独家原创改进:独家首发最新原创XIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能、收敛速度和鲁棒性

💡该教程为属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章为YOLOv5、YOLOv7独家原创改进:独家首发最新原创XIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能、收敛速度和鲁棒性。 �…

真4k测试样片_用真4K看片是什么体验?半年没进电影院,却被夏普70B6UM惊艳到了...

疫情的关系&#xff0c;极果君家里的电视比以往更有存在感了。这款原本我认为可以淘汰掉的“家电品类”&#xff0c;竟然出乎意料地成为我们全家共同享受欢笑的大功臣。 刷手机刷到烦闷&#xff0c;一家人整整齐齐地坐在电视前&#xff0c;因为电视剧情陷入讨论或者争执&#x…

阿里架构师珍藏版“亿级高并发系统设计手册(2023 版)”

高并发 俗话说&#xff1a;罗马不是一天建成的&#xff0c;系统的设计当然也是如此。 从原来谁都不看好的淘宝到现在的电商巨头&#xff0c;展现的不仅仅是一家互联网巨头的兴起&#xff0c;也是国内互联网行业迎来井喷式发展的历程&#xff0c;网络信号从 2G 发展到现在的 5…

HTML 简单教程

什么是 HTML&#xff1f; HTML 是 Hypertext Markup Language 的缩写&#xff0c;意为超文本标记语言。简单来说&#xff0c;HTML 是一种用于创建网页的标记语言。 HTML 基础 HTML 文件结构 HTML 文件必须包含以下几个部分&#xff1a; <!DOCTYPE html> <html>…

CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D

1842A - Tenzing and Tsondu 题意 丁真和珍珠宝可梦对决, 每个宝可梦都有x战力, 假设有两个宝可梦, 其战力分别为a和b(a>b), 战力为a的宝可梦获胜后战力-b, 而战败的宝可梦会消失 最后还有宝可梦的人获胜 问你丁真和珍珠谁赢了 题解 显而易见, 赢下来的宝可梦可以继续打…

熊哥保佑你 操作系统复习

磁盘调度&#xff1a; 主要作用&#xff1a;减少平均寻道时间 FCFS&#xff1a;先来先服务 SSTF&#xff1a;最短寻道优先&#xff08;有可能造饥饿&#xff0c;一部分在一段时间未被访问&#xff09; SCAN&#xff1a;扫描/电梯&#xff08;按当前方向进行&#xff09; C-SCA…

DOTA-Acrylamide,DOTA-DBCO,DOTA-MeTz,三者DOTA双功能螯合剂信息说明总结

今天小编分享DOTA螯合剂试剂&#xff1a;它们分别是DOTA-Acrylamide&#xff0c;DOTA-DBCO&#xff0c;DOTA-MeTz&#xff0c;今天整体分享一下相关的知识&#xff0c;一起看看吧。 &#xff08;文章编辑来源于&#xff1a;西安凯新生物科技有限公司小编WMJ&#xff09; 一、D…