====== Curl ======
Voir uniquement les headers et suivre les redirections
# curl -I -L https://google.fr
HTTP/2 301
location: https://www.google.fr/
content-type: text/html; charset=UTF-8
date: Thu, 16 Apr 2020 15:02:43 GMT
expires: Sat, 16 May 2020 15:02:43 GMT
cache-control: public, max-age=2592000
server: gws
content-length: 219
x-xss-protection: 0
x-frame-options: SAMEORIGIN
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,h3-T050=":443"; ma=2592000
HTTP/2 200
date: Thu, 16 Apr 2020 15:02:43 GMT
expires: -1
cache-control: private, max-age=0
content-type: text/html; charset=ISO-8859-1
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
server: gws
x-xss-protection: 0
x-frame-options: SAMEORIGIN
set-cookie: 1P_JAR=2020-04-16-15; expires=Sat, 16-May-2020 15:02:43 GMT; path=/; domain=.google.fr; Secure
set-cookie: NID=202=LPunTOssuEitx5yBl338FqBlsb11Enm76igNf7VXAONFw4pR6gyKH9vjHGK7mNsF0x8pzjcEB_lwqXV9G0N1T0NpjKpFw4fjfuo4jae-vDuxLmk9Gk7CsUABKfHCrOQokTya5XvpaCWsRdHkqP6DuwC2eRHFW15TESq84pjYOR0; expires=Fri, 16-Oct-2020 15:02:43 GMT; path=/; domain=.google.fr; HttpOnly
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,h3-T050=":443"; ma=2592000
accept-ranges: none
vary: Accept-Encoding
===== Authentification par form =====
https://forum.ubuntu-fr.org/viewtopic.php?id=1988093
#!/bin/bash
gMonsite="http://demo.redmine.org/login"
gPaheAAtteindre="http://demo.redmine.org/my/page"
gLogin="xxxxxxxx"
gPass="xxxxxxxx"
gFichierCookie="/tmp/cookie"
urlencode() {
local length="${#1}"
for (( i = 0; i < length; i++ )); do
local c="${1:i:1}"
case $c in
[a-zA-Z0-9.~_-]) printf "$c" ;;
*) printf '%%%02X' "'$c"
esac
done
}
urldecode() {
local url_encoded="${1//+/ }"
printf '%b' "${url_encoded//%/\\x}"
}
# 1/ On récupère un 1er cookie + authentification
gTokenAuthentification=`curl "${gMonsite}" -c "${gFichierCookie}" -s |\
grep csrf-token |\
sed -e 's/.*content="//ig' -e 's/".*//ig'`
gTokenAuthentification=$(urlencode "${gTokenAuthentification}")
# 2/ On s'authentifie sur le site
curl "${gMonsite}" \
-s \
-b "${gFichierCookie}" \
-c "${gFichierCookie}" \
--data "authenticity_token=${gTokenAuthentification}" \
--data "username=${gLogin}" \
--data "password=${gPass}" \
--data "login=Connexion" \
> /dev/null
# 3/ On va à la page correspondante, en faisant un grep
curl "${gPaheAAtteindre}" \
-s \
-b "${gFichierCookie}" |\
grep -c "129254"