This commit is contained in:
tavo-wasd 2024-02-13 19:22:57 -06:00
parent d00889d566
commit 5a4e891886
4 changed files with 154 additions and 78 deletions

View file

@ -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):
# <span id="ctl00_certContents_lblErr" class="fieldErr" style="color:#C00000;">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.</span>
# Respuesta obtenida (como si nunca se hubiera enviado el número serial):
# <span id="ctl00_certContents_lblErr" class="fieldErr"><font color="#C00000">Debe digitar el número de serie de su tarjeta</font></span>
main()

View file

@ -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"

77
test.sh Normal file
View file

@ -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

77
works.sh Normal file
View file

@ -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