From 6f338dec652618b4714cece68896041bf40c1832 Mon Sep 17 00:00:00 2001 From: kittykat Date: Thu, 20 Feb 2025 21:16:34 +0000 Subject: [PATCH] # 2025.02.20 - [up_ranoz] Fixed parsing of ranoz upload link (cloudflare) # 2025.02.20 - [sendnow] Better handling of sendnow new Tor ip blocking # 2025.02.20 - [up_ranoz / up_uploadhive] Add obfuscation of .7z in multipart filename that was missing --- .audit/mad-audit-curl.log | 234 ++++++------ .audit/mad-audit-http.log | 146 ++++---- .audit/mad-audit-tor_curl-details.log | 492 +++++++++++++------------- hosts/sendnow.sh | 16 +- hosts/up_ranoz.sh | 7 +- hosts/up_uploadhive.sh | 5 +- mad.sh | 5 +- 7 files changed, 456 insertions(+), 449 deletions(-) diff --git a/.audit/mad-audit-curl.log b/.audit/mad-audit-curl.log index 71d76b6..455f759 100755 --- a/.audit/mad-audit-curl.log +++ b/.audit/mad-audit-curl.log @@ -1,4 +1,4 @@ -DateTime: 25.02.19 +DateTime: 25.02.20 Files: ./hosts/1fichier.sh @@ -462,8 +462,8 @@ _________________________________________________________________________ ./hosts/up_oshi.sh:110: response=$(tor_curl_upload --insecure \ ./hosts/up_pixeldrain.sh:112: response=$(tor_curl_upload --insecure -X PUT \ ./hosts/up_quax.sh:102: response=$(tor_curl_upload --insecure -i \ -./hosts/up_ranoz.sh:128: response=$(tor_curl_upload --insecure -L -i -s \ -./hosts/up_ranoz.sh:155: response=$(tor_curl_upload --insecure -i -X PUT \ +./hosts/up_ranoz.sh:129: response=$(tor_curl_upload --insecure -L -i -s \ +./hosts/up_ranoz.sh:156: response=$(tor_curl_upload --insecure -i -X PUT \ ./hosts/up_sendnow.sh:101: response=$(tor_curl_request --insecure -L -s 'https://send.now/upload') ./hosts/up_sendnow.sh:138: response=$(tor_curl_upload --insecure -i \ ./hosts/up_shareonline.sh:102: response=$(tor_curl_upload --insecure -i \ @@ -478,7 +478,7 @@ _________________________________________________________________________ ./hosts/up_uploadee.sh:176: response=$(tor_curl_upload --insecure -i -L \ ./hosts/up_uploadev.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_uploadflix.sh:106: response=$(tor_curl_upload --insecure -i \ -./hosts/up_uploadhive.sh:130: response=$(tor_curl_upload --insecure -i \ +./hosts/up_uploadhive.sh:131: response=$(tor_curl_upload --insecure -i \ ./hosts/up_uploadraja.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_uwabaki.sh:102: response=$(tor_curl_upload --insecure -i -L \ ./hosts/up_yolobit.sh:102: response=$(tor_curl_upload --insecure -i \ @@ -487,119 +487,119 @@ _________________________________________________________________________ ./hosts/youdbox.sh:183: file_header=$(tor_curl_request --insecure -L --head -s --referer "${fixed_url}" "$download_url") ./hosts/youdbox.sh:276: tor_curl_request --insecure -L -G --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" ./hosts/youdbox.sh:278: tor_curl_request --insecure -L -G "$download_url" --continue-at - --output "$file_path" -./mad.sh:97:UseTorCurlImpersonate=false -./mad.sh:393:tor_curl_request() { -./mad.sh:394: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:395: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:397: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:400:tor_curl_request_extended() { -./mad.sh:402: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:403: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:405: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:408:tor_curl_upload() { -./mad.sh:409: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:411: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" -./mad.sh:413: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" -./mad.sh:417: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" -./mad.sh:419: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" -./mad.sh:1420:install_curl_impersonate() { -./mad.sh:1422: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." -./mad.sh:1423: echo -e "- Currently uses curl v8.1.1." -./mad.sh:1427: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." -./mad.sh:1428: echo -e "+ Currently uses curl v8.7.1" -./mad.sh:1432: PS3='Please select which curl_impersonate to install: ' -./mad.sh:1440: install_curl_impersonate_lwthiker_orig -./mad.sh:1444: install_curl_impersonate_lexiforest_fork -./mad.sh:1454:install_curl_impersonate_lwthiker_orig() { -./mad.sh:1458: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." -./mad.sh:1459: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" -./mad.sh:1462: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" -./mad.sh:1465: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1467: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1470: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1480: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { -./mad.sh:1482: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1485: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") -./mad.sh:1487: debugHtml "github" "head_inst_curlimp$j" "${file_header}" -./mad.sh:1535: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" -./mad.sh:1564: echo -e "| Extracting curl_impersonate..." -./mad.sh:1566: rm -f "${ScriptDir}"/curl* -./mad.sh:1567: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" -./mad.sh:1568: mv "$extract_location/curl_ff109" "${ScriptDir}/" -./mad.sh:1569: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." -./mad.sh:1577:install_curl_impersonate_lexiforest_fork() { -./mad.sh:1581: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." -./mad.sh:1582: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" -./mad.sh:1585: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" -./mad.sh:1588: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1590: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1593: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1603: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { -./mad.sh:1605: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1608: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") -./mad.sh:1610: debugHtml "github" "head_inst_curlimp$j" "${file_header}" -./mad.sh:1658: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" -./mad.sh:1687: echo -e "| Extracting curl_impersonate..." -./mad.sh:1689: rm -f "${ScriptDir}"/curl* -./mad.sh:1690: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" -./mad.sh:1691: mv "$extract_location/curl_chrome131" "${ScriptDir}/" -./mad.sh:1692: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." -./mad.sh:1854: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" -./mad.sh:1862: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1863: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1872: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1874: echo -e "$maud_curl" -./mad.sh:1876: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1878: echo -e "$maud_torcurl" -./mad.sh:1890: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1891: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1900: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" -./mad.sh:1902: echo -e "$maud_curl" -./mad.sh:1904: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1906: echo -e "$maud_torcurl" -./mad.sh:1912: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1913: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1922: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1924: echo -e "$maud_curl" -./mad.sh:1926: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1928: echo -e "$maud_torcurl" -./mad.sh:2875: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:2876: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:2878: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" -./mad.sh:3050: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:3051: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:3053: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" -./mad.sh:3251: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ -./mad.sh:3258: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | -./mad.sh:3395: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" -./mad.sh:3448: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./mad.sh:3450: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" -./mad.sh:3648: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3655: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3726:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:3727: curl_impersonate=() -./mad.sh:3728: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -name "curl_*" -printf '%p\n' | sort -Vk1) -./mad.sh:3729: bFoundCurlHeader=false -./mad.sh:3733: curl_impersonate=($fil) -./mad.sh:3734: bFoundCurlHeader=true -./mad.sh:3738: if [[ "$bFoundCurlHeader" == "false" ]]; then -./mad.sh:3739: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" -./mad.sh:3742: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." -./mad.sh:3745: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" -./mad.sh:3747: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." -./mad.sh:3751: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." -./mad.sh:3752: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." -./mad.sh:3755: echo -e "run $0 install_curl_impersonate\\n" -./mad.sh:3757: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { -./mad.sh:3758: UseTorCurlImpersonate=false -./mad.sh:3759: install_curl_impersonate -./mad.sh:3843: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" -./mad.sh:3844: printf " %s install_curl_impersonate\\n" "$0" -./mad.sh:3922:elif [[ "$arg1" == "install_curl_impersonate" ]]; then -./mad.sh:3923: install_curl_impersonate -./mad.sh:3954:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:3955: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" -./mad.sh:3957: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:98:UseTorCurlImpersonate=false +./mad.sh:394:tor_curl_request() { +./mad.sh:395: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:396: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:398: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:401:tor_curl_request_extended() { +./mad.sh:403: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:404: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:406: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:409:tor_curl_upload() { +./mad.sh:410: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:412: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" +./mad.sh:414: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" +./mad.sh:418: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" +./mad.sh:420: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" +./mad.sh:1421:install_curl_impersonate() { +./mad.sh:1423: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original dev, but it is relatively inactive." +./mad.sh:1424: echo -e "- Currently uses curl v8.1.1." +./mad.sh:1428: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1429: echo -e "+ Currently uses curl v8.7.1" +./mad.sh:1433: PS3='Please select which curl_impersonate to install: ' +./mad.sh:1441: install_curl_impersonate_lwthiker_orig +./mad.sh:1445: install_curl_impersonate_lexiforest_fork +./mad.sh:1455:install_curl_impersonate_lwthiker_orig() { +./mad.sh:1459: echo -e "${BLUE}lwthiker curl_impersonate${NC} is the original curl_impersonate." +./mad.sh:1460: echo -e "+ Currently uses curl v8.1.1, and has low activity for updates" +./mad.sh:1463: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lwthiker curl_impersonate${NC} info from github...${NC}" +./mad.sh:1466: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1468: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1471: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1481: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1483: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1486: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1488: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1536: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1565: echo -e "| Extracting curl_impersonate..." +./mad.sh:1567: rm -f "${ScriptDir}"/curl* +./mad.sh:1568: mv "$extract_location/curl-impersonate-ff" "${ScriptDir}/" +./mad.sh:1569: mv "$extract_location/curl_ff109" "${ScriptDir}/" +./mad.sh:1570: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1578:install_curl_impersonate_lexiforest_fork() { +./mad.sh:1582: echo -e "${BLUE}lexiforest curl_impersonate${NC} is an active fork of curl_impersonate." +./mad.sh:1583: echo -e "+ Currently uses curl v8.7.1, and is patched for latest CVEs" +./mad.sh:1586: echo -e "${GREEN}| Fetching:${NC} latest ${BLUE}lexiforest curl_impersonate fork${NC} info from github...${NC}" +./mad.sh:1589: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1591: debugHtml "github" "lbf_inst_curlimp$j" "$response" +./mad.sh:1594: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") +./mad.sh:1604: yes_or_no "Do you wish to download and extract curl_impersonate $latestTag (using tor+curl)?" && { +./mad.sh:1606: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1609: file_header=$(tor_curl_request --insecure --head -Ls "$download_url") +./mad.sh:1611: debugHtml "github" "head_inst_curlimp$j" "${file_header}" +./mad.sh:1659: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1688: echo -e "| Extracting curl_impersonate..." +./mad.sh:1690: rm -f "${ScriptDir}"/curl* +./mad.sh:1691: mv "$extract_location/curl-impersonate-chrome" "${ScriptDir}/" +./mad.sh:1692: mv "$extract_location/curl_chrome131" "${ScriptDir}/" +./mad.sh:1693: echo -e "${GREEN}| Done.${NC} Update ${BLUE}\"UseTorCurlImpersonate=true\"${NC} in script to use..." +./mad.sh:1855: echo -e ":${NC} ${GREEN}MAD${PINK} Audit${NC} : Reports usage of http & curl in scripts${PINK}${BLD} :" +./mad.sh:1863: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1864: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1873: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1875: echo -e "$maud_curl" +./mad.sh:1877: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1879: echo -e "$maud_torcurl" +./mad.sh:1891: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1892: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1901: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1903: echo -e "$maud_curl" +./mad.sh:1905: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1907: echo -e "$maud_torcurl" +./mad.sh:1913: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1914: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1923: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1925: echo -e "$maud_curl" +./mad.sh:1927: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1929: echo -e "$maud_torcurl" +./mad.sh:2876: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:2877: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:2879: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3051: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3052: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3054: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" +./mad.sh:3252: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3259: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3396: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3449: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3451: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3649: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3656: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3727:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3728: curl_impersonate=() +./mad.sh:3729: readarray -d $'' arrFiles < <(find "$ScriptDir" -maxdepth 1 -name "curl_*" -printf '%p\n' | sort -Vk1) +./mad.sh:3730: bFoundCurlHeader=false +./mad.sh:3734: curl_impersonate=($fil) +./mad.sh:3735: bFoundCurlHeader=true +./mad.sh:3739: if [[ "$bFoundCurlHeader" == "false" ]]; then +./mad.sh:3740: echo -e "${RED}[ERROR] Missing dependency \"curl-impersonate\"!${NC}" +./mad.sh:3743: echo -e "You'll need to download ${GREEN}\"curl-impersonate\"${NC}." +./mad.sh:3746: echo -e "The latest binary can be obtained on GitHub, search for \"curl-impersonate\"" +./mad.sh:3748: echo -e " 1. Visit the page of curl-impersonate and add \"/releases/latest/\" at end of URL." +./mad.sh:3752: echo -e " 4. Download archive ${GREEN}\"curl-impersonate-vX.Y.Z.x86_64-linux-gnu.tar.gz\"${YELLOW}." +./mad.sh:3753: echo -e " 5. Extract files ${GREEN}\"curl-impersonate-ff\"${NC} and ${GREEN}\"curl_ff109\"${NC} next to this script." +./mad.sh:3756: echo -e "run $0 install_curl_impersonate\\n" +./mad.sh:3758: yes_or_no "Do you wish to download and extract latest curl_impersonate (using tor+curl)?" && { +./mad.sh:3759: UseTorCurlImpersonate=false +./mad.sh:3760: install_curl_impersonate +./mad.sh:3844: echo -e "[${YELLOW}Install curl_impersonate${NC}]: Downloads the latest binary for curl_impersonate from github repo (3 choices)" +./mad.sh:3845: printf " %s install_curl_impersonate\\n" "$0" +./mad.sh:3923:elif [[ "$arg1" == "install_curl_impersonate" ]]; then +./mad.sh:3924: install_curl_impersonate +./mad.sh:3955:if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:3956: printf "client: ${GREEN}Tor${NC} + ${BLUE}curl_impersonate${NC}\\n" +./mad.sh:3958: printf "client: ${GREEN}Tor${NC} + ${GREEN}curl${NC}\\n" ./plugins/pjscloud.sh:44: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then ./plugins/pjscloud.sh:45: response=$("${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" \ ./plugins/pjscloud.sh:53: response=$(curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" \ diff --git a/.audit/mad-audit-http.log b/.audit/mad-audit-http.log index f4e3178..b091eef 100755 --- a/.audit/mad-audit-http.log +++ b/.audit/mad-audit-http.log @@ -1,4 +1,4 @@ -DateTime: 25.02.19 +DateTime: 25.02.20 Files: ./hosts/1fichier.sh @@ -405,11 +405,11 @@ _________________________________________________________________________ ./hosts/up_ramsgaard.sh:37: jira_PostUrlHost='https://data.ramsgaard.me/script.php' ./hosts/up_ramsgaard.sh:40: jira_downloadLinkPrefix='https://data.ramsgaard.me/f.php?h=' ./hosts/up_ranoz.sh:99: PostUrlHost='https://ranoz.gg/api/v1/files/upload_url' -./hosts/up_ranoz.sh:137: if grep -Eqi '"upload_url":"https://' <<< "$response" ; then +./hosts/up_ranoz.sh:138: if grep -Eqi '"upload_url":"https://' <<< "$response" ; then ./hosts/up_sendnow.sh:101: response=$(tor_curl_request --insecure -L -s 'https://send.now/upload') ./hosts/up_sendnow.sh:115: elif grep -Eqi 'action="https://.*send\.now/cgi-bin/upload\.cgi\?upload_type\=' <<< "$response"; then ./hosts/up_sendnow.sh:131: local ar_HUP[0]="https://u7324.send.now/cgi-bin/upload.cgi?upload_type=file&utype=anon" -./hosts/up_sendnow.sh:157: downloadLink="https://isupload.com/${hash}" +./hosts/up_sendnow.sh:157: downloadLink="https://send.now/${hash}" ./hosts/up_shareonline.sh:99: PostUrlHost='https://ns07.zipcluster.com/upload.php' ./hosts/up_skrepr.sh:37: jira_PostUrlHost='https://transfer.skrepr.com/script.php' ./hosts/up_skrepr.sh:40: jira_downloadLinkPrefix='https://transfer.skrepr.com/f.php?h=' @@ -440,82 +440,82 @@ _________________________________________________________________________ ./hosts/up_uploadflix.sh:99: local ar_HUP[0]='https://fs50.uploadflix.cyou/cgi-bin/upload.cgi?upload_type=file&utype=anon' ./hosts/up_uploadflix.sh:125: downloadLink="https://uploadflix.cc/${hash}" ./hosts/up_uploadhive.sh:99: PostUrlHost='https://fs430.uploadhive.com/cgi-bin/upload.cgi' -./hosts/up_uploadhive.sh:151: downloadLink="https://uploadhive.com/${hash}" +./hosts/up_uploadhive.sh:152: downloadLink="https://uploadhive.com/${hash}" ./hosts/up_uploadraja.sh:99: PostUrlHost='https://awsaisiaposisition69.kalpstudio.xyz/cgi-bin/upload.cgi?upload_type=file&utype=anon' ./hosts/up_uploadraja.sh:119: downloadLink="https://uploadraja.com/$hash" ./hosts/up_uwabaki.sh:99: PostUrlHost="https://files.uwabaki.party/index.php" ./hosts/up_uwabaki.sh:111: if grep -Eqi 'File uploaded: ^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) -./mad.sh:718: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https -./mad.sh:721: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:723: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:744: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) -./mad.sh:746: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https -./mad.sh:749: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:751: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:772: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) -./mad.sh:774: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https -./mad.sh:777: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:779: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:801: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) -./mad.sh:803: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #direct url https -./mad.sh:806: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:808: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:832: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) -./mad.sh:834: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https -./mad.sh:837: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:839: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:865: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) -./mad.sh:867: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https -./mad.sh:887: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) -./mad.sh:908: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) -./mad.sh:910: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https -./mad.sh:913: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:915: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:931: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) -./mad.sh:933: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https -./mad.sh:936: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:938: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:957: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) -./mad.sh:959: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https -./mad.sh:962: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:964: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:984: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) -./mad.sh:986: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https -./mad.sh:989: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:991: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1009: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) -./mad.sh:1011: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #direct url https -./mad.sh:1014: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:1016: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1035: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #http (if changed) -./mad.sh:1037: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #direct url https -./mad.sh:1040: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) -./mad.sh:1042: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https -./mad.sh:1465: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1482: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1588: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1605: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' -./mad.sh:1868: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1896: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1918: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:3234: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then -./mad.sh:3765:arg2="$2" # auto, filelist, -./mad.sh:3862: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" -./mad.sh:3864: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" -./mad.sh:3866: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' -./mad.sh:4085: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4086: remote_url=${remote_url/http:/https:} -./mad.sh:4107: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4108: remote_url=${remote_url/http:/https:} -./mad.sh:4474: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4475: remote_url=${remote_url/http:/https:} -./mad.sh:4533: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4534: remote_url=${remote_url/http:/https:} -./mad.sh:4560: if [[ ${remote_url} =~ ^http: ]] ; then -./mad.sh:4561: remote_url=${remote_url/http:/https:} +./mad.sh:717: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #http (if changed) +./mad.sh:719: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename}>g" "${InputFile}" #direct url https +./mad.sh:722: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:724: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:745: sed -i -e "s>^${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #http (if changed) +./mad.sh:747: sed -i -e "s>^direct=${url/https:/http:}.*>#& #OK# ${filename} (File exists)>g" "${InputFile}" #direct url https +./mad.sh:750: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:752: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:773: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #http (if changed) +./mad.sh:775: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${message}>g" "${InputFile}" #direct url https +./mad.sh:778: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:780: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:802: sed -i -e "s>^${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #http (if changed) +./mad.sh:804: sed -i -e "s>^direct=${url/https:/http:}.*>#& #FAIL# $message>g" "${InputFile}" #direct url https +./mad.sh:807: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:809: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:833: sed -i -e "s>^${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:835: sed -i -e "s>^direct=${url/https:/http:}.*>#& #REMOVED#${message}>g" "${InputFile}" #direct url https +./mad.sh:838: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:840: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:866: sed -i -e "s>^${url/https:/http:}.*>${url}|${newfilename}>g" "${InputFile}" #http (if changed) +./mad.sh:868: sed -i -e "s>^direct=${url/https:/http:}.*>direct=${url}|${newfilename}>g" "${InputFile}" #direct url https +./mad.sh:888: sed -i -e "s%^${url/https:/http:}.*%${newurl//[[:space:]]/$'\\\n'}%g" "${InputFile}" #http (if changed) +./mad.sh:909: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #http (if changed) +./mad.sh:911: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (dropped or bad size)>g" "${InputFile}" #direct url https +./mad.sh:914: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:916: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:932: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #http (if changed) +./mad.sh:934: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# (No CDN found)>g" "${InputFile}" #direct url https +./mad.sh:937: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:939: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:958: sed -i -e "s>^${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #http (if changed) +./mad.sh:960: sed -i -e "s>^direct=${url/https:/http:}.*>#& #PASSWORD#>g" "${InputFile}" #direct url https +./mad.sh:963: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:965: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:985: sed -i -e "s>^${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #http (if changed) +./mad.sh:987: sed -i -e "s>^direct=${url/https:/http:}.*>#& #BAD-URL#${message}>g" "${InputFile}" #direct url https +./mad.sh:990: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:992: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1010: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #http (if changed) +./mad.sh:1012: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (No filename or size. Try again later)>g" "${InputFile}" #direct url https +./mad.sh:1015: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:1017: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1036: sed -i -e "s>^${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #http (if changed) +./mad.sh:1038: sed -i -e "s>^direct=${url/https:/http:}.*>#& #RETRY# ${filename} (File exists and is too large--retry or delete from downloads)>g" "${InputFile}" #direct url https +./mad.sh:1041: sed -i -e "s>^${url/https:/http:}.*>#&>g" "${InputFile}" #http (if changed) +./mad.sh:1043: sed -i -e "s>^direct=${url/https:/http:}.*>#&>g" "${InputFile}" #direct url https +./mad.sh:1466: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) +./mad.sh:1483: download_url='https://github.com/lwthiker/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1589: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) +./mad.sh:1606: download_url='https://github.com/lexiforest/curl-impersonate/releases/download/'"$latestTag"'/curl-impersonate-'"$latestTag"'.x86_64-linux-gnu.tar.gz' +./mad.sh:1869: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1897: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1919: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:3235: if grep -Eqi '.onion' <<< "$download_url" && grep -Eqi 'https://' <<< "$download_url" ; then +./mad.sh:3766:arg2="$2" # auto, filelist, +./mad.sh:3863: echo -e " - http://oshi.at/abcd/origAABB.rar|My specified file.part1.rar" +./mad.sh:3865: echo -e " - direct=http://pomf2.lain.la/f/abcd00zz.7z" +./mad.sh:3867: echo -e ' - ie. direct=http://somehost.onion/abcD|filename.part1.rar' +./mad.sh:4086: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4087: remote_url=${remote_url/http:/https:} +./mad.sh:4108: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4109: remote_url=${remote_url/http:/https:} +./mad.sh:4475: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4476: remote_url=${remote_url/http:/https:} +./mad.sh:4534: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4535: remote_url=${remote_url/http:/https:} +./mad.sh:4561: if [[ ${remote_url} =~ ^http: ]] ; then +./mad.sh:4562: remote_url=${remote_url/http:/https:} ./plugins/pjscloud.sh:51: "https://PhantomJScloud.com/api/browser/v2/$RandomPjsKey/" & sleep 8s; kill -HUP $! 2>/dev/null) ./plugins/pjscloud.sh:59: "https://PhantomJScloud.com/api/browser/v2/$RandomPjsKey/" & sleep 8s; kill -HUP $! 2>/dev/null) diff --git a/.audit/mad-audit-tor_curl-details.log b/.audit/mad-audit-tor_curl-details.log index 145f4ba..695327c 100755 --- a/.audit/mad-audit-tor_curl-details.log +++ b/.audit/mad-audit-tor_curl-details.log @@ -1,4 +1,4 @@ -DateTime: 25.02.19 +DateTime: 25.02.20 Files: ./hosts/1fichier.sh @@ -3007,29 +3007,29 @@ _________________________________________________________________________ ./hosts/up_quax.sh:111: url=$(grep -oPi '(?<="url": ").*?(?=".*$)' <<< "$response") ./hosts/up_quax.sh:112: filesize=$(GetFileSize "$filepath" "false") -- -./hosts/up_ranoz.sh:128: response=$(tor_curl_upload --insecure -L -i -s \ -./hosts/up_ranoz.sh:129: "$PostUrlHost" \ -./hosts/up_ranoz.sh:130: -H "Content-Type: application/json" \ -./hosts/up_ranoz.sh:131: -d "{ \ -./hosts/up_ranoz.sh:132: \"filename\": \"$tmpfilename\", \ -./hosts/up_ranoz.sh:133: \"size\": $fsize}") -./hosts/up_ranoz.sh:134: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/up_ranoz.sh:135: debugHtml "${filepath##*/}" "${_hostCode}_ticket" "post_url: ${PostUrlHost}"$'\n'"data: ${filepath}, ${fsize}"$'\n'"${response}" -./hosts/up_ranoz.sh:136: fi -./hosts/up_ranoz.sh:137: if grep -Eqi '"upload_url":"https://' <<< "$response" ; then -./hosts/up_ranoz.sh:138: PostUrlHost=$(grep -oPi '(?<="upload_url":").*?(?=".*$)' <<< "$response") +./hosts/up_ranoz.sh:129: response=$(tor_curl_upload --insecure -L -i -s \ +./hosts/up_ranoz.sh:130: "$PostUrlHost" \ +./hosts/up_ranoz.sh:131: -H "Content-Type: application/json" \ +./hosts/up_ranoz.sh:132: -d "{ \ +./hosts/up_ranoz.sh:133: \"filename\": \"$tmpfilename\", \ +./hosts/up_ranoz.sh:134: \"size\": $fsize}") +./hosts/up_ranoz.sh:135: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_ranoz.sh:136: debugHtml "${filepath##*/}" "${_hostCode}_ticket" "post_url: ${PostUrlHost}"$'\n'"data: ${filepath}, ${fsize}"$'\n'"${response}" +./hosts/up_ranoz.sh:137: fi +./hosts/up_ranoz.sh:138: if grep -Eqi '"upload_url":"https://' <<< "$response" ; then +./hosts/up_ranoz.sh:139: PostUrlHost=$(grep -oPi '(?<="upload_url":").*?(?=".*$)' <<< "$response") -- -./hosts/up_ranoz.sh:155: response=$(tor_curl_upload --insecure -i -X PUT \ -./hosts/up_ranoz.sh:156: "${PostUrlHost}" \ -./hosts/up_ranoz.sh:157: --upload-file "$filepath" \ -./hosts/up_ranoz.sh:158: -H "Content-Length: $fsize") -./hosts/up_ranoz.sh:159: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./hosts/up_ranoz.sh:160: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" -./hosts/up_ranoz.sh:161: fi -./hosts/up_ranoz.sh:162: if grep -Eqi 'HTTP/.* 200' <<< "${response}" ; then -./hosts/up_ranoz.sh:163: filesize=$(GetFileSize "$filepath" "false") -./hosts/up_ranoz.sh:164: echo -e "${GREEN}| Upload Success${NC}" -./hosts/up_ranoz.sh:165: echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" +./hosts/up_ranoz.sh:156: response=$(tor_curl_upload --insecure -i -X PUT \ +./hosts/up_ranoz.sh:157: "${PostUrlHost}" \ +./hosts/up_ranoz.sh:158: --upload-file "$filepath" \ +./hosts/up_ranoz.sh:159: -H "Content-Length: $fsize") +./hosts/up_ranoz.sh:160: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./hosts/up_ranoz.sh:161: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${PostUrlHost}"$'\n'"${response}" +./hosts/up_ranoz.sh:162: fi +./hosts/up_ranoz.sh:163: if grep -Eqi 'HTTP/.* 200' <<< "${response}" ; then +./hosts/up_ranoz.sh:164: filesize=$(GetFileSize "$filepath" "false") +./hosts/up_ranoz.sh:165: echo -e "${GREEN}| Upload Success${NC}" +./hosts/up_ranoz.sh:166: echo -e "| Size: ${BLUE}${filesize}${NC} bytes${NC}" -- ./hosts/up_sendnow.sh:101: response=$(tor_curl_request --insecure -L -s 'https://send.now/upload') ./hosts/up_sendnow.sh:102: if [[ "${DebugAllEnabled}" == "true" ]] ; then @@ -3199,17 +3199,17 @@ _________________________________________________________________________ ./hosts/up_uploadflix.sh:115: -F "upload=Start upload" \ ./hosts/up_uploadflix.sh:116: -F "keepalive=1" \ -- -./hosts/up_uploadhive.sh:130: response=$(tor_curl_upload --insecure -i \ -./hosts/up_uploadhive.sh:131: -H "Content-Type: multipart/form-data" \ -./hosts/up_uploadhive.sh:132: -F "sess_id=" \ -./hosts/up_uploadhive.sh:133: -F "utype=anon" \ -./hosts/up_uploadhive.sh:134: -F "link_rcpt=" \ -./hosts/up_uploadhive.sh:135: -F "link_pass=" \ -./hosts/up_uploadhive.sh:136: -F "to_folder=" \ -./hosts/up_uploadhive.sh:137: -F "file_descr=" \ -./hosts/up_uploadhive.sh:138: -F "file_public=1" \ -./hosts/up_uploadhive.sh:139: -F "upload=Start upload" \ -./hosts/up_uploadhive.sh:140: -F "file_0=@$tmpfilepath" \ +./hosts/up_uploadhive.sh:131: response=$(tor_curl_upload --insecure -i \ +./hosts/up_uploadhive.sh:132: -H "Content-Type: multipart/form-data" \ +./hosts/up_uploadhive.sh:133: -F "sess_id=" \ +./hosts/up_uploadhive.sh:134: -F "utype=anon" \ +./hosts/up_uploadhive.sh:135: -F "link_rcpt=" \ +./hosts/up_uploadhive.sh:136: -F "link_pass=" \ +./hosts/up_uploadhive.sh:137: -F "to_folder=" \ +./hosts/up_uploadhive.sh:138: -F "file_descr=" \ +./hosts/up_uploadhive.sh:139: -F "file_public=1" \ +./hosts/up_uploadhive.sh:140: -F "upload=Start upload" \ +./hosts/up_uploadhive.sh:141: -F "file_0=@$tmpfilepath" \ -- ./hosts/up_uploadraja.sh:102: response=$(tor_curl_upload --insecure -i \ ./hosts/up_uploadraja.sh:103: -H "Content-Type: multipart/form-data" \ @@ -3297,235 +3297,235 @@ _________________________________________________________________________ ./hosts/youdbox.sh:287: containsHtml=true ./hosts/youdbox.sh:288: fi -- -./mad.sh:393:tor_curl_request() { -./mad.sh:394: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:395: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:396: else -./mad.sh:397: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" -./mad.sh:398: fi -./mad.sh:399:} -./mad.sh:400:tor_curl_request_extended() { -./mad.sh:401: randomtimeout=$((30 + RANDOM % (60 - 30))) -./mad.sh:402: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:403: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:404: else -./mad.sh:405: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" -./mad.sh:406: fi -./mad.sh:407:} -./mad.sh:408:tor_curl_upload() { -./mad.sh:409: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then -./mad.sh:410: if [[ "${RateMonitorEnabled}" == "true" ]]; then -./mad.sh:411: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" -./mad.sh:412: else -./mad.sh:413: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" -./mad.sh:414: fi -./mad.sh:415: else -./mad.sh:416: if [[ "${RateMonitorEnabled}" == "true" ]]; then -./mad.sh:417: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" -./mad.sh:418: else +./mad.sh:394:tor_curl_request() { +./mad.sh:395: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:396: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:397: else +./mad.sh:398: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeout} --compressed --globoff "$@" +./mad.sh:399: fi +./mad.sh:400:} +./mad.sh:401:tor_curl_request_extended() { +./mad.sh:402: randomtimeout=$((30 + RANDOM % (60 - 30))) +./mad.sh:403: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:404: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:405: else +./mad.sh:406: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout $randomtimeout --compressed --globoff "$@" +./mad.sh:407: fi +./mad.sh:408:} +./mad.sh:409:tor_curl_upload() { +./mad.sh:410: if [[ "${UseTorCurlImpersonate}" == "true" ]]; then +./mad.sh:411: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./mad.sh:412: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval --compressed --globoff "$@" +./mad.sh:413: else +./mad.sh:414: "${curl_impersonate[@]}" --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --compressed --globoff "$@" +./mad.sh:415: fi +./mad.sh:416: else +./mad.sh:417: if [[ "${RateMonitorEnabled}" == "true" ]]; then +./mad.sh:418: curl --proxy "socks5h://${tor_identity}@${TorIp}:${torPort}" -4 --connect-timeout ${ConnectTimeoutUpload} --speed-limit $UploadSpeedMin --speed-time $UploadTimeoutInterval -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Origin: null' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: cross-site' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers' --compressed --globoff "$@" +./mad.sh:419: else -- -./mad.sh:1465: response=$(tor_curl_request --insecure -L -s https://github.com/lwthiker/curl-impersonate/releases/latest) -./mad.sh:1466: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:1467: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1468: fi -./mad.sh:1469: if [[ ! -z "$response" ]]; then -./mad.sh:1470: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1471: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1544: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1545: exit 1 +./mad.sh:1536: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1537: received_file_size=0 +./mad.sh:1538: if [[ -f "$file_path" ]] ; then +./mad.sh:1539: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1540: fi +./mad.sh:1541: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1542: break +./mad.sh:1543: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1544: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1545: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1546: exit 1 -- -./mad.sh:1588: response=$(tor_curl_request --insecure -L -s https://github.com/lexiforest/curl-impersonate/releases/latest) -./mad.sh:1589: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:1590: debugHtml "github" "lbf_inst_curlimp$j" "$response" -./mad.sh:1591: fi -./mad.sh:1592: if [[ ! -z "$response" ]]; then -./mad.sh:1593: latestTag=$(grep -oPi -m 1 '(?<=/curl-impersonate/releases/tag/).*?(?=")' <<< "$response") -./mad.sh:1594: latestBinaryDate=$(grep -oPi -m 1 '(?<== MaxDownloadRetries)) ; then -./mad.sh:1667: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" -./mad.sh:1668: exit 1 +./mad.sh:1659: tor_curl_request --insecure -L "$download_url" --continue-at - --output "$file_path" +./mad.sh:1660: received_file_size=0 +./mad.sh:1661: if [[ -f "$file_path" ]] ; then +./mad.sh:1662: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:1663: fi +./mad.sh:1664: if ((received_file_size == file_size_bytes)) ; then +./mad.sh:1665: break +./mad.sh:1666: elif ((received_file_size < file_size_bytes)) ; then +./mad.sh:1667: if ((j >= MaxDownloadRetries)) ; then +./mad.sh:1668: echo -e "${RED}| FAILED: Size mismatch after downloading${NC}" +./mad.sh:1669: exit 1 -- -./mad.sh:1863: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1864: echo -e "Files:" -./mad.sh:1865: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1866: echo -e "" +./mad.sh:1864: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1865: echo -e "Files:" +./mad.sh:1866: echo -e "${BLUE}${fil}${NC}" ./mad.sh:1867: echo -e "" -./mad.sh:1868: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1869: echo -e "_________________________________________________________________________" -./mad.sh:1870: echo -e "$maud_http" -./mad.sh:1871: echo -e "" -./mad.sh:1872: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1873: echo -e "_________________________________________________________________________" +./mad.sh:1868: echo -e "" +./mad.sh:1869: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1870: echo -e "_________________________________________________________________________" +./mad.sh:1871: echo -e "$maud_http" +./mad.sh:1872: echo -e "" +./mad.sh:1873: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1874: echo -e "_________________________________________________________________________" -- -./mad.sh:1876: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1877: echo -e "_________________________________________________________________________" -./mad.sh:1878: echo -e "$maud_torcurl" -./mad.sh:1879: echo -e "" +./mad.sh:1877: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1878: echo -e "_________________________________________________________________________" +./mad.sh:1879: echo -e "$maud_torcurl" ./mad.sh:1880: echo -e "" -./mad.sh:1881: done -./mad.sh:1882: else -./mad.sh:1883: cd "$ScriptDir" -./mad.sh:1884: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) -./mad.sh:1885: cd "$WorkDir" -./mad.sh:1886: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1881: echo -e "" +./mad.sh:1882: done +./mad.sh:1883: else +./mad.sh:1884: cd "$ScriptDir" +./mad.sh:1885: readarray -d $'' arrFiles < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) +./mad.sh:1886: cd "$WorkDir" +./mad.sh:1887: readarray -d $'' arrFiles2 < <(find . -name "*.sh" -printf '%p\n' | sort -Vk1) -- -./mad.sh:1891: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1892: echo -e "Files:" -./mad.sh:1893: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1894: echo -e "" +./mad.sh:1892: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1893: echo -e "Files:" +./mad.sh:1894: echo -e "${BLUE}${fil}${NC}" ./mad.sh:1895: echo -e "" -./mad.sh:1896: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1897: echo -e "_________________________________________________________________________" -./mad.sh:1898: echo -e "$maud_http" -./mad.sh:1899: echo -e "" -./mad.sh:1900: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" -./mad.sh:1901: echo -e "_________________________________________________________________________" +./mad.sh:1896: echo -e "" +./mad.sh:1897: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1898: echo -e "_________________________________________________________________________" +./mad.sh:1899: echo -e "$maud_http" +./mad.sh:1900: echo -e "" +./mad.sh:1901: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl \"${NC})" +./mad.sh:1902: echo -e "_________________________________________________________________________" -- -./mad.sh:1904: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1905: echo -e "_________________________________________________________________________" -./mad.sh:1906: echo -e "$maud_torcurl" -./mad.sh:1907: echo -e "" -./mad.sh:1908: done -./mad.sh:1909: for fil in "${arrFiles2[@]}"; -./mad.sh:1910: do -./mad.sh:1911: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') -./mad.sh:1912: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') -./mad.sh:1913: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') -./mad.sh:1914: echo -e "Files:" -./mad.sh:1915: echo -e "${BLUE}${fil}${NC}" -./mad.sh:1916: echo -e "" +./mad.sh:1905: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1906: echo -e "_________________________________________________________________________" +./mad.sh:1907: echo -e "$maud_torcurl" +./mad.sh:1908: echo -e "" +./mad.sh:1909: done +./mad.sh:1910: for fil in "${arrFiles2[@]}"; +./mad.sh:1911: do +./mad.sh:1912: maud_http=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei '(http|https):') +./mad.sh:1913: maud_curl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep --color='always' -Ei 'curl') +./mad.sh:1914: maud_torcurl=$(grep -n -vxE '[[:blank:]]*([#].*)?' $fil | grep -A 12 --color='always' -Ei 'tor_curl') +./mad.sh:1915: echo -e "Files:" +./mad.sh:1916: echo -e "${BLUE}${fil}${NC}" ./mad.sh:1917: echo -e "" -./mad.sh:1918: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" -./mad.sh:1919: echo -e "_________________________________________________________________________" -./mad.sh:1920: echo -e "$maud_http" -./mad.sh:1921: echo -e "" -./mad.sh:1922: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" -./mad.sh:1923: echo -e "_________________________________________________________________________" +./mad.sh:1918: echo -e "" +./mad.sh:1919: echo -e "${PINK}MAD Audit of http lines:${NC} (${GREEN}grep \"http:\" or \"https:\"${NC})" +./mad.sh:1920: echo -e "_________________________________________________________________________" +./mad.sh:1921: echo -e "$maud_http" +./mad.sh:1922: echo -e "" +./mad.sh:1923: echo -e "${PINK}MAD Audit of curl:${NC} (${GREEN}grep \"curl\"${NC})" +./mad.sh:1924: echo -e "_________________________________________________________________________" -- -./mad.sh:1926: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" -./mad.sh:1927: echo -e "_________________________________________________________________________" -./mad.sh:1928: echo -e "$maud_torcurl" -./mad.sh:1929: echo -e "" -./mad.sh:1930: done -./mad.sh:1931: fi -./mad.sh:1932:} -./mad.sh:1933:madStatus() { -./mad.sh:1934: local InputFile="$1" -./mad.sh:1935: if [[ "$arg1" == "status" ]] ; then -./mad.sh:1936: clear +./mad.sh:1927: echo -e "${PINK}MAD Audit of tor_curl (+12 lines after):${NC} (${GREEN}grep \"tor_curl\"${NC})" +./mad.sh:1928: echo -e "_________________________________________________________________________" +./mad.sh:1929: echo -e "$maud_torcurl" +./mad.sh:1930: echo -e "" +./mad.sh:1931: done +./mad.sh:1932: fi +./mad.sh:1933:} +./mad.sh:1934:madStatus() { +./mad.sh:1935: local InputFile="$1" +./mad.sh:1936: if [[ "$arg1" == "status" ]] ; then +./mad.sh:1937: clear -- -./mad.sh:3251: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ -./mad.sh:3252: -H "Connection: keep-alive" \ -./mad.sh:3253: -w 'EffectiveUrl=%{url_effective}' \ -./mad.sh:3254: "$download_url") -./mad.sh:3255: else -./mad.sh:3256: printf "| Retrieving Head: attempt #$j" -./mad.sh:3257: rm -f "${WorkDir}/.temp/directhead" -./mad.sh:3258: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | -./mad.sh:3259: tee "${WorkDir}/.temp/directhead" & -./mad.sh:3260: sleep 6 -./mad.sh:3261: [ -s "${WorkDir}/.temp/directhead" ] -./mad.sh:3262: kill $! 2>/dev/null -./mad.sh:3263: ) -./mad.sh:3264: if [[ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]]; then -./mad.sh:3265: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" -./mad.sh:3266: fi -./mad.sh:3267: rm -f "${WorkDir}/.temp/directhead" -./mad.sh:3268: fi +./mad.sh:3252: file_header=$(tor_curl_request --insecure -m 8 -s -D - -o /dev/null \ +./mad.sh:3253: -H "Connection: keep-alive" \ +./mad.sh:3254: -w 'EffectiveUrl=%{url_effective}' \ +./mad.sh:3255: "$download_url") +./mad.sh:3256: else +./mad.sh:3257: printf "| Retrieving Head: attempt #$j" +./mad.sh:3258: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3259: file_header=$(tor_curl_request --insecure --head -H "Connection: keep-alive" -L -s -i "$download_url" | +./mad.sh:3260: tee "${WorkDir}/.temp/directhead" & +./mad.sh:3261: sleep 6 +./mad.sh:3262: [ -s "${WorkDir}/.temp/directhead" ] +./mad.sh:3263: kill $! 2>/dev/null +./mad.sh:3264: ) +./mad.sh:3265: if [[ ! -f "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" ]]; then +./mad.sh:3266: touch "${WorkDir}/.flocks/${remote_url//[^a-zA-Z0-9]/}" +./mad.sh:3267: fi +./mad.sh:3268: rm -f "${WorkDir}/.temp/directhead" +./mad.sh:3269: fi -- -./mad.sh:3395: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" -./mad.sh:3396: rc=$? -./mad.sh:3397: if ((rc != 0 )) ; then -./mad.sh:3398: printf "${RED}Download Failed (bad exit status).${NC}" -./mad.sh:3399: if [[ -f ${file_path} ]]; then -./mad.sh:3400: printf "${YELLOW} Partial removed...${NC}" -./mad.sh:3401: printf "\n\n" -./mad.sh:3402: rm -f "${file_path}" -./mad.sh:3403: else -./mad.sh:3404: printf "\n\n" -./mad.sh:3405: fi +./mad.sh:3396: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --output "$file_path" +./mad.sh:3397: rc=$? +./mad.sh:3398: if ((rc != 0 )) ; then +./mad.sh:3399: printf "${RED}Download Failed (bad exit status).${NC}" +./mad.sh:3400: if [[ -f ${file_path} ]]; then +./mad.sh:3401: printf "${YELLOW} Partial removed...${NC}" +./mad.sh:3402: printf "\n\n" +./mad.sh:3403: rm -f "${file_path}" +./mad.sh:3404: else +./mad.sh:3405: printf "\n\n" +./mad.sh:3406: fi -- -./mad.sh:3448: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" -./mad.sh:3449: else -./mad.sh:3450: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" -./mad.sh:3451: fi -./mad.sh:3452: received_file_size=0 -./mad.sh:3453: if [[ -f "$file_path" ]] ; then -./mad.sh:3454: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') -./mad.sh:3455: fi -./mad.sh:3456: if CheckNoHtml "$remote_url" "$filename" "$file_path" ; then -./mad.sh:3457: containsHtml=false -./mad.sh:3458: else -./mad.sh:3459: containsHtml=true -./mad.sh:3460: fi +./mad.sh:3449: tor_curl_request --insecure -L --speed-limit $DownloadSpeedMin --speed-time $DownloadTimeoutInterval "$download_url" --continue-at - --output "$file_path" +./mad.sh:3450: else +./mad.sh:3451: tor_curl_request --insecure -L --referer "$file_url" "$download_url" --continue-at - --output "$file_path" +./mad.sh:3452: fi +./mad.sh:3453: received_file_size=0 +./mad.sh:3454: if [[ -f "$file_path" ]] ; then +./mad.sh:3455: received_file_size=$(stat --format="%s" "$file_path" | tr -d '[:space:]') +./mad.sh:3456: fi +./mad.sh:3457: if CheckNoHtml "$remote_url" "$filename" "$file_path" ; then +./mad.sh:3458: containsHtml=false +./mad.sh:3459: else +./mad.sh:3460: containsHtml=true +./mad.sh:3461: fi -- -./mad.sh:3648: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3649: -H "Content-Type: multipart/form-data" \ -./mad.sh:3650: -F "key=" \ -./mad.sh:3651: -F "time=$jira_timeval" \ -./mad.sh:3652: -F "file=@${filepath}" \ -./mad.sh:3653: "${jira_PostUrlHost}") -./mad.sh:3654: else -./mad.sh:3655: response=$(tor_curl_upload --insecure -i \ -./mad.sh:3656: -H "Content-Type: multipart/form-data" \ -./mad.sh:3657: -F "key=" \ -./mad.sh:3658: -F "time=$jira_timeval" \ -./mad.sh:3659: -F "files[]=@${arrFiles[@]}" \ -./mad.sh:3660: "${jira_PostUrlHost}") -./mad.sh:3661: fi -./mad.sh:3662: if [[ "${DebugAllEnabled}" == "true" ]] ; then -./mad.sh:3663: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" -./mad.sh:3664: fi -./mad.sh:3665: if grep -Eqi ' 200 ' <<< "${response}" ; then +./mad.sh:3649: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3650: -H "Content-Type: multipart/form-data" \ +./mad.sh:3651: -F "key=" \ +./mad.sh:3652: -F "time=$jira_timeval" \ +./mad.sh:3653: -F "file=@${filepath}" \ +./mad.sh:3654: "${jira_PostUrlHost}") +./mad.sh:3655: else +./mad.sh:3656: response=$(tor_curl_upload --insecure -i \ +./mad.sh:3657: -H "Content-Type: multipart/form-data" \ +./mad.sh:3658: -F "key=" \ +./mad.sh:3659: -F "time=$jira_timeval" \ +./mad.sh:3660: -F "files[]=@${arrFiles[@]}" \ +./mad.sh:3661: "${jira_PostUrlHost}") +./mad.sh:3662: fi +./mad.sh:3663: if [[ "${DebugAllEnabled}" == "true" ]] ; then +./mad.sh:3664: debugHtml "${filepath##*/}" "${_hostCode}_upload" "post_url: ${jira_PostUrlHost}"$'\n'"${response}" +./mad.sh:3665: fi +./mad.sh:3666: if grep -Eqi ' 200 ' <<< "${response}" ; then diff --git a/hosts/sendnow.sh b/hosts/sendnow.sh index 414f0fe..b153cac 100644 --- a/hosts/sendnow.sh +++ b/hosts/sendnow.sh @@ -1,6 +1,6 @@ #! Name: sendnow.sh #! Author: kittykat -#! Version: 2025.02.15 +#! Version: 2025.02.20 #! Desc: Add support for downloading and processing of urls for a new host #! Usage: Copy this file into the ./${ScriptDir}/hosts/ folder #! @@ -77,13 +77,12 @@ snow_DownloadFile() { #! snow_FetchFileInfo() { finalAttempt=$1 - maxfetchretries=5 + maxfetchretries=20 snow_cookie_jar="" echo -e "${GREEN}# Fetching post info…${NC}" for ((i=1; i<=$maxfetchretries; i++)); do mkdir -p "${WorkDir}/.temp" snow_cookie_jar=$(mktemp "${WorkDir}/.temp/snow_cookies""${instance_no}"".XXXXXX") - printf " ." tor_identity="${RANDOM}" CLEANSTRING=${remote_url//[^a-zA-Z0-9]/} trap "rm -f ${WorkDir}/.flocks/${CLEANSTRING}; rm -f "${snow_cookie_jar}"; echo ""; tput cnorm; exit" 0 1 2 3 6 15 @@ -92,6 +91,7 @@ snow_FetchFileInfo() { debugHtml "${remote_url##*/}" "snow_dwnpage$i" "${response}" fi if [[ -z $response ]] ; then + printf " ." rm -f "${snow_cookie_jar}"; if [[ $i == $maxfetchretries ]] ; then printf "\\n" @@ -105,14 +105,15 @@ snow_FetchFileInfo() { continue fi fi - if grep -Eqi "Your IP has been banned|you are banned" <<< "$response"; then + if grep -Eqi "blocked downloads from the Tor network|banned your IP|IP has been banned|you are banned" <<< "$response"; then + printf " -" rm -f "${snow_cookie_jar}"; if [[ $i == $maxfetchretries ]] ; then printf "\\n" - echo -e "${RED}| Failed to extract download link.${NC}" + echo -e "${RED}| Blocked Tor ip${NC}" warnAndRetryUnknownError=true if [[ "${finalAttempt}" == "true" ]] ; then - failedRetryDownload "${remote_url}" "" "" + failedRetryDownload "${remote_url}" "Blocked Tor ip" "" fi return 1 else @@ -120,6 +121,7 @@ snow_FetchFileInfo() { fi fi if grep -Eqi "404|not found|no such file|File was deleted|File not found|File was removed" <<< "$response"; then + printf " x" rm -f "${snow_cookie_jar}"; printf "\\n" echo -e "${RED}| The file was not found. It could be deleted or expired.${NC}" @@ -128,7 +130,7 @@ snow_FetchFileInfo() { return 1 fi if grep -Eqi 'input type="hidden" name="id" value="' <<< "$response"; then - printf "\\n" + printf " +\\n" echo -e "${GREEN}| Post link found${NC}" post_op=$(grep -oPi '(?<=input type="hidden" name="op" value=").*(?=">)' <<< "$response") post_id=$(grep -oPi '(?<=input type="hidden" name="id" value=").*(?=">)' <<< "$response") diff --git a/hosts/up_ranoz.sh b/hosts/up_ranoz.sh index 0af9329..6e5a00d 100644 --- a/hosts/up_ranoz.sh +++ b/hosts/up_ranoz.sh @@ -1,6 +1,6 @@ #! Name: up_ranoz.sh #! Author: kittykat -#! Version: 2025.02.14 +#! Version: 2025.02.20 #! Desc: Add support for uploading files to bedrive.ru #! Info: Files are accessible at https://ranoz.gg/file/ #! MaxSize: 20GB @@ -115,7 +115,8 @@ rz_PostFile() { elif [[ "$origext" == "tar" ]]; then tmpfilepath="${filepath%.*}--t_.${randomext}" elif [[ "${filepath##*/}" == *".7z."* ]]; then - tmpfilepath="${filepath%.*}_-7--${origext}_.${randomext}" + tmpfilepath="${filepath%\.7z*}${filepath##*\.7z}" + tmpfilepath="${tmpfilepath%.*}_-7--${origext}_.${randomext}" else tmpfilepath="${filepath%.*}--${origext}_.${randomext}" fi @@ -136,7 +137,7 @@ rz_PostFile() { fi if grep -Eqi '"upload_url":"https://' <<< "$response" ; then PostUrlHost=$(grep -oPi '(?<="upload_url":").*?(?=".*$)' <<< "$response") - downloadLink=$(grep -oPi '(?<="url":").*?(?=".*$)' <<< "$response") + downloadLink=$(grep -oPi '(?<=,"url":").*?(?=".*$)' <<< "$response") echo -e "${GREEN}| Upload url obtained...${NC}" else err=$(grep -oPi '(?<="errors":\[\{"message":").*?(?=".*$)' <<< "$response") diff --git a/hosts/up_uploadhive.sh b/hosts/up_uploadhive.sh index 743d530..b7e25f0 100644 --- a/hosts/up_uploadhive.sh +++ b/hosts/up_uploadhive.sh @@ -1,6 +1,6 @@ #! Name: up_uploadhive.sh #! Author: kittykat -#! Version: 2025.02.14 +#! Version: 2025.02.20 #! Desc: Add support for uploading files to uploadhive.com #! Info: Files are accessible at https://uploadhive.com/ #! MaxSize: 5GB @@ -116,7 +116,8 @@ uhive_PostFile() { elif [[ "$origext" == "tar" ]]; then tmpfilepath="${filepath%.*}--t_.${randomext}" elif [[ "${filepath##*/}" == *".7z."* ]]; then - tmpfilepath="${filepath%.*}_-7--${origext}_.${randomext}" + tmpfilepath="${filepath%\.7z*}${filepath##*\.7z}" + tmpfilepath="${tmpfilepath%.*}_-7--${origext}_.${randomext}" else tmpfilepath="${filepath%.*}--${origext}_.${randomext}" fi diff --git a/mad.sh b/mad.sh index 12ba72e..10d6781 100644 --- a/mad.sh +++ b/mad.sh @@ -30,9 +30,12 @@ # # * Everyone who provided feedback and helped test.. and those who wish to remain anonymous -ScriptVersion=2025.02.18 +ScriptVersion=2025.02.20 #================================================= # Recent Additions +# 2025.02.20 - [up_ranoz] Fixed parsing of ranoz upload link (cloudflare) +# 2025.02.20 - [sendnow] Better handling of sendnow new Tor ip blocking +# 2025.02.20 - [up_ranoz / up_uploadhive] Add obfuscation of .7z in multipart filename that was missing # 2025.02.18 - [uploadhive] Add handling of the new /cgi-bin/dl.cgi/ url tickets (WIP) # (unfortunately, this is tied to the requesting ip, so downloads get "Wrong IP") # 2025.02.18 - [up_oshi] Add Manage url as comment on uploads