From 8f3d351b689a0988a906c10ae003528b5980f9bd Mon Sep 17 00:00:00 2001 From: cassio Date: Mon, 27 Aug 2018 14:11:09 +0200 Subject: pass len iv --- tools/boca-auth-runs | 1 + 1 file changed, 1 insertion(+) (limited to 'tools/boca-auth-runs') diff --git a/tools/boca-auth-runs b/tools/boca-auth-runs index 111d285..0f8c630 100755 --- a/tools/boca-auth-runs +++ b/tools/boca-auth-runs @@ -58,6 +58,7 @@ if [ "$?" == "0" ]; then a="" ivv="" iv=$(head -n1 "$temp" | cut -d':' -f1) + clen=$(head -n1 "$temp" | cut -d':' -f2) tail -n +2 "$temp" > "${temp}.0" rm -f "$temp" for ((i=0;i<32;i++));do a="$a`printf %02X \'${ress:$i:1}`"; done -- cgit v1.2.3 From 6ca67b9f36309001cdc149d7746b7a9b3a171bc6 Mon Sep 17 00:00:00 2001 From: cassio Date: Mon, 27 Aug 2018 14:16:50 +0200 Subject: check correct download --- src/getcode.php | 3 ++- tools/boca-auth-runs | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'tools/boca-auth-runs') diff --git a/src/getcode.php b/src/getcode.php index 687379f..90e8b58 100644 --- a/src/getcode.php +++ b/src/getcode.php @@ -42,7 +42,8 @@ if(isset($_GET["name"]) && $_GET["name"] != "" ) { $p = myhash($secret[1] . session_id()); if($name == $secret[0] && $p == $password) { $cc = md5(rand() . rand() . @file_get_contents('/proc/uptime') . rand() . rand()); - $txt = "#!/bin/bash\n" . + $txt = "#!/bin/bash\n" . + "## " . $iv . "\n" . "mkdir -p /root/submissions\n" . "chown root.root /root/submissions\n" . "chmod 700 /root/submissions\n" . diff --git a/tools/boca-auth-runs b/tools/boca-auth-runs index 0f8c630..ffcc061 100755 --- a/tools/boca-auth-runs +++ b/tools/boca-auth-runs @@ -65,13 +65,21 @@ if [ "$?" == "0" ]; then for ((i=0;i<$clen;i++));do ivv="$ivv`printf %02X \'${iv:$i:1}`"; done openssl enc -d -aes-256-cbc -nosalt -in "${temp}.0" -out "${temp}.1" -K $a -iv $ivv rm -f "${temp}.0" - /bin/bash "${temp}.1" - rm -f "${temp}.1" + grep -q "$iv" "${temp}.1" + if [ "$?" == "0" ]; then + /bin/bash "${temp}.1" + else + echo "" + echo "$BOCASERVER: downloaded content is corrupted" + rm -f "${temp}.1" + rm -f "${temp}.cookie.txt" + exit 4 + fi fi [ -f "$temp" ] && rm -f "$temp" - rm -f ${temp}.cookie.txt + rm -f "${temp}.cookie.txt" echo "" - echo "authentication successful" + echo "authentication and download successful" mkdir -p /root/submissions echo -n $user > /root/submissions/user else -- cgit v1.2.3 From e2a898ab9f88010a14da14b54a9809ba2c6e17ab Mon Sep 17 00:00:00 2001 From: cassio Date: Mon, 27 Aug 2018 16:34:30 +0200 Subject: bug in openssl_encrypt? options cannot take padding --- src/getcode.php | 11 ++++++----- tools/boca-auth-runs | 26 +++++++++++++++++--------- 2 files changed, 23 insertions(+), 14 deletions(-) (limited to 'tools/boca-auth-runs') diff --git a/src/getcode.php b/src/getcode.php index 90e8b58..fcc45cd 100644 --- a/src/getcode.php +++ b/src/getcode.php @@ -1,5 +1,6 @@ "${temp}.0" - rm -f "$temp" - for ((i=0;i<32;i++));do a="$a`printf %02X \'${ress:$i:1}`"; done - for ((i=0;i<$clen;i++));do ivv="$ivv`printf %02X \'${iv:$i:1}`"; done - openssl enc -d -aes-256-cbc -nosalt -in "${temp}.0" -out "${temp}.1" -K $a -iv $ivv - rm -f "${temp}.0" - grep -q "$iv" "${temp}.1" - if [ "$?" == "0" ]; then - /bin/bash "${temp}.1" + if [ "$clen" -eq "$clen" ] 2>/dev/null; then + tail -n +2 "$temp" > "${temp}.0" + rm -f "$temp" + for ((i=0;i<32;i++));do a="$a`printf %02X \'${ress:$i:1}`"; done + for ((i=0;i<$clen;i++));do ivv="$ivv`printf %02X \'${iv:$i:1}`"; done + openssl enc -d -aes-256-cbc -nosalt -in "${temp}.0" -out "${temp}.1" -K $a -iv $ivv + rm -f "${temp}.0" + grep -q "$iv" "${temp}.1" + if [ "$?" == "0" ]; then + /bin/bash "${temp}.1" + else + echo "" + echo "$BOCASERVER: downloaded content is corrupted" + rm -f "${temp}.1" + rm -f "${temp}.cookie.txt" + exit 4 + fi else echo "" echo "$BOCASERVER: downloaded content is corrupted" -- cgit v1.2.3