Подмена ответа запроса



  • В данной теме я совсем дилетант)

    Понадобилось подменить ответ запроса при загрузке сайта. Быстро наковырял в Fiddler'е, в обычном браузере подменяет. Ну и теперь понятия не имею как добиться того же в BAS. Даже мыслей нет в какую сторону продолжить копать. То ли в BAS что-то прикручивать, то ли управлять Fiddler'ом как-то через командную строку, то ли бубном по компу стукать. Поиск похожих вопросов на форуме тоже не дал подсказок. На форуме Zennoposter'а вообще что-то на C#. Вот сижу и прикуриваю.



  • @SecDeveloper В БАС нет такого функционала, к сожалению. Только костыли городить, даже не хочу их описывать xD

    Если это какой-то ajax запрос, то можно попробовать сделать обертку вокруг оригинального XMLHttpRequest, fetch



  • @UserTrue Действительно получилось через fetch! Только подмена работает не всегда адекватно, иными словами, приходится по 2-3 раза обновлять страницу и подменять ответ.

    Сначала в BAS:

    • запрещаю нужный запрос по маске "testsite.com/privat/info"
    • загружаю основной сайт "testsite.com"
    • очищаю маски
    • делаю обертку fetch (для подмены ответа) и тут же вызываю fetch("testsite.com/privat/info").

    Как-то не очень элегантно вышло.

    Нельзя сразу же подменять ответ без его первоначального запрета?



  • @SecDeveloper Можно использовать действие "выполнять js при загрузке страницы"



  • @UserTrue тогда ответ не подменяется. Если в действии "выполнять js при загрузке странице" дублировать вызов fetch, загружаются 2 неизмененных ответа (ну то, что 2 - это понятно).
    В любом случае спасибо)



  • This post is deleted!


  • @gurkin4 тренировался на "login.aliexpress.com", потому что уже писал скрипты под него раньше. При подозрительной активности или плохом прокси доступна регистрация либо только с телефона, либо чаще всего только с почты. Решать какое поле выдать (с телефоном или с почтой) сайт решает неведомой логикой, но параметром (joinTheme) в запросе "https://login.aliexpress.com/join/login_page_config.htm".

    Запрещается этот запрос. Затем делается обертка fetch (например, как здесь: https://badcode.ru/pieriekhvat-zaprosov-i-otvietov-javascript-fetch-api/) и сразу же вызывается нужный запрос fetch("https://login.aliexpress.com/join/login_page_config.htm") и подменяются 2 значения ответа (если нужна регистрация с телефона):

    joinTheme: "PHONE_FIRST", loginTheme: "EMAIL_FIRST"
    

    Либо (если нужна регистрация с почты):

    joinTheme: "ONLY_EMAIL", loginTheme: "ONLY_EMAIL"
    

    Про снифферы Вас плохо понял. Если речь о Fiddler'е, то он вполне способен подменять и заголовки запроса, и тело, и ответ.

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



  • This post is deleted!


  • @gurkin4 Вот поделка: fetch.xml.
    Выбирать с чего нужно регистрироваться и в режиме "Запись" запускать (чтобы видно было браузер и результаты).
    Понадобиться от 0 до 10 обновлений страницы. Может быть, если таймауты правильно расставить, то обновляться будет 0-1 раз.

    Насколько это удобно - не знаю. В любом случае одним параметром на AliExpress это не ограничивается. А если есть мощные приемы, то было бы на руку хотя бы держать их в голове. Реализацию можно улучшить, но общее представление уже есть.

    Жалко данные на сервере так не поменяешь), только User Interface. Но иногда это может дать доступ к формам, которые отправляют данные на сервер.



  • @SecDeveloper said in Подмена ответа запроса:

    @gurkin4 Вот поделка: fetch.xml.
    Выбирать с чего нужно регистрироваться и в режиме "Запись" запускать (чтобы видно было браузер и результаты).
    Понадобиться от 0 до 10 обновлений страницы. Может быть, если таймауты правильно расставить, то обновляться будет 0-1 раз.

    Насколько это удобно - не знаю. В любом случае одним параметром на AliExpress это не ограничивается. А если есть мощные приемы, то было бы на руку хотя бы держать их в голове. Реализацию можно улучшить, но общее представление уже есть.

    Жалко данные на сервере так не поменяешь), только User Interface. Но иногда это может дать доступ к формам, которые отправляют данные на сервер.

    Короче эта поделка без прокси с моим чистым ip только работает. Как показали тесты на плохих прокси, ответ не подменяется. Целый день ни на что убил. Видимо и правда бредом занимаюсь. Обидно.


Log in to reply