首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过-confirm()-

通过-confirm()-
EN

Security用户
提问于 2015-12-05 08:43:50
回答 1查看 3.7K关注 0票数 2

我在阅读本文这里时,在中间看到作者使用-confirm()-作为有效负载。

我想知道这个有效载荷是什么?我的意思是-confirm()-<script>confirm()</script>有什么区别。为什么<script>confirm()</script>不起作用呢?

如果有人对这件事有所了解的话,那就太好了。

EN

回答 1

Security用户

回答已采纳

发布于 2015-12-05 11:10:32

问题是最后一个参数中缺少的转义字符\

您可以使用一个空函数来尝试它:

代码语言:javascript
复制
<script>

function somefunction(){
//do nothing
}

somefunction( 'wskw='-confirm(1)-'');
somefunction( 'wskw='+confirm(2)+'');
somefunction( 'wskw='*confirm(3)*'');
somefunction( 'wskw='/confirm(4)/'');
somefunction( 'wskw='%confirm(5)%'');
</script>

它和<script>alert(1)</script><script>confirm(1)</script>一样

你可以用这个小提琴来测试它:https://jsfiddle.net/v7y3x1yt/

通常,输入应该始终被用户编码,比如%27而不是'。他们忘了逃避第二个参数。

''关闭字符串,在'之后可以执行任何需要封装在以下算术JavaScript操作符(-, +, *, / %)中的JavaScript代码。这里发生的是一个带有alert()confirm()函数调用结果的计算,必须执行才能得到结果。

由于源代码中的代码是直接以这种形式出现的,所以它是在服务器端生成的,并且存在参数缺少转义的问题,因此JavaScript库中没有直接的XSS漏洞。理论上,这个未转义的代码可以与JavaScript中的任何函数和库一起工作。问题在于服务器端代码的生成。

代码语言:javascript
复制
<script type="text/javascript">
// Redirect click tracking
$.sliLinkTracker( ".redirect-link",'some_url_with_escape_characters', 'wskw='-confirm(1)-'');
</script>

一般来说,我会联系网站的所有者,并向他们披露这一点,因为这是关键。

票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/107340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档