Files
XSStrike/core/jsContexter.py

33 lines
875 B
Python
Raw Normal View History

2018-10-27 18:58:52 +05:30
import re
2018-10-27 18:58:52 +05:30
from core.config import xsschecker
from core.utils import stripper
2018-10-27 18:58:52 +05:30
def jsContexter(script):
broken = script.split(xsschecker)
pre = broken[0]
pre = re.sub(r'(?s)\{.*?\}|(?s)\(.*?\)|(?s)".*?"|(?s)\'.*?\'', '', pre)
2018-10-28 23:56:12 +05:30
breaker = ''
2018-10-27 18:58:52 +05:30
num = 0
for char in pre:
if char == '{':
2018-10-28 23:56:12 +05:30
breaker += '}'
2018-10-27 18:58:52 +05:30
elif char == '(':
2018-10-28 23:56:12 +05:30
breaker += ';)'
2018-10-27 18:58:52 +05:30
elif char == '[':
2018-10-28 23:56:12 +05:30
breaker += ']'
2018-10-27 18:58:52 +05:30
elif char == '/':
try:
if pre[num + 1] == '*':
2018-10-28 23:56:12 +05:30
breaker += '/*'
2018-10-27 18:58:52 +05:30
except IndexError:
pass
2018-10-28 23:56:12 +05:30
elif char == '}':
breaker = stripper(breaker, '}')
elif char == ')':
breaker = stripper(breaker, ')')
elif breaker == ']':
breaker = stripper(breaker, ']')
2018-10-27 18:58:52 +05:30
num += 1
return breaker[::-1]