【问题标题】:Why 403 forbidden with curl where cookies seams to work?为什么 403 在 cookie 接缝的地方用 curl 禁止?
【发布时间】:2016-12-04 15:16:38
【问题描述】:

在下面的示例中,您能否将输出视为我的结论所依据的 cmets。

基于第一个,我说 cookie 正在工作,因为它想将我重定向到 /project

问题

既然我可以看到 cookie 正在工作,为什么我会收到 403 禁止?

user='testtest2@testtest2.com'
pass="a"
url="https://www.sharelatex.com"
zip="$url/project/579ba5e03cd63aa32d8bf922/download/zip"

cd /tmp
rm cookies.txt p.zip
csrf=""

csrf=$(curl -s -k --cookie-jar cookies.txt $url/login | perl -lne 'print $1 if /csrfToken = \"(.+?)\"/')

echo $csrf
cat cookies.txt

d="email=$user&password=$pass&_csrf=$csrf"

clear

curl -s -v -k -L --cookie cookies.txt -d $d $url/login


# * Connection #0 to host www.sharelatex.com left intact
# {"redir":"/project"}

clear

curl -s -v -k -L --cookie cookies.txt -d $d $url/project

# < HTTP/1.1 403 Forbidden

【问题讨论】:

  • 用户代理在 CSRF 验证后检查?
  • 好主意!虽然没有帮助......
  • 好吧,也许是速率限制?

标签: linux bash curl cookies


【解决方案1】:

查看最后一个login 命令的输出

* Replaced cookie sharelatex_session

所以你需要保存新的 cookie 并使用它。

user='testtest2@testtest2.com'
pass="a"
url="https://www.sharelatex.com"
zip="$url/project/579ba5e03cd63aa32d8bf922/download/zip"

cd /tmp
rm cookies.txt file.zip
csrf=""

csrf=$(curl -s -k --cookie-jar cookies.txt $url/login | perl -lne 'print $1 if /csrfToken = \"(.+?)\"/')

d="email=$user&password=$pass&_csrf=$csrf"

curl -s -v -k -L -c cookies.txt -b cookies.txt -d $d $url/login

curl -s -v -k -L --cookie cookies.txt  $zip -o file.zip
unzip -l file.zip

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 2016-06-05
    • 2022-01-07
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多