使用netcat(nc)连接到HTTPS [关闭]


41

我正在为我的大学做作业。任务是使用nc(netcat)在HTTPS上获取网页。

要通过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 / collage / college /,s / witch /
that

1
您可以使用bash重定向来避免使用cat,即nc -w 5 <someserver> 80 < request.txt
RastaJedi '16

Answers:


53

nc不执行https。 openssl s_client尽你所能。做这样的事情:

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

3
我的意思是,除非您的工作是写一些执行SSL的代码。那将是StackOverflow的领地:)
Bill Weiss 2010年

6
我已经尝试过了,但是我没有在标准输出中得到服务器发回给我的
东西

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

同样在超级用户上:https : //superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

在Ubuntu 18.04上测试。


有什么方法可以将您的命令传递给需要身份验证的https站点的用户名和密码命令?
user53029 '16

@ 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??
亚历山大·米尔斯


2

向教授或助教寻求帮助。您将永远不会尝试在现实世界中通过netcat进行HTTPS(openssl s_client这将是我的首选工具,但还有其他选择),因此有可能通过询问现实中的人来找到教授想要的“正确”答案世界很低。我可能会看完讲座中的所有幻灯片/笔记;通常,这些“不可能的”问题实际上是在讲课中回答的,只是问看谁在课堂上真正关注。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.