结束没有斜线字符的 javascript 块

信息安全 xss javascript
2021-08-24 22:54:48

我目前正在做的渗透测试中非常令人沮丧的情况 - 我找到了一个可以将几乎所有字符从参数注入一段 javascript 的地方。

但是 Web 开发人员似乎很幸运——我可以更改的那段代码永远不会执行,因为在我的注入点之前存在 javascript 语法错误。啊!

所以我想我可能只是通过执行</script>然后附加我的攻击来结束 javascript 块。但是-我不能使用该/字符-几乎是唯一被过滤掉的字符。尝试了一长串变体,但似乎没有一个有效。我可以管理<&#47;script>,但浏览器不会将其作为</script>.

有任何想法吗?我可以调整一些东西以使我的脚本仍然执行吗?还是有另一种方法来结束一个脚本块,除了</script>/我可以尝试其他一些字符编码吗?非常感谢任何帮助。:)

2个回答

我不知道在<script>没有</script. (不区分大小写,无编码)

如果特定脚本中的任何地方存在语法错误,则整个脚本将不会执行。(当然您似乎已经知道这一点,因此您正在尝试插入</script>

但是,这仍然很严重,因为未来的开发人员很可能会修复该语法错误,在不知不觉中利用您发现的注入漏洞制造了一个漏洞。

但是,如果您使用自己的注入导致了语法错误(即从引用的字符串中分离出来),那么您也可以在添加漏洞利用之前解决它。

服务器端:

作为安全程序,他们在“/”中编码了“/”,以避免任何目录路径遍历或 XSS(运气不好)。尝试绕过“/”的其他方法。

备忘单:https : //www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

客户端:

您的浏览器启用了某种 XSS 保护。尝试禁用该保护。