Я изучаю компьютерную безопасность и задаю вопрос о командах. У меня есть уязвимый веб-сервер, на котором я могу использовать переполнение буфера, используя команду telnet, а затем отправляя http get с очень длинным 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. Было утверждение, что payload1 должен быть в формате DOS с конечными строками CRLF. Чтобы проверить это, я передал файл на компьютер с Windows, и он отображался правильно, однако мне было интересно, есть ли другой способ проверить это?