Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 52.15.70.0
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/local/lsws/admin/misc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/lsws/admin/misc/purge_cache_by_url
#!/usr/bin/env bash
#set -x

CURL_ACTION=''
CURL_IP='127.0.0.1'
CURL_URL=''
CURL_PROTO=''
CURL_DOMAIN=''

function handle_args() {
  if [[ "$#" -eq 0 ]]; then
    show_help
    exit 1
  fi

  while [[ "$1" != '' ]]; do
    case $1 in
      -r )  CURL_ACTION='REFRESH' ;;
      -p )  CURL_ACTION='PURGE' ;;
      -ip ) shift; CURL_IP="$1" ;;
      -h )  show_help; exit 1 ;;
      * )   CURL_URL="$1" ;;
    esac
    shift
  done

  if [[ "${CURL_ACTION}" == '' ]] || [[ "${CURL_URL}" == '' ]]; then
    show_help
    exit 1
  fi

  if [[ "${CURL_IP}" == '' ]]; then
    echo 'IP parameter passed but no value set!'
    exit 1
  fi

  if ! [[ "${CURL_URL}" =~ https?:// ]]; then
    echo 'Please use full URL include http/https!'
    exit 1
  fi

  if [[ "${CURL_IP}" != '' ]] && [[ "${CURL_IP}" != '127.0.0.1' ]]; then
    if [[ "${CURL_URL}" =~ 'https://' ]]; then
      CURL_PROTO='443'
    else
      CURL_PROTO='80'
    fi
    CURL_DOMAIN=$(echo ${CURL_URL} | awk -F[/:] '{print $4}')
  fi
}

function show_help() {
  cat <<EOF
Usage: purge_cache_byurl -(r|p) [-ip <ip>] <URL>

Purge/Refresh cache for specific URL.

Required Arguments:
 -r|-p,    Refreshes/Purges the cache for specific page.
 *,        Full URL of the specific page to refresh/purge.

Optional Arguments:
 -ip,      IP to resolve the hostname of the request to (Only
           if it differs from what the DNS A record is set to.)

Notes:
  If running on a server other than the one the site is located on,
  make sure to add this machines IP to the trusted list inside of
  LiteSpeed Web Server or else the Purge/Refresh requests will not
  work.
EOF
}

function send_cmd() {
  if [[ "${CURL_PROTO}" != '' ]] && [[ "${CURL_DOMAIN}" != '' ]]; then
    CURL_OUTPUT=$(curl --resolve ${CURL_DOMAIN}:${CURL_PROTO}:${CURL_IP} -Iks -X ${CURL_ACTION} "${CURL_URL}" | grep 'HTTP/' | awk '{print $2}')
  else
    CURL_OUTPUT=$(curl -Iks -X ${CURL_ACTION} "${CURL_URL}" | grep 'HTTP/' | awk '{print $2}')
  fi
  if [[ "${CURL_OUTPUT}" != '200' ]]; then
    if [[ "${CURL_OUTPUT}" == '301' ]]; then
      if [[ "${CURL_NEW_URL}" == '' ]]; then
        if [[ "${CURL_PROTO}" != '' ]] && [[ "${CURL_DOMAIN}" != '' ]]; then
          CURL_NEW_URL=$(curl --resolve ${CURL_DOMAIN}:${CURL_PROTO}:${CURL_IP} -Iks -X ${CURL_ACTION} "${CURL_URL}" | grep 'Location:' | awk '{print $2}')
          if [[ "${CURL_NEW_URL}" =~ 'https://' ]]; then
            CURL_PROTO='443'
          else
            CURL_PROTO='80'
          fi
          CURL_DOMAIN=$(echo ${CURL_NEW_URL} | awk -F[/:] '{print $4}')
        else
          CURL_NEW_URL=$(curl -Iks -X ${CURL_ACTION} "${CURL_URL}" | grep 'Location:' | awk '{print $2}')
        fi
        CURL_URL="${CURL_NEW_URL}"
        send_cmd
      else
        echo 'URL keeps redirecting! Please make sure URL is final URL after any https or other redirects!'
        exit 1
      fi
    elif [[ "${CURL_OUTPUT}" == '405' ]]; then
      echo 'This IP is not valid to PURGE or REFRESH cache! Please add this IP as a trusted IP inside of LiteSpeed Web Server!'
      exit 1
    else
      echo 'HTTP return code is not 200! Please make sure this is a valid page!'
      exit 1
    fi
  else
    echo "Page ${CURL_ACTION} Successfully!"
  fi
}

function main() {
  handle_args "$@"
  send_cmd
  exit 0
}

main "$@"

Youez - 2016 - github.com/yon3zu
LinuXploit