Сегодня мы поговорим о том как начать свой путь в хакинге новичку.
Сначала вам нужно ознакомиться с терминологией и основными командами в Linux.
Далее нам нужно разобраться, что такое трафик и понять как все устроено. Если тут вы что-нибудь не поймете, это легко ищется в интернете, но без этих базовых знаний нам не перейти к практике.
Ниже представлена сетевая модель OSI. Типы запросов и к чему они относятся.
Типы запросов.
Метод HTTP
Последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Обычно метод представляет собой короткое английское слово, записанное заглавными буквами. Обратите внимание, что название метода чувствительно к регистру. Сервер может использовать любые методы, не существует обязательных методов для сервера или клиента. Если сервер не распознал указанный клиентом метод, то он должен вернуть статус 501 (Not Implemented). Если серверу метод известен, но он неприменим к конкретному ресурсу, то возвращается сообщение с кодом 405 (Method Not Allowed). В обоих случаях серверу следует включить в сообщение ответа заголовок Allow со списком поддерживаемых методов. Кроме методов GET и HEAD, часто применяется метод POST.
OPTIONS - используется для определения возможностей веб-сервера или параметров соединения для конкретного ресурса. В ответ серверу следует включить заголовок Allow со списком поддерживаемых методов. Также в заголовке ответа может включаться информация о поддерживаемых расширениях. Предполагается, что запрос клиента может содержать тело сообщения для указания интересующих его сведений. Формат тела и порядок работы с ним в настоящий момент не определён; сервер пока должен его игнорировать. Аналогичная ситуация и с телом в ответе сервера.
Для того, чтобы узнать возможности всего сервера, клиент должен указать в URI звёздочку—«*». Запросы «OPTIONS * HTTP/1.1» могут также применяться для проверки работоспособности сервера (аналогично ping) и тестирования на предмет поддержки сервером протокола HTTP версии 1.1. Результат выполнения этого метода не кэшируется.
GET - используется для запроса содержимого указанного ресурса. С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса. Клиент может передавать параметры выполнения запроса в URI целевого ресурса после символа «?»:
GET /path/resource?param1=value1¶m2=value2 HTTP/1.1
Согласно стандарту HTTP, запросы типа GET считаются идемпотентными
Кроме обычного метода GET, различают ещё: Условный GET —содержит заголовки If Modified- Since, If - Match, If - Range и подобные; Частичный GET — содержит в запросе Range. Порядок выполнения подобных запросов определён стандартами отдельно.
HEAD - аналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. Запрос HEAD обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) и чтобы узнать, не изменился ли он с момента последнего обращения. Заголовки ответа могут кэшироваться. При несовпадении метаданных ресурса с соответствующей информацией в кэше — копия ресурса помечается как устаревшая.
POST - применяется для передачи пользовательских данных заданному ресурсу. При этом передаваемые данные включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер. В отличие от метода GET, метод POST не считается идемпотентным, то есть многократное повторение одних и тех же запросов POST может возвращать разные результаты.При результате выполнения 200 (Ok) в тело ответа следует включить сообщение об итоге выполнения запроса. Если был создан ресурс, то серверу следует вернуть ответ 201 (Created) с указанием URI нового ресурса в заголовке Location.
PUT - применяется для загрузки содержимого запроса на указанный в запросе URI. Если по заданному URI не существует ресурс, то сервер создаёт его и возвращает статус 201 (Created). Если же был изменён ресурс, то сервер возвращает 200 (Ok) или 204 (No Content). Сервер не должен игнорировать некорректные заголовки Content -*, передаваемые клиентом вместе с сообщением. Если какой - то из этих заголовков не может быть распознан или не допустим при текущих условиях, то необходимо вернуть код ошибки 501 (Not Implemented). Фундаментальное различие методов POST и PUT заключается в понимании предназначений URI ресурсов. Метод POST предполагает, что по указанному URI будет производиться обработка передаваемого клиентом содержимого. Используя PUT, клиент предполагает, что загружаемое содержимое соответствует находящемуся по данному URI ресурсу.
Заголовки HTTP
Заголовки HTTP (Headers) — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя - значение. Формат заголовков соответствует общему формату заголовков текстовых сетевых сообщений ARPA. Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой. Эта часть HTTP протокола одна из самых интересных для пентестера, так как большинство манипуляций происходит именно с хедерами. Все заголовки разделяются на четыре основных группы:
General Headers (рус. Общие заголовки) — используются в запросах и ответах.
Request Headers (рус. Заголовки запроса) — используются только в запросах.
Response Headers (рус. Заголовки ответа) — используются только в ответах.
Entity Headers (рус. Заголовки сущности) — сопровождают каждую сущность сообщения. Используются в запросах и ответах.
Это не полный список, полный вы можете найти в интернете, здесь же собраны самые главные.
Надеюсь эта информация оказалась вам полезной. Если вы хотите поддержать меня и вам интересна эта тема прошу подписаться и поставить отметку "нравится".