From 5a4e89188695d2fe29e43a5d87e3e86cf6cfa4f4 Mon Sep 17 00:00:00 2001 From: tavo-wasd Date: Tue, 13 Feb 2024 19:22:57 -0600 Subject: [PATCH] descarga --- descarga-fichero.py | 47 --------------------------- descarga-fichero.sh | 31 ------------------ test.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++ works.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 154 insertions(+), 78 deletions(-) delete mode 100644 descarga-fichero.py delete mode 100644 descarga-fichero.sh create mode 100644 test.sh create mode 100644 works.sh diff --git a/descarga-fichero.py b/descarga-fichero.py deleted file mode 100644 index 4bd2137..0000000 --- a/descarga-fichero.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python -import httpx -from selectolax.parser import HTMLParser - -client = httpx.Client() -url = "https://soportefirmadigital.com/sfdj/dl.aspx" -file = "ClientesLinux_DEB64_Rev25.zip" -desc = "Usuarios Linux (DEB 64bits)" -code = 1234 - -def main(): - # GET request, parse response - html = HTMLParser(client.get(url).text) - - # Store ASPX values - viewstategenerator = html.css_first("input#__VIEWSTATEGENERATOR").attributes['value'] - eventvalidation = html.css_first("input#__EVENTVALIDATION").attributes['value'] - viewstate = html.css_first("input#__VIEWSTATE").attributes['value'] - - # Fill form - formdata = { - "__EVENTTARGET": "ctl00$certContents$LinkButton3", - "__EVENTARGUMENT": "", - "__LASTFOCUS": "", - "__VIEWSTATE": viewstate, - "__VIEWSTATEGENERATOR": viewstategenerator, - "__EVENTVALIDATION": eventvalidation, - "ctl00$certContents$hiddenISO": file, - "ctl00$certContents$hidden_ISO_URL": "-", - "ctl00$certContents$ddlInstaladores": desc, - "ctl00$certContents$txtDescripcion": "", - "ctl00$certContents$txtSerialNumber": code, - "ctl00$certContents$hiddenABID": "", - "ctl00$certContents$chkConfirmo": "on", - } - - # Send form - response = client.post(url, data=formdata) - print(response.text) - - # Respuesta esperada (suponiendo que se ingresa un número inválido): - # Su tarjeta tiene un número inválido, o bien, no está registrada para soporte. En caso de duda contacte a su Institución Emisora. - - # Respuesta obtenida (como si nunca se hubiera enviado el número serial): - # Debe digitar el número de serie de su tarjeta - -main() diff --git a/descarga-fichero.sh b/descarga-fichero.sh deleted file mode 100644 index 0ece094..0000000 --- a/descarga-fichero.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -TEMP_DIR="/tmp/firma-digital" - -SERIAL=1234 -#DESC="Usuarios+Linux+(DEB+64bits)" -DESC="Usuarios+Linux+%28DEB+64bits%29" -FILE="ClientesLinux_DEB64_Rev25.zip" -#TXTD="Distribuciones+basadas+en+DEB+x64.Versiones+Homologadas-Ubuntu+18.04+LTS+o+superior(solo+versiones+LTS)-Debian+10Soporte+únicamente+en+máquinas+Físicas.MD5:3a8c11d0273daee7bfc63a17615a8dc9" -TXTD="Distribuciones+basadas+en+DEB+x64.%0D%0AVersiones+Homologadas%0D%0A-Ubuntu+18.04+LTS+o+superior%28solo+versiones+LTS%29%0D%0A-Debian+10%0D%0A%0D%0ASoporte+%C3%BAnicamente+en+m%C3%A1quinas+F%C3%ADsicas.%0D%0AMD5%3A3a8c11d0273daee7bfc63a17615a8dc9" - -urlencode() { - ENCODEDURL="$(tr -d '\n' | curl -Gs -w %{url_effective} --data-urlencode @- ./ ||: | sed "s/%0[aA]$//;s/^[^?]*?\(.*\)/\1/")" - printf '%s' "$ENCODEDURL" | sed 's/^http.*?//g' -} - -rm -rf "$TEMP_DIR" ; mkdir -p "$TEMP_DIR" -curl -s --compressed 'https://soportefirmadigital.com/sfdj/dl.aspx' \ - -c "$TEMP_DIR/cookies.txt" \ - -o "$TEMP_DIR/descarga.html" || return 1 - -i=0 -ASP_VARS="$(for VAR in __VIEWSTATE __VIEWSTATEGENERATOR __EVENTVALIDATION ; do - VAL="$(grep -o "id=\"$VAR\"\svalue=\".*\"" "$TEMP_DIR/descarga.html" | cut -d '"' -f 4 | urlencode)" - [ "$i" != 0 ] && printf '&' - printf '%s=%s' "$VAR" "$VAL" - i=+1 -done)" - -curl 'https://soportefirmadigital.com/sfdj/dl.aspx' \ - --data-raw "__EVENTTARGET=ctl00%24certContents%24LinkButton3&__EVENTARGUMENT=&__LASTFOCUS=&$ASP_VARS&ctl00%24certContents%24hiddenISO=$FILE&ctl00%24certContents%24hidden_ISO_URL=-&ctl00%24certContents%24ddlInstaladores=$DESC&ctl00%24certContents%24txtDescripcion=$TXTD&ctl00%24certContents%24txtSerialNumber=$SERIAL&ctl00%24certContents%24hiddenABID=&ctl00%24certContents%24chkConfirmo=on" \ - -b "$TEMP_DIR/cookies.txt" diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..ab18e6c --- /dev/null +++ b/test.sh @@ -0,0 +1,77 @@ +#!/bin/sh +alias curl="curl \ + -H 'Pragma: no-cache' \ + -H 'Connection: keep-alive' \ + -H 'Cache-Control: no-cache' \ + -H 'Upgrade-Insecure-Requests: 1' \ + -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/128.0' \ + -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' \ + -H 'Accept-Encoding: gzip, deflate, br' \ + -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' \ + -H 'Referer: https://www.soportefirmadigital.com/sfdj/dl.aspx?lang=en' \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -H 'Sec-Fetch-Dest: document' \ + -H 'Sec-Fetch-Mode: navigate' \ + -H 'Sec-Fetch-Site: same-origin' \ + -H 'Sec-Fetch-User: ?1' \ +" + +urlencode() { + ENCODEDURL="$(tr -d '\n' | curl -Gs -w %{url_effective} --data-urlencode @- ./ ||: | sed "s/%0[aA]$//;s/^[^?]*?\(.*\)/\1/")" + printf '%s' "$ENCODEDURL" | sed 's/^http.*?//g' +} + +get_asp_var() { + VARS="$@" ; i=0 + for VAR in $VARS ; do + VAL="$(printf '%s' "$REQUEST" | grep -o "id=\"$VAR\"\svalue=\".*\"" | cut -d '"' -f 4 | urlencode)" + [ "$i" != 0 ] && printf '&' + printf '%s=%s' "$VAR" "$VAL" + i=+1 + done +} + +download_iso() { + SN="1234" + URL="https://soportefirmadigital.com/sfdj/dl.aspx" + hiddenISO="ClientesLinux_DEB64_Rev25.zip" + ddlInstaladores="Usuarios+Linux+%28DEB+64bits%29" + txtDescripcion="Distribuciones+basadas+en+DEB+x64.%0D%0AVersiones+Homologadas%0D%0A-Ubuntu+18.04+LTS+o+superior%28solo+versiones+LTS%29%0D%0A-Debian+10%0D%0A%0D%0ASoporte+%C3%BAnicamente+en+m%C3%A1quinas+F%C3%ADsicas.%0D%0AMD5%3A3a8c11d0273daee7bfc63a17615a8dc9" + + REQUEST="$(curl -s --compressed "$URL" -o -)" + + ASP_VARS="$(get_asp_var __VIEWSTATE __VIEWSTATEGENERATOR __EVENTVALIDATION)" + REQUEST="$(curl -Ls --compressed "$URL" \ + --data-raw "__EVENTTARGET=ctl00%24certContents%24ddlInstaladores" \ + --data-raw "__EVENTARGUMENT=" \ + --data-raw "__LASTFOCUS=" \ + --data-raw "$ASP_VARS" \ + --data-raw "ctl00%24certContents%24hiddenISO=Windows_rev62.exe" \ + --data-raw "ctl00%24certContents%24hidden_ISO_URL=-" \ + --data-raw "ctl00%24certContents%24txtSerialNumber=" \ + --data-raw "ctl00%24certContents%24ddlInstaladores=$ddlInstaladores" \ + --data-raw "ctl00%24certContents%24txtDescripcion=$txtDescripcion" \ + --data-raw "ctl00%24certContents%24chkConfirmo=" \ + --data-raw "ctl00%24certContents%24hiddenABID=" \ + -o -)" + + ASP_VARS="$(get_asp_var __VIEWSTATE __VIEWSTATEGENERATOR __EVENTVALIDATION)" + REQUEST="$(curl -H "Set-Cookie: SN=$SN" -s --compressed "$URL" \ + --cookie "SN=$SN" \ + --data-raw "__EVENTTARGET=ctl00%24certContents%24LinkButton3" \ + --data-raw "__EVENTARGUMENT=" \ + --data-raw "__LASTFOCUS=" \ + --data-raw "$ASP_VARS" \ + --data-raw "ctl00%24certContents%24hiddenISO=$hiddenISO" \ + --data-raw "ctl00%24certContents%24hidden_ISO_URL=-" \ + --data-raw "ctl00%24certContents%24txtSerialNumber=$SN" \ + --data-raw "ctl00%24certContents%24ddlInstaladores=$ddlInstaladores" \ + --data-raw "ctl00%24certContents%24txtDescripcion=$txtDescripcion" \ + --data-raw "ctl00%24certContents%24chkConfirmo=on" \ + --data-raw "ctl00%24certContents%24hiddenABID=" \ + -o -)" + + printf '%s' "$REQUEST" +} + +download_iso diff --git a/works.sh b/works.sh new file mode 100644 index 0000000..ab18e6c --- /dev/null +++ b/works.sh @@ -0,0 +1,77 @@ +#!/bin/sh +alias curl="curl \ + -H 'Pragma: no-cache' \ + -H 'Connection: keep-alive' \ + -H 'Cache-Control: no-cache' \ + -H 'Upgrade-Insecure-Requests: 1' \ + -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/128.0' \ + -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' \ + -H 'Accept-Encoding: gzip, deflate, br' \ + -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' \ + -H 'Referer: https://www.soportefirmadigital.com/sfdj/dl.aspx?lang=en' \ + -H 'Content-Type: application/x-www-form-urlencoded' \ + -H 'Sec-Fetch-Dest: document' \ + -H 'Sec-Fetch-Mode: navigate' \ + -H 'Sec-Fetch-Site: same-origin' \ + -H 'Sec-Fetch-User: ?1' \ +" + +urlencode() { + ENCODEDURL="$(tr -d '\n' | curl -Gs -w %{url_effective} --data-urlencode @- ./ ||: | sed "s/%0[aA]$//;s/^[^?]*?\(.*\)/\1/")" + printf '%s' "$ENCODEDURL" | sed 's/^http.*?//g' +} + +get_asp_var() { + VARS="$@" ; i=0 + for VAR in $VARS ; do + VAL="$(printf '%s' "$REQUEST" | grep -o "id=\"$VAR\"\svalue=\".*\"" | cut -d '"' -f 4 | urlencode)" + [ "$i" != 0 ] && printf '&' + printf '%s=%s' "$VAR" "$VAL" + i=+1 + done +} + +download_iso() { + SN="1234" + URL="https://soportefirmadigital.com/sfdj/dl.aspx" + hiddenISO="ClientesLinux_DEB64_Rev25.zip" + ddlInstaladores="Usuarios+Linux+%28DEB+64bits%29" + txtDescripcion="Distribuciones+basadas+en+DEB+x64.%0D%0AVersiones+Homologadas%0D%0A-Ubuntu+18.04+LTS+o+superior%28solo+versiones+LTS%29%0D%0A-Debian+10%0D%0A%0D%0ASoporte+%C3%BAnicamente+en+m%C3%A1quinas+F%C3%ADsicas.%0D%0AMD5%3A3a8c11d0273daee7bfc63a17615a8dc9" + + REQUEST="$(curl -s --compressed "$URL" -o -)" + + ASP_VARS="$(get_asp_var __VIEWSTATE __VIEWSTATEGENERATOR __EVENTVALIDATION)" + REQUEST="$(curl -Ls --compressed "$URL" \ + --data-raw "__EVENTTARGET=ctl00%24certContents%24ddlInstaladores" \ + --data-raw "__EVENTARGUMENT=" \ + --data-raw "__LASTFOCUS=" \ + --data-raw "$ASP_VARS" \ + --data-raw "ctl00%24certContents%24hiddenISO=Windows_rev62.exe" \ + --data-raw "ctl00%24certContents%24hidden_ISO_URL=-" \ + --data-raw "ctl00%24certContents%24txtSerialNumber=" \ + --data-raw "ctl00%24certContents%24ddlInstaladores=$ddlInstaladores" \ + --data-raw "ctl00%24certContents%24txtDescripcion=$txtDescripcion" \ + --data-raw "ctl00%24certContents%24chkConfirmo=" \ + --data-raw "ctl00%24certContents%24hiddenABID=" \ + -o -)" + + ASP_VARS="$(get_asp_var __VIEWSTATE __VIEWSTATEGENERATOR __EVENTVALIDATION)" + REQUEST="$(curl -H "Set-Cookie: SN=$SN" -s --compressed "$URL" \ + --cookie "SN=$SN" \ + --data-raw "__EVENTTARGET=ctl00%24certContents%24LinkButton3" \ + --data-raw "__EVENTARGUMENT=" \ + --data-raw "__LASTFOCUS=" \ + --data-raw "$ASP_VARS" \ + --data-raw "ctl00%24certContents%24hiddenISO=$hiddenISO" \ + --data-raw "ctl00%24certContents%24hidden_ISO_URL=-" \ + --data-raw "ctl00%24certContents%24txtSerialNumber=$SN" \ + --data-raw "ctl00%24certContents%24ddlInstaladores=$ddlInstaladores" \ + --data-raw "ctl00%24certContents%24txtDescripcion=$txtDescripcion" \ + --data-raw "ctl00%24certContents%24chkConfirmo=on" \ + --data-raw "ctl00%24certContents%24hiddenABID=" \ + -o -)" + + printf '%s' "$REQUEST" +} + +download_iso