<>]*?)<\/div>’, тело, re.МУЛЬТИЛАЙН | ре.ДОТАЛЛ ) innerHTML = innerHTML.group(2).replace(«‘», r»\'») если innerHTML иначе «» js = jsunfuck(jsEnv.format(domain=domain, innerHTML=innerHTML, js=js)) атоб (ы): вернуть base64.b64decode(‘{}’.format(s)).decode(‘utf-8’) js2py.disable_pyimport() контекст = js2py.EvalJs({‘atob’: atob}) результат = контекст.eval(js) кроме исключения: logging.error(«Ошибка выполнения Cloudflare IUAM Javascript. {}».format(BUG_REPORT)) поднимать пытаться: поплавок (результат) кроме исключения: поднять ValueError(«Запрос Cloudflare IUAM вернул неожиданный ответ. {}».format(BUG_REPORT)) вернуть результат VeNoMouS/cloudcraper/cloudcraper/js2py_interrupter.py Просмотреть на Github
 defsolveJS(self, jsEnv, js):
        если js2py.eval_js('(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[ !+[]+!+[]]+[+[]])+[])[+!+[]]') == '1':
            print («Пожалуйста, обновите ваш js2py https://github.
com/PiotrDabkowski/Js2Py, применив обходной путь».) js = jsunfuck (js) атоб (ы): вернуть base64.b64decode('{}'.format(s)).decode('utf-8') js2py.disable_pyimport() контекст = js2py.EvalJs({'atob': atob}) результат = context.eval('{}{}'.format(jsEnv, js)) вернуть результат 9<>]*?)<\/div>', тело, re.МУЛЬТИЛАЙН | ре.ДОТАЛЛ ) innerHTML = innerHTML.group(2).replace("'", r"\'") если innerHTML иначе "" js = jsunfuck(jsEnv.format(domain=domain, innerHTML=innerHTML, js=js)) атоб (ы): вернуть base64.b64decode('{}'.format(s)).decode('utf-8') js2py.disable_pyimport() контекст = js2py.EvalJs({'atob': atob}) результат = контекст.eval(js) кроме исключения: logging.error("Ошибка выполнения Cloudflare IUAM Javascript. {}".format(BUG_REPORT)) поднимать пытаться: поплавок (результат) кроме исключения: поднять ValueError("Запрос Cloudflare IUAM вернул неожиданный ответ.
{}".format(BUG_REPORT)) вернуть результат

Обход WAF для выполнения XSS. Недавно я охотился за некоторыми XSS и… | by kleiton0x7e

Опубликовано в

·

Чтение: 4 мин.

·

28 мая 2020 г.

Недавно я искал XSS и наткнулся на веб-сайт (давайте назовем его веб-сайтом. com из соображений конфиденциальности) где у него была форма входа администратора в каталоге /admin .

Панель администратора на сайте website.com/admin

Инстинктивно я попытался ввести случайные учетные данные, чтобы посмотреть, какой ответ я получу.

/admin/index.php?msg=Invalid%20Email%20and%20Password

/admin/index.php?msg=Неверный адрес электронной почты и пароль

Это URL-адрес, на который меня перенаправили, по умолчанию это очень плохая идея отображать сообщение об ошибке, но это реализация, которую я часто вижу на разных веб-сайтах.

Любое значение ?msg= может быть отражено на веб-сайте, поэтому давайте попробуем изменить его, чтобы лучше понять.

То, что я пробовал, было website.com/admin/index.php?msg=Hello World

?msg=Hello World было отражено

Теперь мы видим, что каждый ввод, который мы вводим, отражается в этом тексте с красным шрифтом.

Что, если я попытаюсь внедрить некоторые теги HTML?

?msg=

Hello World

Внедрение HTML

Мы успешно внедрили HTML, теперь пришло время добавить код Javascript.

Я перепробовал более 50 основных полезных данных XSS, надеясь, что XSS появится во всплывающем окне:

?msg=
?msg=
?msg= ?msg=