下载HTTPS网站只能通过使用wget的用户名和密码来访问吗?

米哈尔

我正在尝试递归下载通常仅在您登录时才可用的网站。

我有有效的用户名和密码,但是问题是我需要通过Web界面登录,因此使用--user=user and --password=password无济于事。

wget仅下载一个带有文本的网页:很抱歉,该页面不可用,也许您忘记了登录?

可以下载吗?

我什至不能在登录页面上使用--user,--password,因为没有FTP / HTTP文件检索登录,如所述man wget

--user=user
--password=password
    Specify the username user and password password for both FTP and
    HTTP file retrieval.

那里有经典的图形登录。

如果我尝试这样做:wget --save-cookies coookies --keep-session-cookies --post-data='j_username=usr&j_password=pwd' 'https://idp2.civ.cvut.cz/idp/Authn/UserPassword'使用POST方法登录并尝试保存cookie,coookies文件为空,并且保存的页面为某些错误页面。

网址为https://idp2.civ.cvut.cz/idp/Authn/UserPassword实际上,当我想登录时,它会将我重定向到此页面,当我成功登录时,它会将我重定向回我之前的页面或登录后想要的某个页面(例如:https://progtest.fit.cvut.cz/

用户名

会话信息可能保存在cookie中,以便您登录后可以导航到其他页面。

如果是这种情况,您可以分两个步骤进行操作:

  1. 使用wget--save-cookies mycookies.txt--keep-session-cookies你一起的网站的登录页面上的选项--username--password选项
  2. 在您要检索的后续页面上使用wget--load-cookies mycookies.txt选项。

编辑

如果--passwordand--username选项不起作用,则必须找出通过登录页面发送到服务器的信息并进行模拟:

  • 对于GET请求,您可以将GET参数直接添加到wget必须获取的地址中(确保正确引用&=和其他特殊字符)。网址可能看起来像https://the_url?user=foo&pass=bar
  • 对于POST请求,您可以使用wget--post-data=the_needed_info选项在所需的登录信息上使用post方法。

编辑2

似乎确实需要使用POST带有j_usernamej_password设置方法尝试--post-data='j_username=yourusername&j_password=yourpassword选择wget

编辑3

有了原始页面,我就可以了解更多情况。话虽这么说,我不能确保它能正常工作,因为,我没有(也不想要)有效的凭证。

话虽这么说,这是发生了什么事:

  1. 该页面https://progtest.fit.cvut.cz/将设置一个PHPSESSIDcookie,并为您提供登录选项。
  2. 单击该login按钮将发送一个请求,https://progtest.fit.cvut.cz/shibboleth-fit.php请求将使用PHPSESSID cookie(不确定是否使用它),并使用专门为您设计的url将您重定向到SSO引擎,如下所示:https://idp2.civ.cvut.cz/idp/profile/SAML2/Redirect/SSO?SAMLRequest=SOME_VERY_LONG_AND_UNIQUE_ID
  3. SSO响应会设置一个名为的新Cookie _idp_authn_lc_key,并将您重定向到该页面https://idp2.civ.cvut.cz:443/idp/AuthnEngine该页面将您再次重定向到https://idp2.civ.cvut.cz:443/idp/Authn/UserPassword(实际登录页面)
  4. 您输入凭据并发送SSO响应中的帖子数据j_usernamej_passwordcookie
  5. ???

前四个步骤可以wget像这样完成

origin='https://progtest.fit.cvut.cz/'

# Get the PHPSESSID cookie
wget --save-cookies phpsid.cki --keep-session-cookies "$origin"

# Get the _idp_authn_lc_key cookie
wget --load-cookies phpsid.cki  --save-cookies sso.cki --keep-session-cookies --header="Referer: $origin" 'https://progtest.fit.cvut.cz/shibboleth-fit.php'

# Send your credentials
wget --load-cookies sso.cki --save-cookies auth.cki --keep-session-cookies --post-data='j_username=usr&j_password=pwd' 'https://idp2.civ.cvut.cz/idp/Authn/UserPassword'

请注意,wget重定向完全由他自己完成,在这种情况下,这对我们有很大帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

动态用户名可以用作 django 中的对象来访问类成员吗?

如何使用经过身份验证的用户名和密码离线下载网站?

使用Springboot在https url中的用户名和密码

通过https从C#以纯文本格式发送用户名和密码到Wordpress网站是否安全?

使用用户名和密码访问Kubernetes API

如何使用Selenium框架从受用户名和密码保护的网站上下载文件?

通过HTTPS调用使用用户名和密码的AWS Cognito用户池InitiateAuth的示例代码?

如何使用户名和密码表单工作 - 仅通过输入 url 无法看到网站

如何向 wget 提供用户名和密码?

如何在PowerShell控制台中使用用户名和密码使用wget

如何通过Windows登录名使用用户名和密码访问Outlook Exchange Server?

我可以在Spring Boot + Hibernate中通过文件加载用户名和密码吗?

curl 使用用户名密码和登录按钮登录网站

使用Windows身份验证和用户名/密码安全登录Azure上的网站

IOException当下载使用Java中的用户名和密码保护的文件时

如何授予不使用特定用户名和密码的用户访问数据库的权限?

如何使用用户名和密码访问Active Directory上的用户文件夹?

HTTPS URL中的用户名和密码是否安全?

gitlab-使用https推送,指定用户名和密码

如何仅使用用户名和密码使用 python 访问 Microsoft One Drive

如何在Axios中使用用户名和密码访问数据库

使用Azure用户名和密码在Azure中获取访问令牌

iOS:使用钥匙串存储用户名、密码和访问令牌

使用用户名和密码在PHP中访问sql

在 PHP 中使用 Curl 访问带有用户名和密码的 API

MySQL转储,使用正确的用户名和密码拒绝访问1045

如何使用用户名和密码访问 Asp.Net Core 中的 MongoDb?

登录使用错误的用户名和密码访问该帐户

在不使用用户名和密码的情况下访问firebird