Я изучаю компьютерную безопасность и у меня есть вопрос о командах. У меня есть уязвимый веб-сервер, на котором я могу использовать переполнение буфера, используя команду telnet, а затем отправляя http-получение с очень длинным URL-адресом. URL-адрес переполнит буфер. Я точно знаю, что это работает. Но теперь я хочу использовать netcat для автоматизации процесса. До сих пор у меня есть
netcat localhost 8080 < payload1
Я отправляю его на локальный хост, потому что я запускаю сервер и атаку на одном компьютере. Payload1 в настоящее время представляет собой искаженный оператор HTTP Get. Однако сервер не может этого понять, потому что он не может открыть файл, чтобы увидеть оператор HTTP Get. Поэтому мой вопрос: как я могу сделать оператор HTTP Get исполняемым или как заставить сервер распознавать HTTP Get в файле?
Спасибо!
редактировать: похоже, что req, который содержит uri, среди прочего, равен 0. Или, по крайней мере, когда я проверяю его с помощью GDB. Это строка кода, которая вызывает у меня проблему:
if (req->uri == NULL || req->method == NULL ||
req->headers == NULL || req->version == NULL) {
return 0;
}
GDB говорит, что это ошибка сегментации здесь, в операторе if.
Я знаю, что это, вероятно, не имеет большого значения, поскольку остального кода с сервера там нет. Однако файл, который отправляет оператор netcat, выглядит следующим образом:
get /aaaaaaaaaaaaAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa http/1.1
Если бы я использовал telnet для его передачи, сервер действительно рухнул, поэтому я знаю, что это проблема с netcat. Было заявлено, что полезная нагрузка1 должна быть в формате DOS с конечными строками CRLF. Чтобы проверить это, я перенес файл на компьютер с Windows, и он отобразился правильно, однако мне было интересно, есть ли другой способ проверить это?