Skip to content

Instantly share code, notes, and snippets.

@glego
Last active June 4, 2024 19:16
Show Gist options
  • Save glego/3cdc74e14b79673d261ecccf1e3bfdcc to your computer and use it in GitHub Desktop.
Save glego/3cdc74e14b79673d261ecccf1e3bfdcc to your computer and use it in GitHub Desktop.
#!/bin/bash
# ./upload.sh file.pdf
filename="$1"
cookiejar="cookiejar.txt"
username="username"
password="password"
fqdn="projectsend.domain.com"
echo "Uploading file $filename"
loginresponse=$(curl "https://$fqdn/process.php?do=login" \
--cookie-jar $cookiejar \
-H "authority: $fqdn" \
-H "pragma: no-cache" \
-H "cache-control: no-cache" \
-H "accept: */*" \
-H "x-requested-with: XMLHttpRequest" \
-H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36" \
-H "content-type: application/x-www-form-urlencoded; charset=UTF-8" \
-H "origin: https://$fqdn" \
-H "sec-fetch-site: same-origin" \
-H "sec-fetch-mode: cors" \
-H "sec-fetch-dest: empty" \
-H "referer: https://$fqdn/index.php" \
-H "accept-language: en-US,en;q=0.9" \
-X POST \
--data-urlencode "do=login" \
--data-urlencode "username=$username" \
--data-urlencode "password=$password" \
--data-urlencode "language=en")
uploadresponse=$(curl "https://$fqdn/process-upload.php" \
--cookie $cookiejar \
-H "authority: $fqdn" \
-H "pragma: no-cache" \
-H "cache-control: no-cache" \
-H "upgrade-insecure-requests: 1" \
-H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36" \
-H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" \
-H "sec-fetch-site: same-origin" \
-H "sec-fetch-mode: navigate" \
-H "sec-fetch-user: ?1" \
-H "sec-fetch-dest: document" \
-H "referer: https://$fqdn/upload-from-computer.php" \
-H "accept-language: en-US,en;q=0.9" \
-H "Content-Type: multipart/form-data" \
-X POST \
-F "name=$filename" \
-F "file=@$filename")
echo "login reponse: $loginresponse"
echo "upload reponse: $uploadresponse"
newfilename=$(echo "$uploadresponse" | jq -r ".NewFileName")
echo "new file name: $newfilename"
submitreponse=$(curl "https://$fqdn/upload-process-form.php" \
--cookie $cookiejar \
-H "authority: $fqdn" \
-H "pragma: no-cache" \
-H "cache-control: no-cache" \
-H "upgrade-insecure-requests: 1" \
-H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36" \
-H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" \
-H "sec-fetch-site: same-origin" \
-H "sec-fetch-mode: navigate" \
-H "sec-fetch-user: ?1" \
-H "sec-fetch-dest: document" \
-H "referer: https://$fqdn/upload-process-form.php" \
-H "accept-language: en-US,en;q=0.9" \
-H "Content-Type: application/x-www-form-urlencoded" \
-X POST \
--data-urlencode "finished_files[]=$newfilename" \
--data-urlencode "file[1][original]=$newfilename" \
--data-urlencode "file[1][file]=$filename" \
--data-urlencode "file[1][name]=$filename" \
--data-urlencode "file[1][description]=" \
--data-urlencode "file[1][expiry_date]=" \
--data-urlencode "file[1][public]=1" \
--data-urlencode "upload_failed=" \
--data-urlencode "submit=")
regex='data-id="(\w*)".*data-token="(\w*)"'
[[ $submitreponse =~ $regex ]]
dataid=$(echo ${BASH_REMATCH[1]})
datatoken=$(echo ${BASH_REMATCH[2]})
downloadurl="https://$fqdn/download.php?id=$dataid&token=$datatoken"
echo "Dataid: $dataid"
echo "Datatoken: $datatoken"
echo "Download url: $downloadurl"
rm -rf $cookiejar
exit 0
@glego
Copy link
Author

glego commented Oct 27, 2020

Usage:

./upload.sh yourfile.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment