LINUX.ORG.RU

Детектирование заглушки от Cloudflare

 


0

1

Речь идет про эту заглушку:


<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="robots" content="noindex, nofollow">
    <title>One moment, please...</title>
    <style>
    body {
        background: #F6F7F8;
        color: #303131;
        font-family: sans-serif;
        margin-top: 45vh;
        text-align: center;
    }
    </style>
    </head>
<body>
    <h1>Please wait while your request is being verified...</h1>
    <form id="wsidchk-form" style="display:none;" action="/z0f76a1d14fd21a8fb5fd0d03e0fdc3d3cedae52f" method="GET">
    <input type="hidden" id="wsidchk" name="wsidchk"/>
    </form>
    <script>
    (function(){
        var west=+((+!+[])+(+!+[]+!![]+[])+(+!+[]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+!![]+[])),
            east=+((+!+[]+!![]+!![]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])),
            x=function(){try{return !!window.addEventListener;}catch(e){return !!0;} },
            y=function(y,z){x() ? document.addEventListener('DOMContentLoaded',y,z) : document.attachEvent('onreadystatechange',y);};
        y(function(){
            document.getElementById('wsidchk').value = west + east;
            document.getElementById('wsidchk-form').submit();
        }, false);
    })();
    </script>
</body>
</html>

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

Я в последнее время увлекся поиском уязвимостей за вознаграждение. Раньше я пользовался сторонними средствами типа httpx. Но эта утилита убога чуть менее чем полностью и не умеет обходить тот же Clownflare, поэтому в 30% результатов я видел что-то типа:

{/* ... */"title":"One moment, please..."/* ... */}

Я написал свою утилиту httpscan. Это просто кросс-компиляция каких-то скриптов, используемых мною ранее. Так вот ее легко настраивать для поиска дампов, бекапов, конфигов, которые по чье-то невнимательности оказались в публичном доступе (полностью по вине админов и прочих жопоруков). Ну в общем у меня за обход проверки клауда с теми скобками отвечает метод bypass_cloudflare_challenge, а за детектипрование заглушки от клауда - detect_cloudflare_challenge. Я с дебаггером на паре десятков сайтов под клаудом проверил свой http-сканер и так не смог как-то по заголовкам научиться точно определять эту заглушку. Клауд не всегда отдает заголовок Server: cloudflare, так же какие-то специфические заголовки где-то присутствуют, а где-то нет. Сейчас я делаю так: если есть заголовок Cache-Control и он содержит no-cache, то это 100% динамический контент, то читаем содержимое страницы, ищем в ней подстроку One moment, please..., если она найдена, то парсим нужные данные типа action формы и двух переменных east и west (видимо отсылки к негритянским rape-бандам east coast и west coast, которые в разгар войны замочили главную гангста парайдайзу). Так вот в чем проблема этого метода: если какой-то наркоман отдаст 20 гиговый архив с no-cache, то мой пека уйдет в своп и не выйдет из него…

20 гиговый архив от заглушки скорее всего будет отличаться по заголовку content-type. И второй момент - кто заставляет читать всё, если можно читать первые 10кБ?

cobold ★★★★★
()

Я в последнее время увлекся поиском уязвимостей за вознаграждение.

Что-то нашёл? Чем-то вознаградили? Я на паре мест был, там у всех описания вроде «вознаграждаем только за то если вы оставите дикпик в root каталоге сервера для подписи сертификатов»

Так вот ее легко настраивать для поиска дампов, бекапов, конфигов, которые по чье-то невнимательности оказались в публичном доступе (полностью по вине админов и прочих жопоруков).

Иногда буквально написано, цитирую

Что присылать не нужно:
* Отчеты сканеров уязвимостей и других автоматизированных средств;
* Разглашение публичной информации о пользователях;

Хотя про сканеры там пишут мол просто отчёты от них не принимают, написано порой так что и за просто их использование могут послать погулять, опять же если сканер какой или иной инструмент, то если долбишь по 10 раз в секунду и более тоже могут послать, так как как при твоём отчёте они поднимут логи и будут спрашивать, а это вот ты долбился? И если это ты ты обязан сказать, да это был я. И ещё, если ты что-то нашёл, трогать это можно только на пол шишечки. Нашёл дырку для входа, сначала пиши репорт в котором спроси разрешения залезать дальше вплоть до рута, а если его получишь максимум что сделай то это sleep 3600 & и выходи и сразу пиши отчёт. За то что ты куда то там в каталог зайдёшь могут вознаградить не денюжкой, а повесткой в суд.

Как минимум если что найдёшь то не говори что нашёл это сканером, даже самописным, может там и правда будет чувствительная информация и они сделают «Оййййй божечки мои как мы это допустили!», но завернут тебя в пакетик со словами «Спасибо, пофиксим, но это не входит в оплачиваемый перечень, бывай лох!» и ты даже побубнить не сможешь по этому поводу, если что тебя просто посадят за любые возражения, буквально и в тюрьму так как ты не имеешь права разглашать то что нашёл в любой форме. Чисто формальностью задавят и лесом гулять пошлют. Нашёл и нашёл, а как это не их дело, их дело исправить, а твоё им сообщить (хотя как ты нашёл тоже обязательно надо сообщать, но найти вручную или через подручные средства это без разницы).

Вопщем дырки искать и сообщать о них источнику дырок это хорошо, благо и добро. Но будь аккуратнее.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 5)
Ответ на: комментарий от cobold

Прочитанные 10 килобайт, нельзя прочитать взад, это же сокеты и seek(0) уже не сделаешь. Ради этого нужно абстракцию городить в виде wrapper’a, а метод unread_data срет ворнингами… Ну в общем сделать можно, но через грязные хаки типа атрибут объекту какой навесить - некрасиво

anonymous
()
Ответ на: комментарий от LINUX-ORG-RU

Это не дырки. Уязвимость предполагают взлом, а тут взлома нет, это как в подъезде поднять коврики, взять из под него ключи и открыть чужую квартиру - чисто наказание за дебилизм. Я вчера тестовый прогон делал, нашел бекапов и дампов на 20 гигов, причем один был 12 гигов, содержа бекапы бекапов. Человеческий идиотизм не имеет границ. И даже логи в корне сайта полезны, например там может быть ссылка на автологин в админку типа /admin.php?username=admin&password=qwe123 + базы часто отваливаются, и тогда в логах светится сообщение не могу подключиться error...connect('localhost', 'root', 'password', 'database'

anonymous
()
Ответ на: комментарий от anonymous

Это не дырки. Уязвимость предполагают взлом, а тут взлома нет, это как в подъезде поднять коврики, взять из под него ключи и открыть чужую квартиру - чисто наказание за дебилизм.

Я про это написал, потому что оно имеет юридическое значение. Например, если я найду инъекцию и взломаю через нее сайт, то это 100% взлом, вина разработтчика опосредованная, а значит владелец может обратиться в правоохранительные органы своей страны… В случае же если я путем брутофорса путей выкачаю архив с бекапом, то тут халатность - вина владельца. Если тот пойдет в полицию, то ему же выпишут оборотный штраф по GDPR и анологичным законы США. Канады, Великобритании, Австралии, Японии и Южной Кореи + в Германии какой-нибудь владельцу грозит уголовная ответственность. Те во втором случае ты себя жертвой не сможешь выставить и проще заплатить за bugbounty

rtxtxtrx
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

За то что ты куда то там в каталог зайдёшь могут вознаградить не денюжкой, а повесткой в суд.

У нас не повестка в суд. К тебе домой опера приезжают в 6 часов утра. Есть древнее правило: кто работает по зоне Ру, к тому приходят менты по утру. Россия - это государство, которое никогда никем не было завоевано, поэтому в ее Конституции написано, что гражданин России не может быть выдан иностранносму государству. Те если ты совершаешь преступления за границей, то с тебя как с гуся вода. Но важно соблюсти ряд условий. Преступление не должно быть совершенно против граждан России и/либо интересов государства. В теории тебя могли раньше осудить за взлом пиндосов (и случаи есть), но это было до санкций и по «чистосердечному признанию». Те гражданин «дружественной» страны должен приехать в Россию и написать заявление на то что гражданин Вася Пупкин взломал его сайт (но как он это узнает, зная лишь айпи взломанного сервера, используемого в качестве прокси). Так же важно отметить, что сканирование портов, определенных путей НЕ ЯВЛЯЕТСЯ преступлением в России, но я допускаю высокую вероятность правового беспредела, поэтому возвращаемся к правилу про зону Ру. Из предыдущего так же следует, что гражданин сшп не может приехать в РФ и написать на тебя заявление за сканирование портов, его просто не примут, потому как это не преступление по нашим законам (в сшп это преступление, поэтому я везде по тексту это слово указываю)

rtxtxtrx
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 3)
Ответ на: комментарий от rtxtxtrx

Если ты участвуешь в неком багбантуи и аналогах, то владельцы сами просят чтобы их сканировали во все щели, это не нарушение. Нушением может стать то если ты наткнёшься на ftp где корень некого сервера будет доступен на чтение весь и полностью, а ещё может и на запись и ты вместо исключительно проверки и считывания /etc/passwd и записью в /tmp/hello_file решишь выкачать весь корень и что хуже того что-то куда-то ещё написав, тогда будет понятно что цель того кто всё это нашёл не в том чтобы найти и сообщить, а в том чтобы эксплуатировать. Ну, ты вроде за вознаграждение, значит сканируй что угодно и как угодно, но коли чего найдёшь первое что надо делать это писать репорт владельцам, о факте обнаружения той или иной бреши, лучше сделать 10 репортов типа , я нашёл А, я через А изменил Б, я через А прочитал Ц и финальный я нашёл у вас А и там можно Б и Ц. И ладушки. А когда будет сопоставление логов с тобой будет видно, ты чисто нашёл и всё или предварительно что-то качнул себе, а зачем? Ну и так далее.

Оперируй всё же здравым смыслом, и ставь себя на место владельца ресурса. Как бы ты отнёсся к тому что человек зарепортил тебе проблему о том что есть доступ к его критичным данным из вне без защит, и этот же человек все эти данные себе качнул =)

Хотя несомненно с твоей стороны тоже есть правда, дабы определить к какому классу относятся файлы нужно их скачать иначе что написать в репорте то? =)) Но тут опять же, золоте правило во для всего «всему должна быть мера». Если обнаружил реально критичные данные, то моментально прекращаешь эксплуатацию и пишешь репорт владельцам и всё чин чином. Меньше разбирательств, быстрее проблему закроют, быстрее вознаградят (если это подпадает под вознаграждение конечно).

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Эксплуатация - это термин применимый к уязвимостям, а то что ты скачал какой-то файл - не преступление. Тебе попытку взлома могут пришить, если ты кавычки во все формы и пути на сайте будешь подставлять

rtxtxtrx
() автор топика
Ответ на: комментарий от rtxtxtrx

Я в юридических тонкостях всего этого не разбираюсь и поэтому обхожу всё это стороной, ну нафиг. Я просто тебе немножко паники накрутил, хуже не будет =) Буш внимательнее в своих делах, гы.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Оперируй всё же здравым смыслом

Это не про закон. Законы часто написаны под влиянием каких то заблуждений, например, религиозных представлений, понятий о чести родом из срежневековья (смертные казни за изнасилования и богохульство). У нас полно всяких здравомыслящих этиловых дегенератов, которые выпив идут восстанавливать социальную справедливость… Не об этом речь. Ты думай о том, что владелец сам совершил преступление, выложив по неосторожности архив, и багбаунти - это плата тебе за молчание о нем, поэтому тебе лучше пруфами обзаводиться, например делать снимки вебархива, указывать в письме все обстоятельства того как что-то было найдено, чтобы жуликоватый владелец не мог обернуть все против тебя. А то что ты там программы какие-то упомянул… Ну это как драка на ринге. Если ты ударом убъешь соперника, то тебя посадят за убийство, мало того он может тебе предъявить иск за ущерб здоровью… потому как все эти правила лишь деловые обычаи, которые в уголовном праве никем не признаются. Тебя это не спасет

rtxtxtrx
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

В общем [и целом] так или иначе моя тема не имеет отношения к взлому. У меня сканер который просто проверяет наличие файла на сервере. Он ничего ломать не умеет

rtxtxtrx
() автор топика
Ответ на: комментарий от anonymous

Да. Потому что нужно явно указывать proxy_force_ranges on;

rtxtxtrx
() автор топика
Ответ на: комментарий от anonymous

это как в подъезде поднять коврики, взять из под него ключи и открыть чужую квартиру - чисто наказание за дебилизм

На такие действия в УК РФ есть 139 статья, пункт 1.

Это не дырки.

272 статья УК РФ, пункт 2 прямо подходит под действия ТС-а.

peregrine ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Но вот если ты в РФ это провернёшь, то такое деяние будет наказываться как

наказывается штрафом в размере от ста тысяч до трехсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период от одного года до двух лет, либо исправительными работами на срок от одного года до двух лет, либо ограничением свободы на срок до четырех лет, либо принудительными работами на срок до четырех лет, либо лишением свободы на тот же срок.

peregrine ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Россия - это государство, которое никогда никем не было завоевано

Батый смотрит на тебя, неуча, с изумлением.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Неправомерным считается доступ к конфиденциальной информации или информации, составляющей государственную тайну, лица, не обладающего необходимыми полномочиями (без согласия собственника или его законного представителя), при условии обеспечения специальных средств ее защиты.

Ты комментарии к статьям ук читай. Там размытые формулировки, которые уточняет верховный суд. Зайду с акка поставлю тебе клоунов

anonymous
()
Ответ на: комментарий от peregrine

Ну ты историк «великий». Ну во-первых тогда России не существовало. Ее историю если строго нужно отсчитывать с возвышения Москвы, а Руси - не с мифической даты основания, а с принятия первых кодифицированных законов, ага той самой «Русской правды». Без законов и бюрократов не существует государств… Московское княжество хоть и платило дань, но у него были все признаки государства: границы, армия, законы, законодательная и исполнительные ветви власти… Но в истории ты так же плаваешь как в законах

anonymous
()
Ответ на: комментарий от peregrine

Я тебя могу еще покормить. Привести совсем детские примеры.

Вот ты на работе забыл заблокировать компьютер и ушел на обед. Я взял флешку и скопировал там твои голые фото с него… Меня не будут по 272 УКРФ судить, так как ты ничего не сделал чтобы защитить свои данные (не заблокировал комп)

Если я подсмотрю твой пароль, а потом дждусь, пока ты уйдешь, и войду под твоими кредами, то меня будут судить по 272 укрф…

Если ты во Вконтакте создашь альбом и забудешь его сделать скрытым и выложишь туда свои голые фоточки, то меня не будут по 272 судить, если я их скопирую…

Та же логика с сервером. Любые файлы на сервере по умолчанию доступны всем. Если я что-то скачаю бекап с твоего сайта, то меня не будут по 272 судить, так как ты ничего не сделал, чтобы ограничить доступ к нему…

Если же я в том архиве найду пароль от админки и зайду в нее, то меня будут судить по 272, так как я не имел права туда заходить…

Если же ты сам мне сообщишь пароль от админки, я зайду в нее и снесу тебе все файлы, то меня не будут судить по 272, так как ты сам сообщил пароль и не поменял его.

Но все указанные случаи касаются только ответственности по 272, ответственность за распространение порнографии, … нарушение тайны личной жизни тп не исключены


Так что поиск бекапов на твоем сайте полностью законен, а вот что ты потом будешь делать - это уже другой вопрос. Поиск инъекций тоже тащем-то законен до момента пока ты не попытаешься вытянуть из базы пароли. Тут уже все на твоей совести: ты можешь остановиться и как белая шляпа сообщить об уязвимости, получить маленькое вознаграждение или как черная шляпа слить все что можно. Действия белошляпочников полностью законны (в этой стране - точно), поэтому они даже не скрываются

rtxtxtrx
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 2)
Ответ на: комментарий от rtxtxtrx

Если же ты сам мне сообщишь пароль от админки, я зайду в нее и снесу тебе все файлы, то меня не будут судить по 272, так как ты сам сообщил пароль и не поменял его.

как раз недавно было на хабре, почитай

https://habr.com/ru/news/821685/

Можно не только по 272 но и по 274 на 8 лет поехать небо в клеточку изучать внимательно.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Ты между строк только читать умеешь? Его судили не по 272 укрф,а по 274 за неправомерное воздействие. Он доступ получил правомерно (пароли ему на работе выдали), но действия совершил неправомерные, выходящие за рамки трудовых обязанностей либо откровенно зловредные

  • Ст 272. НЕПРАВОМЕРНЫЙ ДОСТУП - это все что касается авторизации. Нет защиты - нет преступления
  • Ст 273. Создание и использование вредоносных программ. За создание еще никого не судили, так как заведомую вредоносность сложно доказать. Судят за использование. Если я тебе кейлоггер скину, а потому зайду куда, то меня будут судить по 272 и 273
  • Ст 274-274.2. DDOS-атаки, дефейс сайтов и тп. Причем сайты разделяются на простые и критически важную инфраструктуру, например, DDOS госуслуг считается более тяжким преступлением

Собственно на этом и кончились компьютерные преступления. Сканирование легально (если не похоже на DDOS). Брут паролей, DDOS-атаки, экплуатация инъекций с целью получения паролей - нет.

rtxtxtrx
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 2)
Ответ на: комментарий от peregrine

Когда статьи уголовного кодекса смотришь, то читай комментарии. Комментарии дает Верховный суд с целью уточнения. Там, например, написано «нужно совершить A, B, C и D», значит только при выполнение всех условий (A, B, C, D) происходит преступление. Там много приколов, например, убийство беременной не является двойным убийством, так как это «плод», который пока не вылезет на свет из дырки, не считается человеком, так же если жертва умрет не сразу… то это тоже не убийство! Даже с чем-то простым убийством у закона свое понимание, а ты же лезешь со своим дилетантским пониманием более сложных вещей, и интерпретируешь все, ес-но, неправильно

rtxtxtrx
() автор топика
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

Сканирование легально (если не похоже на DDOS)

Я вот фантастический говнокод написал или поручил его написать джунам с зп в 10 000 рублей и соответствующими знаниями, который от сканирования получил запрос (любое сканирование требует воздействие, прям как в физике на уровне микромира), который не ожидал и не смог обработать и грохнулся. Потянет на вредоносность? Если бы ты не сканировал оно бы работало, а так взяло и прилегло.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Великий троечник, сходи почитай годы жизни Ивана Калиты (при нём Москва возвысилась) и про период татаро-монгольского ига. А так с 1990 года действительно не захватывали. Подскажу для Ъ Ванька Калита жил в 1284 или 1288 — 31 марта 1340 годах, татаро-монголы контролировали Русь с 1242 по 1472-1480 годы. Мамай был мятежным военачальником Золотой орды и потому победа над ним в 1380 году Иго не прекратила. Более того, самого Мамая убили по приказу Тахтомыша в Крыму, а не на Куликовом поле, откуда он успешно убежал, и сделано это было не по приказу московского князя и не руками славян, а всё теми же самыми татаро-монголами.

peregrine ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Россия - это государство, которое никогда никем не было завоевано, поэтому в ее Конституции написано, что гражданин России не может быть выдан иностранносму государству.

вот чисто по документам, ты говоришь правильно и очень красиво. но ты забываешь про национал-куколдизм, который цветет и пахнет последние 10 лет. и изза которого, в угоду «партнеров», пришлось задержать и осудить граждан.

usi_svobodi
()
Ответ на: комментарий от rtxtxtrx

А теперь на секундочку представим что этот говнокод управлял котлом с хлором на заводе и в результате падения софта из-за твоего сканирования случился второй Бхопал в результате которого погибло скажем 5 000 человек. Понятно что того кто писал код посадят, но ты правда думаешь что из такой ситуации ты выйдешь белым и пушистым? Я думаю нет.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Я рад что тебя мое сообщение заставило какую-то педивикию почитать. Да, то монголам и дань не платили с 1200-х.

татаро-монголы контролировали Русь с 1242

Такого государства никогда не существовало. Как и Московского царства какого-нибудь. Оно в документах называлось просто «Государство». Это уже при Иоанне Грозном придумали название

Мамай был мятежным военачальником Золотой орды и потому победа над ним в 1380 году Иго не прекратила.

Дань не платили 200 лет, поэтому «монголы» и набегали постоянно. Это пермаментная война, а не оккупация с утратой суверенитета

rtxtxtrx
() автор топика
Ответ на: комментарий от peregrine

Понятно что того кто писал код посадят, но ты правда думаешь что из такой ситуации ты выйдешь белым и пушистым? Я думаю нет.

А представь, что ты бросил на тротуаре бутылку стеклянную, какой-то лох на нее наступил, покатился и упал на спину, со всей дури ударившись затылком и умер. Мог ли ты такое предположить? - Нет?! Ну и суда нет. А вот если ты телевизор из окна выбросишь, и он упадет кому-то на голову, то тебя будут судить за причинение смерти по неосторожности.

rtxtxtrx
() автор топика
Ответ на: комментарий от peregrine

там все не так просто. это как сейчас на поклон к бидону половина мира ездит и с трепетом относятся к любому заявлению госдепа. чем не узбек-хан наших дней? но у стран у этих у всех есть суверенитет

rtxtxtrx
() автор топика
Ответ на: комментарий от rtxtxtrx

но у стран у этих у всех есть суверенитет

Это у каких?

peregrine ★★★★★
()

Так вот в чем проблема этого метода: если какой-то наркоман отдаст 20 гиговый архив с no-cache, то мой пека уйдет в своп и не выйдет из него…

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

и разве, если ты попадаешь на капчу или «подождите…», там разве в урл ни чем не гадит? или куки?

usi_svobodi
()
Ответ на: комментарий от usi_svobodi

если ты попадаешь на капчу или «подождите…»

One moment, please... мой сканер умеет успешно обходить эту проверку, выполняя js с помощью node.js

rtxtxtrx
() автор топика
Ответ на: комментарий от usi_svobodi

я просто сделал чтение 128 килобайт, все что больше не проверяется

rtxtxtrx
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.