⚝
One Hat Cyber Team
⚝
Your IP:
192.168.31.6
Server IP:
192.168.1.11
Server:
Linux pams 6.1.0-29-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
PHP Version:
8.2.28
Buat File
|
Buat Folder
Upload File
Eksekusi
Dir :
~
/
var
/
www
/
pams
/
modules
/
Iclock
/
Controllers
/
Edit File: Iclock.php
<?php namespace Modules\Iclock\Controllers; use App\Controllers\BaseController; class Iclock extends BaseController { protected $logger; public function __construct() { // Load Logger service $this->logger = \Config\Services::logger(); } public function index() { $data['title'] = 'Iclock'; $data['li_1'] = 'Welcome to Payroll Attendance'; $data['body'] = 'dashboard'; return view('template', $data); } public function handshake(){ if(!isset($_GET['SN'])){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $sn = $_GET['SN']; $dt = $this->db->table('device')->where('sn', $_GET['SN'])->get()->getRow(); $this->response->setHeader('Content-Type', 'text/plain'); $this->response->setHeader('Connection', 'close'); $this->response->setHeader('Cache-Control', 'no-store'); if(!isset($dt->sn)){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $time = time(); //print_r($dt); $r = "GET OPTION FROM: ".$_GET['SN']."\n"; $r .= "ATTLOGStamp=1749795473\n"; $r .= "OPERLOGStamp=1749795473\n"; $r .= "ATTPHOTOStamp=1749795473\n"; $r .= "ErrorDelay=10\n"; # Detik $r .= "Delay=10\n"; # Detik $r .= "TransTimes=03:00;04:00\n"; $r .= "Transinterval=0\n"; #menit $r .= "TransFlag=1000000000\n"; $r .= "TimeZone=7\n"; $r .= "ServerVer=2.4.1\n"; $r .= "Realtime=1\n"; $r .= "Encrypt=No"; $data = array( "tgl" => date('Y-m-d H:i:s'), // "body" => $this->request->getRawInput(), "body" => 'Handshake', "url" => (string)current_url(true), "method" => $this->request->getMethod() ); $this->db->table('att_log')->insert($data); //$this->db->table('device')->where('sn', $_GET['SN'])->update($u); return $this->response->setStatusCode(200)->setBody($r); } public function cmd(){ if(!isset($_GET['SN'])){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $sn = $_GET['SN']; $dt = $this->db->table('device')->where('sn', $_GET['SN'])->get()->getRow(); $this->response->setHeader('Content-Type', 'text/plain'); $this->response->setHeader('Connection', 'close'); $this->response->setHeader('Cache-Control', 'no-store'); if(!isset($dt->sn)){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $device = array( "stamp_op" => time() ); $update = $this->db->table('device')->where(['sn' => $sn])->update($device); $cek = $this->db->table('att_job')->where(['status' => '1', 'SN' => $sn])->get()->getRow(); if(isset($cek->query)){ $r = str_replace("<tab>", "\t", $cek->query); }else{ $r = "OK"; } return $this->response->setStatusCode(200)->setBody($r); } public function cdata(){ if(!isset($_GET['SN']) || !isset($_GET['table'])){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $sn = $_GET['SN']; $att_table = $_GET['table']; $dt = $this->db->table('device')->where('sn', $_GET['SN'])->get()->getRow(); if(!isset($dt->sn)){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $this->response->setHeader('Content-Type', 'text/plain'); $this->response->setHeader('Connection', 'close'); $this->response->setHeader('Cache-Control', 'no-store'); $d = $this->request->getRawInput(); if($att_table == "OPERLOG"){ if(isset($d['FP_PIN'])){ $b = $this->request->getBody(); $parse = parse_adms($b); $st = 'FP_PIN'; for ($i = 0; $i < count($parse); $i++){ $cek = $this->db->table('att_finger')->where(["id"=>$parse[$i]['FP PIN'], "FID" => $parse[$i]['FID']])->get()->getRow(); if(isset($cek->TMP)){ $update = array( "TMP" => $parse[$i]['TMP'], ); $st .= "UPDATE ID : ".$parse[$i]['FP PIN'].' FID : '.$parse[$i]['FID']; $exe_update = $this->db->table('att_finger')->set($update)->where(["FID" => $parse[$i]['FID'], "id" => $parse[$i]['FP PIN']]); }else{ $st .= "INPUT ID : ".$parse[$i]['FP PIN'].' FID : '.$parse[$i]['FID'];; $data[] = array( "id" => $parse[$i]['FP PIN'], "FID" => $parse[$i]['FID'], "TMP" => $parse[$i]['TMP'] ); } } if(isset($data)){ $this->db->table('att_finger')->insertBatch($data); } }else if(isset($d['USER_PIN'])){ $b = $this->request->getBody(); $parse = parse_adms($b); $st = "USER_PIN"; for ($i = 0; $i < count($parse); $i++){ $cek = $this->db->table('att_user')->where(["id"=>$parse[$i]['USER PIN']])->get()->getRow(); if(isset($cek->id)){ $update = array( "passwd" => $parse[$i]['Passwd'], "pri" => $parse[$i]['Pri'], "nama" => $parse[$i]['Name'], ); $st .= "UPDATE ID : ".$parse[$i]['USER PIN']; $exe_update = $this->db->table('att_user')->set($update)->where(["id" => $parse[$i]['USER PIN']]); }else{ $data[] = array( "id" => $parse[$i]['USER PIN'], "passwd" => $parse[$i]['Passwd'], "pri" => $parse[$i]['Pri'], "nama" => $parse[$i]['Name'], ); $st .= "INPUT ID : ".$parse[$i]['USER PIN']; } } if(isset($data)){ $this->db->table('att_user')->insertBatch($data); } }else if(isset($d['FACE_PIN'])){ $b = $this->request->getBody(); $parse = parse_adms($b); $st = "FACE_PIN"; for ($i = 0; $i < count($parse); $i++){ $cek = $this->db->table('att_face')->where(["id"=>$parse[$i]['FACE PIN'], "FID" => $parse[$i]['FID']])->get()->getRow(); if(isset($cek->id)){ $update = array( "TMP" => $parse[$i]['TMP'], ); $st .= "UPDATE ID : ".$parse[$i]['FACE PIN']; $exe_update = $this->db->table('att_face')->set($update)->where(["id" => $parse[$i]['FACE PIN'], "FID" => $parse[$i]['FID']]); }else{ $data[] = array( "id" => $parse[$i]['FACE PIN'], "FID" => $parse[$i]['FID'], "TMP" => $parse[$i]['TMP'], ); $st .= "INPUT ID : ".$parse[$i]['FACE PIN']; } } if(isset($data)){ $this->db->table('att_face')->insertBatch($data); } }else if(isset($d['USERPIC_PIN'])){ $st = 'USERPIC_PIN'; }else{ $st = json_encode($d); } }else if($att_table == 'ATTLOG'){ } $data = array( "tgl" => date('Y-m-d H:i:s'), "body" => $this->request->getBody(), "url" => (string)current_url(true), "method" => $this->request->getMethod(), "class" => $st ); $this->db->table('att_log')->insert($data); return $this->response->setStatusCode(200)->setBody("OK"); } public function devicecmd(){ if(!isset($_GET['SN'])){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $sn = $_GET['SN']; $dt = $this->db->table('device')->where('sn', $_GET['SN'])->get()->getRow(); $this->response->setHeader('Content-Type', 'text/plain'); $this->response->setHeader('Connection', 'close'); $this->response->setHeader('Cache-Control', 'no-store'); if(!isset($dt->sn)){ return $this->response->setStatusCode(404)->setBody('Not Found'); } $text = $this->request->getBody(); $t = parse_cmd(trim($text)); if(isset($t['ID'])){ $data = array( "status" => $t['Return'], ); $this->db->table('att_job')->where('ID', $t['ID'])->update($data); } $data = array( "tgl" => date('Y-m-d H:i:s'), "body" => $this->request->getBody(), "url" => (string)current_url(true), "method" => $this->request->getMethod(), "class" => "QUERY OUTPUT" ); $this->db->table('att_log')->insert($data); return $this->response->setStatusCode(200)->setBody("OK"); } public function test(){ $sn = "ZTC8243600413"; $device = array( "stamp_op" => time() ); $update = $this->db->table('device')->where(['sn' => $sn])->update($device); //echo $update; var_dump($update); } }
Simpan