![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
XSS Game
文章平均质量分 58
https://xss.pwnfunction.com/
魏大橙
已老实
展开
-
Ok, Boomer
DOMPurity的绕过,关键点在于它返回的序列化HTML不符合HTML规范,包含了嵌套FORM元素,所以导致浏览器解析出的DOM树是错误的,img标签直接创建在HTML空间中DOM Clobbering的重点,在于对“ok”的覆盖,a标签的toString方法是不继承于父类的,它返回的值是href属性。所以直接href属性中编写执行函数即可,但是由于没有绕过DOMPruity,因此使用的协议需要是在它的白名单内。原创 2024-08-17 22:37:48 · 95 阅读 · 0 评论 -
Mafia
正则对于函数名进行过滤,绕过该WAF一共使用了三种方法,分别为正则表达式的source属性与toLowerCase搭配绕过parseInt与toString转进制绕过location.hash绕过使用source与toLowerCase来进行绕过,只能针对过滤函数名为全小写的情况,当函数名中即拥有小写字母也拥有大写字母时,作用不会太大。因此相比较之下方法二与方法三的使用范围会大些。原创 2024-08-17 22:36:43 · 200 阅读 · 0 评论 -
Ugandan Knuckles
用onfocus属性来定义聚焦事件,搭配autofocus属性自动聚焦,即可完成无用户交互也可执行input中还有个有趣的属性为onclick点击事件条件允许时,可以使用闭合双引号,逃逸尖括号来逃逸出标签。原创 2024-08-17 22:32:03 · 199 阅读 · 0 评论 -
Ricardo Milos
form表单的action属性位置也是大有可为,该属性可以定义提交事件,即可以在action属性中可以编写执行函数。一般情况下,该属性填写的是表单的提交路径。原创 2024-08-17 22:33:02 · 194 阅读 · 0 评论 -
Ah That‘s Hawt
为什么使用两次编码来绕过?因为浏览器将变量值传给语言后端的时候会进行一次编码,语言后端又将变量值返回给浏览器时又会进行一次编码,所以需要两次编码来进行绕过如果只使用一次编码,那么在浏览器传给后端的时候,就会把编码还原成原符号被正则过滤。两次URL编码进行绕过的时候为什么要使用location?location的作用是将等号"="右边的值转换为字符串,因为在JS中对于符号的解码,是只能作为字符常量或者是作为标识符的一部分,不能作为特殊字符解码。原创 2024-08-17 22:34:24 · 239 阅读 · 0 评论 -
Ligma
当遇到数字字母过滤时,基本都是依靠一些符号进行异或等等运算构成字母数字来进行绕过,所以直接用符号进行传入参数即可。但是实际场景中,一般都会搭配长度限制,由于符号运算去构成字母的字符串长度都比较长,所以很少能直接绕过。原创 2024-08-17 22:35:39 · 147 阅读 · 0 评论 -
Jefff
不要使用eval(),因为从字符串执行JavaScript是一个很大的安全风险。使用eval(),恶意代码可以在未经许可的情况下在应用程序中运行。使用eval(),第三方代码可以看到应用程序的范围,这可能会导致可能的攻击。灵活性:eval() 允许在运行时动态执行代码,这在某些情况下可能非常有用。简单性:对于一些简单的操作,使用 eval() 可能会比其他方法更直观。安全风险:如果 eval() 执行的字符串包含来自不可信来源的数据,可能会导致注入攻击。原创 2024-08-17 22:30:37 · 421 阅读 · 0 评论 -
Ma Spaghet!
innerHTML表示元素所有的后代html,该范围包括文本节点,注释节点,元素节点等内容。在读写该属性时,我们可以获取一个字符串,这个字符串包括元素内部的内容,包含空格,换行,注释。innerText表示元素所有的文本内容,包括文本节点,子元素和后代元素的文本节点,只包括内容,不包括注释空格等所以,当需要插入纯文本时,建议不使用innerHTML或outerHTML,而是使用innerText或它不会把给定的内容解析为 HTML,它仅仅是将原始文本插入给定的位置。原创 2024-08-17 22:28:13 · 146 阅读 · 0 评论