ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

06.11.2015, 14:56
|
|
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме: 4512
Репутация:
0
|
|
Нужно смотреть не исходный код, а DOM-модель страницы. В разных браузерах инструменты для разработчика называются по-разному, но хоткеи обычно совпадают - Ctrl+Shift+I
|
|
|

06.11.2015, 14:59
|
|
Guest
Сообщений: n/a
Провел на форуме: 17472
Репутация:
0
|
|
Сообщение от M_script
M_script said:
↑
Нужно смотреть не исходный код, а DOM-модель страницы. В разных браузерах инструменты для разработчика называются по-разному, но хоткеи обычно совпадают - Ctrl+Shift+I
если это мне, то я знаю как в ручную это сделать, а как это сделать во время парсинга програмно - не понятно
|
|
|
|

06.11.2015, 15:05
|
|
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме: 4512
Репутация:
0
|
|
altai, это было всем.
Программно можно выполнить JS интерпретатором или переписать код JS на нужный ЯП. Если интересует только AJAX, он перехватывается так же, как все остальные HTTP-запросы.
|
|
|

07.11.2015, 01:18
|
|
Guest
Сообщений: n/a
Провел на форуме: 91312
Репутация:
12
|
|
Есть такая фигня, открываешь сайт, печатать её в адресной строке после javascript:, и она пишет тебе все урлы js на сайте, которые ты видишь в алерте
|
|
|
|

07.11.2015, 01:29
|
|
Guest
Сообщений: n/a
Провел на форуме: 91312
Репутация:
12
|
|
Сообщение от SS_47
SS_47 said:
↑
браузером рандомно
нужен для того, чтобы разграничить разные части mutipart-запроса, например, два разных файла
если ты пишешь какой-то парсер, то можешь просто захардкодить достаточно длинную уникальную строку
чуть-чуть информации можешь найти в вики в примере и пару строк под примером
https://ru.wikipedia.org/wiki/Multipart/form-data
А вот и рандомно, да не всегда. Написано же, по спец. Алгоритму. Как узнать алгоритм? Я подставил другие значения и запрос не проходит. Вообще зачем генерировать что-то? Как проверяется потом валидность сгенерированного значения?
|
|
|
|

07.11.2015, 06:41
|
|
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме: 4512
Репутация:
0
|
|
Сообщение от user6334
user6334 said:
↑
Написано же, по спец. Алгоритму.
Это вырвано из контекста, там другое написано.
"boundary (граница) — это последовательность байтов, которая не должна встречаться внутри закодированного представления данных части." Все просто и понятно, никаких дополнительных условий нет.
"Обычно клиент (браузер) генерирует эту последовательность случайно или по специальному алгоритму." В данном случае клиент - это твой софт. Как ты напишешь алгоритм, такой он и будет.
|
|
|

07.11.2015, 12:55
|
|
Guest
Сообщений: n/a
Провел на форуме: 3772
Репутация:
7
|
|
Сообщение от user6334
user6334 said:
↑
А вот и рандомно, да не всегда. Написано же, по спец. Алгоритму. Как узнать алгоритм? Я подставил другие значения и запрос не проходит. Вообще зачем генерировать что-то? Как проверяется потом валидность сгенерированного значения?
Алгоритм, как написали выше выбираешь ты сам
Смотри
В том случае, когда ты используешь application/x-www-form-urlencoded ты посылаешь несколько параметров разделенных амперсандом
Код:
Code:
param1=qwerty¶m2=123
Сервер получая такой запрос, знает, что между & и = находится название параметра, между = и & - значение и он может распарсить их
Multipart/form-data часто используется для передачи файлов и никто не может гарантировать, что в бинарном формате твоего файла не встретится что-то вроде & или =
Поэтому ты говоришь: сервер, смотри, я использую Asrf456BGe4h для разделения разных частей запроса
Код:
Code:
Content-Type: multipart/form-data; boundary=Asrf456BGe4h
и дальше формируешь запрос
Код:
Code:
--Asrf456BGe4h
Content-Disposition: form-data; name="DestAddress"
(пустая строка)
brutal-vasya@example.com
--Asrf456BGe4h
Content-Disposition: form-data; name="MessageTitle"
(пустая строка)
--Asrf456BGe4h
Content-Disposition: form-data; name="MessageText"
(пустая строка)
Привет, Василий! Твой ручной лев, которого ты оставил
у меня на прошлой неделе, разодрал весь мой диван.
Пожалуйста забери его скорее!
Во вложении две фотки с последствиями.
--Asrf456BGe4h
Content-Disposition: form-data; name="AttachedFile1"; filename="horror-photo-1.jpg"
Content-Type: image/jpeg
(пустая строка)
(двоичное содержимое первой фотографии)
--Asrf456BGe4h
Content-Disposition: form-data; name="AttachedFile2"; filename="horror-photo-2.jpg"
Content-Type: image/jpeg
(пустая строка)
(двоичное содержимое второй фотографии)
--Asrf456BGe4h--
(отсутствующий эпилог - пустая строка)
и сервер прочитав хедер content-type может распарсить этот запрос и при генерации boundary рандомно и достаточно большой длины с высокой долей вероятности не возникнет проблем с тем, что внутри приаттаченного файла есть данные, которые сломают серверу парсинг
|
|
|
|

07.11.2015, 17:47
|
|
Guest
Сообщений: n/a
Провел на форуме: 91312
Репутация:
12
|
|
Спасибо за подробное объяснение, я с этим уже и так разобрался, но. Отправляю, запрос с сайта, он проходит, нажимаю в просмотре заголовков реплей, меняю значение
boundary в заголовке и в пост-запросе - вываливается ошибка, что вроде как неверный csrf токен, если значение boundary я не меняю, реплей проходит нормально
|
|
|
|

07.11.2015, 19:03
|
|
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме: 4512
Репутация:
0
|
|
Сообщение от user6334
user6334 said:
↑
нажимаю в просмотре заголовков реплей
В какой программе?
|
|
|

07.11.2015, 19:32
|
|
Guest
Сообщений: n/a
Провел на форуме: 91312
Репутация:
12
|
|
Сообщение от M_script
M_script said:
↑
В какой программе?
Плагин для мадзиллы
|
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|