Anyone in the universe can help me finding out the function.What will be done with this regex string
宇宙中的任何人都可以帮我找到这个函数。这个正则表达式字符串将会做什么
/^#~?!(?:\/?[\w\.-])+\/?(?:\?|$)/
When it passed to this javascript statement like this.
当它传递给这样的javascript语句。
(/^#~?!(?:\/?[\w\.-])+\/?(?:\?|$)/).test(location.hash)&&location.replace(location.hash.substr(location.hash.indexOf('!')+1));
And is it possible to bypass this regex string may be making an xss attack or an open redirect?
是否有可能绕过这个正则表达式字符串可能正在进行xss攻击或开放重定向?
EDIT :-
编辑: -
Ok iam going more accurate. My goal is to break the above Regex Match to make an xss or open redirect.(Only for education purpose,like a CrackMe).
好的,我更准确。我的目标是打破上面的正则表达式匹配以制作xss或打开重定向。(仅用于教育目的,如CrackMe)。
So For Eg:- If i used #!*.com
then the browser redirects to current domain plus *.com Like
所以对于Eg: - 如果我使用#!*.com然后浏览器重定向到当前域加上*.com就像
domain.com/foo/#!*.com
domain.com/foo/#!*.com
it redirects to domain.com/*.com
.
它重定向到domain.com/*.com。
So i tried putting like this #!//*.com
but the regex match fails.
所以我尝试像这样#!// *.com,但正则表达式匹配失败。
Is there anyway to bypass it to make an open redirect to *.com(Any kinda character encodings or anything else).
反正有没有绕过它来打开重定向到*.com(任何有点字符编码或其他任何东西)。
If else is it possible to make an XSS in this current context.
如果可以在当前上下文中创建XSS。
Thank you.
谢谢。
1 个解决方案
#1
2
it must :
它必须 :
- start with # (a hash in a url)
- 以#开头(url中的哈希)
- then maybe a "~" (one or zero)
- 然后可能是一个“〜”(一个或零)
- then "!"
- 然后 ”!”
- then one ore more letters (\w ) or dots (.) or dash (-)
- 那么一个或多个字母(\ w)或点(。)或破折号( - )
- then maybe a "slash" (one or zero)
- 然后可能是“斜线”(一个或零)
- then a "?" or then end of the string
- 那么一个“?”或者然后结束字符串
This means it matches url like
这意味着它匹配url
http://yourdomain/foo/#!bar?etc
and replace the current url with
并用。替换当前的URL
http://yourdomain/foo/bar?etc
to try to access directly the file "bar" if it exists
尝试直接访问文件“bar”(如果存在)
The risk is if your site is in ajax, and you make somewhere a direct and blind include() of what is in the hash.
风险在于,如果您的站点位于ajax中,并且您在某个地方直接使用了哈希中的包含()。
#1
2
it must :
它必须 :
- start with # (a hash in a url)
- 以#开头(url中的哈希)
- then maybe a "~" (one or zero)
- 然后可能是一个“〜”(一个或零)
- then "!"
- 然后 ”!”
- then one ore more letters (\w ) or dots (.) or dash (-)
- 那么一个或多个字母(\ w)或点(。)或破折号( - )
- then maybe a "slash" (one or zero)
- 然后可能是“斜线”(一个或零)
- then a "?" or then end of the string
- 那么一个“?”或者然后结束字符串
This means it matches url like
这意味着它匹配url
http://yourdomain/foo/#!bar?etc
and replace the current url with
并用。替换当前的URL
http://yourdomain/foo/bar?etc
to try to access directly the file "bar" if it exists
尝试直接访问文件“bar”(如果存在)
The risk is if your site is in ajax, and you make somewhere a direct and blind include() of what is in the hash.
风险在于,如果您的站点位于ajax中,并且您在某个地方直接使用了哈希中的包含()。