之前我在玩一个XSS游戏的时候突然有了些想法,于是便有了这篇文章。在此,我将分享一个以前没有接触过的一个XSS攻击向量。
相同水平的前提下,在攻击向量中不使用任何字母,且必须调用alert(1)。
闲话少说,看这里:
""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]][(''+{})[5]+(''+{})[1]+((""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]])+"")[2]+(!1+'')[3]+(!0+'')[0]+(!0+'')[1]+(!0+'')[2]+(''+{})[5]+(!0+'')[0]+(''+{})[1]+(!0+'')[1]](((!1+"")[1]+(!1+"")[2]+(!0+"")[3]+(!0+"")[1]+(!0+"")[0])+"(1)")()
真是一团糟,我们到底做了些什么呢?接下来容我慢慢给大家道来。
分析
首先从空字符串开始,接下来我们访问括号而不是我们熟悉的点符号的属性。
请注意,在接下来的一分钟我们将构建字符串,不会用到点符号构造字符串名的对象属性,现在切换到括号。
现在我们访问的是什么属性?下面这个就是“字符串”
(!1+"")[3]+(!0+"")[2]+(''+{})[2]
接下来从!1(false)开始,将“”添加到一个non-String值中是一个快速且直接的方法,所以(!1+””)我们得到false
将字符带入索引3中的“false”(结果切好是s),在(!0+””)[2]或者“true”[2]再次尝试,你会得到字母u。最后将字符带入索引2的字符串“[object Object]”中,你会得到字母b。
不使用任何字母,构造一个字符串来访问空字符串对象的“sub”属性,然而sub不仅仅是一个属性,它还是一个函数!
此时此刻,你可能会认为我接下来会通过调用String.sub函数破坏过滤。或许这么做也行,但是我选择更加有深度的做法,函数有什么内置属性?如何构造函数?
如果你打开一个JavaScript控制台,键入“”[“sub”][“constructor”],你看到了什么?为什么得到了Function()函数!似乎我们有事情干了…
给你点提示:这其中有n
((""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]])+"")[2]
我们有熟悉的“”[“sub”]:
((""["sub"])+"")[2]
向其中增加“”,得到function sub() { [native code] }。将字符带入索引2得到字母n
总结
我们现在得到了相当于Function()的“”[“sub”][“constructor”],调用它我们就可以定义一个函数了。当我们尝试调用alert(1)时,就需要连接更多的“true”和“false”来构建alert字符串,其后在加上+”(1)”。
现在我们调用Function(“alert(1)”),大功告成,现在只需一个调用,返回一个匿名函数就可以实现弹出。
// empty string""// ["sub"][(!1+"")[3]+(!0+"")[2]+(''+{})[2]]// ["constructor"][(''+{})[5]+(''+{})[1]+((""[(!1+"")[3]+(!0+"")[2]+(''+{})[2]])+"")[2]+(!1+'')[3]+(!0+'')[0]+(!0+'')[1]+(!0+'')[2]+(''+{})[5]+(!0+'')[0]+(''+{})[1]+(!0+'')[1]]// ("alert(1)")(((!1+"")[1]+(!1+"")[2]+(!0+"")[3]+(!0+"")[1]+(!0+"")[0])+"(1)")// call anonymous function returned by Function()()
本文最开始的Function(“alert(1)”)()确实十分混乱,不使用任何可识别的字符串确实很难辨识。你可以在地址栏键入“javascript:”复制粘贴上面的代码点击回车键进行测试。
相关推荐
H5SC, HTML5安全Cheatsheet一个HTML5相关的XSS攻击向量集合 HTML5安全... 在这里你可以找到三种东西:一个 Collection 相关的XSS攻击向量一组用于XSS测试的有用文件一组以前隐藏的用于XSS测试的特性 XSS矢量可以在以下
跨站脚本攻击(XSS)是一种常见的网络安全威胁,它允许攻击者将恶意脚本注入到网页中,从而在其他用户的浏览器上执行。这种攻击可能导致敏感信息的泄露、会话劫持以及其他安全问题。在Web开发中,正确处理用户输入是...
4. 配置过滤规则:根据需求设置哪些URL需要应用XSS过滤,哪些不需要。可以使用`antMatchers`或`requestMatchers`来指定路径。 5. 测试验证:确保配置生效后,进行充分的测试,包括正常输入和恶意输入,检查是否能...
防御DOM型XSS需要对DOM操作进行安全编程,避免直接将不可信的用户输入用于生成动态HTML。 XSS漏洞扫描工具和技术包括自动化的扫描器,如OWASP ZAP、Nessus、Burp Suite等,它们能够自动探测Web应用中的潜在XSS漏洞...
XSS(Cross-site scripting)攻击是一种常见的网络安全威胁,它利用了网站对用户输入的不适当处理,使得攻击者能够在网页中注入恶意脚本,从而影响其他用户。在本实例"XSS攻击实例1"中,我们将探讨这种攻击的原理、...
即使不涉及服务器权限,XSS也能用来盗取用户cookie、实施钓鱼攻击或者传播恶意代码。 **搜索框的XSS漏洞分析** 许多网站,尤其是知名的电子商务平台,如淘宝、当当和亚马逊中国,其搜索功能可能存在过滤不足的问题...
本项目"支持向量机算法识别XSS.zip"是一个结合了SVM算法与网络安全的示例,旨在帮助学习者理解如何利用SVM来检测和预防XSS攻击。项目提供了一个数据集和训练脚本,方便用户实践并深入理解SVM在XSS识别中的应用。 ...
首先,我们需要理解XSS攻击的类型,主要分为三类:反射型XSS、存储型XSS和DOM型XSS。反射型XSS是通过诱使用户点击带有恶意脚本的链接来触发;存储型XSS则是在服务器端存储了恶意脚本,当用户访问特定页面时被执行;...
基于JS的XSS扫描器——XSS Rays. 最近The Spanner发布了一个名为XSS Rays的 XSS漏洞扫描器。这tool有点意思,是使用JS写的,JS遍历目标的link、form,然后构造测试用例去测试,可以发现DOM的XSS(当然是在测试用例打...
综上所述,"xss.js"是一个强大的工具,旨在帮助开发者构建更安全的Web应用,抵御XSS攻击。通过合理的输入过滤、白名单策略和可扩展性,它为防止恶意脚本注入提供了可靠的解决方案。在实际开发中,结合良好的编码规范...
XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见...通过分析和学习这个XSS平台网站的源码,不仅可以深入理解XSS的攻击手段,还能掌握防御技巧,提高开发过程中的安全意识,这对于构建安全的Web应用程序至关重要。
XSS向量的集合可以在这里找到: : 有用的文件 我们发布了在各种情况下对XSS测试有用的文件列表。 当前,以下文件可用: 欢迎拉取请求,我们将文件存储在/attachments子文件夹中。 隐藏功能 H5SC当前具有三个“隐藏...
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...
总结来说,防止Java中的XSS攻击需要多层防御策略,包括输入验证、输出编码、使用安全API、自定义过滤器和安全的HTTP头。通过对用户输入进行严格的控制和处理,我们可以大大降低XSS攻击的风险,保护应用程序和用户的...
【免费】蓝莲花Bluelotus,XSS工具【网安】【免费】蓝莲花Bluelotus,XSS工具【网安】【免费】蓝莲花Bluelotus,XSS工具【网安】【免费】蓝莲花Bluelotus,XSS工具【网安】【免费】蓝莲花Bluelotus,XSS工具【网安】...
开发者应当充分理解XSS的原理和危害,遵循最佳实践,结合多种手段,构建安全的Web应用环境。通过配置Spring Security,使用过滤器,以及配合其他安全库,我们可以显著增强Spring Boot应用对XSS攻击的防御能力。
XSS攻击,全称跨站脚本攻击,是一种常见的Web应用安全漏洞,攻击者通过在网页中注入恶意脚本,使得用户在不知情的情况下执行这些脚本,从而达到窃取用户数据或破坏用户体验的目的。XSS漏洞通常分为三类:反射型XSS、...