!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/OTapi/   drwxr-xr-x
Free 13.02 GB of 57.97 GB (22.47%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     test.js (2.81 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

const axios = require('axios');
const xmlbuilder = require('xmlbuilder');
const crypto = require('crypto');

// Your OTAPI credentials and config
const OT_Key = 'c4e85fb9-7f86-4091-8d38-73a7b4db3d79';
const OT_Secret = 'df54991d57503f6d1b88e0279cbf0c25';

// // Build the XML parameters
// const xmlParameters = xmlbuilder.create('SearchItemsParameters', { encoding: 'UTF-8' })
//   .ele('ItemTitle', 'adidas').up()
//   .ele('Provider', 'Alibaba1688').up()
//   .ele('Order', 'TotalVolumeDesc')
//   .end({ pretty: false });
const xmlParameters = `<SearchItemsParameters>
  <ItemTitle>adidas</ItemTitle>
  <Provider>Alibaba1688</Provider>
  <Order>TotalVolumeDesc</Order>
</SearchItemsParameters>`;
// OTAPI method
const method = 'BatchSearchItemsFrame';
function getUTCTimestamp() {
  const now = new Date();

  const yyyy = now.getUTCFullYear();
  const MM = String(now.getUTCMonth() + 1).padStart(2, '0');
  const dd = String(now.getUTCDate()).padStart(2, '0');
  const HH = String(now.getUTCHours()).padStart(2, '0');
  const mm = String(now.getUTCMinutes()).padStart(2, '0');
  const ss = String(now.getUTCSeconds()).padStart(2, '0');

  return `${yyyy}${MM}${dd}${HH}${mm}${ss}`;
}

const timestamp = getUTCTimestamp();
console.log(timestamp);  // Example: "20250518​172302"

console.log('Timestamp:', timestamp);  // Debug

// const signature = crypto
//   .createHash('sha1')
//   .update(OT_Secret + method + timestamp)
//   .digest('hex');
// Other parameters
const params = {
    instanceKey: OT_Key,
    language: '',
    framePosition: 0,
    frameSize: 50,
    xmlParameters: xmlParameters,
    timestamp: timestamp,  // <-- Add this line
    blockList: '',
    sessionId: '',

};
function buildQueryString(params) {
  return Object.keys(params)
    .sort()
    .map(k => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)
    .join('&');
}

function calculateSignature(method, params, secret) {
  const queryString = buildQueryString(params);
  const toSign = method + queryString + secret;
  return crypto.createHash('SHA256').update(toSign).digest('hex');
}

async function callOtapi() {
//   const signature = 'a2ee99e0a0fc25057f08173c0c3906ff6e265179bdb8a27cc7e80127ddcef94f';
  const signature = calculateSignature(method, params, OT_Secret);

  const queryString = buildQueryString(params);
  const url = `http://otapi.net/service-json/${method}?signature=${signature}&${queryString}`;

  console.log('Request URL:', url);  // Debug

  try {
    // const response = await axios.get(url);
    // console.log('Response:', response.data);
  } catch (err) {
    if (err.response) console.error('Error response:', err.response.data);
    else console.error('Request error:', err.message);
  }
}

callOtapi();

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0265 ]--