Streaming's breach

ERGY13
8 years ago

0

Hello my friends !

A few weeks ago I created a bash script to find and download the source file of every videos hosted with exashare. Given that it uses an IP filter, I think it might be useful to translate in javascript or another web client language and host it on streaming.lunx.ch.

I hope you will help me.

#!/bin/bash  
# Langue : Franis  
# Autheur : ERGY13  
# But : trouver et tharger le fichier source d'une vid exashare  

# fonctions  

function ligne {  
        i=0  
        if [ -z "$LINES" ]; then  
                LINES=80  
        fi ;  
        while [ $i -lt $LINES -a $i -lt 80 ]; do  
                i=$(( $i+1 ))  
                printf "-"  
        done  
        printf "\n"  
}  

# intitialisation  
ligne  

if [ "$(whoami)" = "root" -o "$(whoami)" = "ergy13" ]; then  
          OK="[\e[1;32m  OK  \e[0m]"  
        INFO="[\e[1;32m INFO \e[0m]"  
        WARN="[\e[1;33m WARN \e[0m]"  
        FAIL="[\e[1;31m FAIL \e[0m]"  
        echo -e "$INFO selection du logging color"  
else  
          OK="[  OK  ]"  
        INFO="[ INFO ]"  
        WARN="[ WARN ]"  
        FAIL="[ FAIL ]"  
        echo -e "$INFO selection du logging non-color"  
fi ;  
file="$RANDOM.temp"  
echo -e "$INFO \$file = $file"  

# code  

#       ape 1  

ligne  
echo -e "$INFO Etape 1 : Thargement de la page source"  
ligne  

#               vification du lien  
if [ -z "$1" ]; then  
        echo -e "$FAIL Erreur : le lien n'est pas spifil"  
        echo -e "$FAIL Arr..."  
        exit 1  
fi  

#               affichage des infos  
echo -e "$INFO site : $1"  

#               thargement  
wget $1 -q -O $file  

ligne  
echo -e "$INFO Etape 2 : Passage des diffentes couches iframe"  
ligne  

ok="false"  
couche=0  
while [ $ok = "false" ]; do  

        couche=$(( $couche + 1 ))  
        code_old="$code"  
        lien_old="$lien"  

        echo -e "$INFO Extraction du code de la couche $couche."  

        code=""  
        if [ -z "$code" ]; then  
                code=$(grep "<iframe" $file)  
        fi  
        if [ -z "$code" ]; then  
                code=$(grep "<embed" $file)  
        fi  
        if [ -z "$code" ]; then  
                code=$(grep "<video" $file)  
        fi  
        if [ -z "$code" ]; then  
                code=$(grep "<media" $file)  
        fi  

        if [ -z "$code" ]; then  
                echo -e "$WARN Le code n'a pas trouv"  
                echo -e "$INFO VIDEO : Extraction du fichier video..."  

                lien=""  
                position="1"  
                tempval_precedent=""  
                while [ -z "$lien" ]; do  
                        echo -e "$INFO VIDEO : Tentative d'extraction du fichier la position $position"  
                        if [ -z "$code" ]; then  
                                code=$(grep ".mp4" $file)  
                        fi  
                        if [ -z "$code" ]; then  
                                code=$(grep ".avi" $file)  
                        fi  
                        if [ -z "$code" ]; then  
                                code=$(grep ".flv" $file)  
                        fi  
                        if [ -z "$code" ]; then  
                                code=$(grep ".3gp" $file)  
                        fi  
                        if [ -z "$code" ]; then  
                                echo -e "$FAIL VIDEO : Impossible d'extraire le lien exact de la video."  
                                echo -e "$FAIL VIDEO : Utilisation du dernier lien trouv"  
                                lien=$lien_old  
                                if [ -z "$lien" ]; then  
                                        echo -e "$FAIL VIDEO : Impossible de trouver le lien."  
                                        echo -e "$FAIL Aucun code n'a trouv"  
                                        echo -e "$FAIL Arr du script."  
                                        ligne  
                                        echo -e "$FAIL hec gal"  
                                        ligne  
                                        exit 1  
                                fi ;  
                                code="<iframe src=\"$lien\" type='manuel'>"  
                        fi  
                        echo -e "$INFO VIDEO : \$code = $code"  
                        templien=$(echo $code | awk -F '"' "{print \$${position}}")  
                        if [[ $templien =~ (.mp4|.avi|.flv|.3gp) ]]; then  
                                echo -e "$OK VIDEO : Trouv La position $position est corecte."  
                                lien=$(echo $code | awk -F '"' "{print \$${position}}")  
                                echo -e "$INFO VIDEO : \$lien = $lien"  
                                ok="true"  
                        else  
                                tempval=$(echo $code | awk -F '"' "{print \$${position}}")  
                                echo -e "$WARN VIDEO : Valeur refus : $tempval"  
                                position=$(( $position + 1 ))  
                                if [ "$tempval_precedent" = "$tempval" ]; then  
                                        echo -e "$FAIL VIDEO : le lien n'a pas chang Arr..."  
                                        echo -e "$FAIL VIDEO : \$tempval_precedent = $tempval_precedent"  
                                        echo -e "$FAIL VIDEO : \$tempval = $tempval"  
                                        exit 1  
                                fi ;  
                                tempval_precedent=$tempval  

                        fi  
                done  

        else  
                echo -e "$INFO LECTEUR : le code trouv la couche est pers."  
                echo -e "$INFO LECTEUR : \$code = $code"  
                echo -e "$INFO LECTEUR : extraction du lien..."  

                lien=""  
                position="1"  
                tempval_precedent=""  
                while [ -z "$lien" ]; do  
                        echo -e "$INFO LECTEUR : Tentative d'extraction du lien la position $position"  
                        templien=$(echo $code | awk -F '"' "{print \$${position}}")  
                        if [[ $templien =~ (.html|.php|.asp|.aspx) ]]; then  
                                echo -e "$OK LECTEUR : Trouv La position $position est corecte."  
                                lien=$(echo $code | awk -F '"' "{print \$${position}}")  
                                echo -e "$INFO LECTEUR : \$lien = $lien"  
                                if [[ $lien =~ ^\/\/ ]]; then  
                                        lien="http:$lien"  
                                fi  
                                wget $lien -q -O $file  
                        else  
                                tempval=$(echo $code | awk -F '"' "{print \$${position}}")  
                                echo -e "$WARN LECTEUR : Valeur refus : $tempval"  
                                position=$(( $position + 1 ))  
                                if [ "$tempval_precedent" = "$tempval" ]; then  
                                        echo -e "$FAIL LECTEUR : le lien n'a pas chang Arr..."  
                                        echo -e "$FAIL LECTEUR : \$tempval_precedent = $tempval_precedent"  
                                        echo -e "$FAIL LECTEUR : \$tempval = $tempval"  
                                        exit 1  
                                fi ;  
                                tempval_precedent=$tempval  
                        fi  
                done  

        fi  
        # if [ "$lien_old" = "$lien" ]; then  
        #       echo -e "$FAIL Une erreur est apparue. Arr..."  
        #       exit 1  
        # fi ;  
done  

echo -e "Etape 3 : Thargement du fichier video"  

if [ ! "$2" = "false" ]; then  
        if [ -z "$2" ]; then  
                wget $lien --show-progress --referer=$1  
        else  
                wget $lien --show-progress -O $2 --referer=$1  
        fi  
else  
        echo -e "\n\n$lien\n\n"  
fi  

rm $file  
0replies
1voice
182views
You must be logged in to reply to this discussion. Login
1 of 1

This site only uses cookies that are essential for the functionality of this website. Cookies are not used for tracking or marketing purposes.

By using our site, you acknowledge that you have read and understand our Privacy Policy, and Terms of Service.

Dismiss