Підключення до HTTPS за допомогою netcat (nc) [закрито]


41

Я працюю над домашнім завданням для свого коледжу. Завдання - отримати веб-сторінку на HTTPS за допомогою nc (netcat).

Щоб отримати сторінку через HTTP, я роблю це:

cat request.txt | nc -w 5 <someserver> 80

У request.txt у мене є запит HTTP 1.1

GET / HTTP/1.1
Host: <someserver>

Зараз ... Це прекрасно працює. Як я можу отримати веб-сторінку, яка використовує HTTPS?

Я отримую такий сертифікат сторінки. І це той момент, в який я застряг

openssl s_client -connect <someserver>:443

socat - OPENSSLпрацювало б, але це, мабуть, не ваше завдання.
Тобу

s / колаж / коледж /, s / witch / котрий /
Jukka Dahlbom

1
Ви можете використовувати перенаправлення bash, щоб уникнути використання cat, тобто nc -w 5 <someserver> 80 < request.txt.
RastaJedi

Відповіді:


53

ncне робить https. openssl s_clientтак само близько, як ви отримаєте. Зробіть щось подібне:

$ cat request.txt | openssl s_client -connect server:443

3
Я маю на увазі, якщо тільки ваше завдання полягає в тому, щоб написати якийсь код, який робить SSL. Це була б територія StackOverflow :)
Білл Вайс

7
Я спробував це, але не отримую те, що сервер мені передає в stdout ...
Собака їсть котячий світ

32

ncat --ssl

sudo apt-get install nmap
printf 'GET / HTTP/1.1\r\nHost: github.com\r\n\r\n' | ncat --ssl github.com 443

Те саме на Super User: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Тестовано на Ubuntu 18.04.


чи є спосіб взяти вашу команду та передати в неї команди імені користувача та пароля для веб-сайтів https, які потребують автентифікації?
користувач53029

@ user53029 Я думаю, що не для більшості веб-сайтів, де працює автентифікація, заповнивши форму та надавши вам сесійні файли cookie. Якщо це не один з небагатьох веб-сайтів, який використовує інші методи аутентифікації, такі як en.wikipedia.org/wiki/Basic_access_authentication . Ви також можете вручну заповнити форму, а потім надіслати файл cookie, поки він дійсний. Або , якщо ви відчайдушно використовувати stackoverflow.com/questions/13376189 / ...
Чіро Сантіллі新疆改造中心法轮功六四事件

ncat не є nc, ncat не підтримує збереження зв'язку при надсиланні корисного навантаження, як nc. На запитання потрібна об'єктивна відповідь, використовуючи nc не інші програми.
e-info128

1
@ e-info128 дякую за цю інформацію. Моя філософія така: коли я щось шукаю в Google, і натискаю на цю сторінку, я знайду відповідь, яку хочу.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

що є sudo apt-get install nmap??
Олександр Міллс

6

Напевно, ви хочете використовувати stunnel.

Програма GNU, що дозволяє шифрувати довільні TCP-з'єднання всередині шару захищених сокетів (SSL).

http://www.stunnel.org

Це дуже UNIX-y. Один чудовий інструмент для одного простого завдання.


1
stunnel + nc працював, я думаю. Гарна думка.
Білл Вайс

2

Попросіть професора чи технічну допомогу. Ви ніколи не намагатиметесь робити HTTPS через netcat в реальному світі (це openssl s_clientбув би мій інструмент першого ряду вибору, але є й інші варіанти), тому шанси знайти "правильну" відповідь, яку хоче професор, запитуючи людей у ​​реальному світ низький. Я, мабуть, переглянув усі слайди / конспекти з лекцій; типово на ці "неможливі" запитання насправді відповідають на лекціях, і їх задають лише, щоб побачити, хто насправді звертає увагу на уроці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.