!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/proxy_server/controllers/   drwxr-xr-x
Free 13.13 GB of 57.97 GB (22.65%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     subscribeController.js (8.42 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
const Subscribe = require("../models/subscribe");
const { v4: uuidv4 } = require("uuid");
// const isEmpty = require("lodash.isempty");
const visitorInfo = require("visitor-info");
const axios = require("axios");
const path = require("path");
const fs = require("fs");
const utf8 = require("utf8");

module.exports = {
  info: async (req, res, next) => {
    try {
      console.log(data);
      res.removeHeader("x-powered-by");
      res.removeHeader("set-cookie");
      res.removeHeader("Connection");
      var data = req.query;

      var uid = uuidv4();

      // console.log(visitorInfo);

      //  if(req.query.pid=="" || req.query.pid==undefined){
      //     res.status(403).json({
      //       "statusInfo": {
      //         "message": "Input Does not have Campaign ID",
      //         "statusCode": 403

      //         }

      //     });
      //   }else{

      var ipaddress = (
        req.headers["x-forwarded-for"] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress
      ).split(",")[0];
      console.log(ipaddress);

      var subCreate = await Subscribe.create({
        browser: data.browser,
        browserversion: data.browserversion,
        os: data.os,
        country: data.country,
        region: data.region,
        carrier: data.carrier,
        cost: data.cost,
        campaignid: data.campaignid,
        zoneid: data.zoneid,
        clickid: data.clickid,
        osversion: data.osversion,
        useragent: data.useragent,
        language: data.language,
        countryname: data.countryname,
        device: data.device,
        connection_type: data.connection_type,
        uid: uid,
        ip: ipaddress,
        pid: data.pid,
        bannerid: data.bannerid,
        zone_type: data.zone_type,
        message: "no",
        vmsisdn: data.vmsisdn,
        hooked: "no",
      }).catch((err) => {
        console.log(err.message);
      });

      if (subCreate) {
        res
          .status(200)
          .redirect(
            `http://159.203.91.178:8089/subscription/relation.php?uid=${uid}&clickid=${data.clickid}`
          );
      } else {
        console.log("DB ERROR");
        res
          .status(200)
          .redirect(
            `http://159.203.91.178:8089/subscription/relation.php?uid=${uid}&clickid=${data.clickid}`
          );
      }

      // }
    } catch (err) {
      console.log(err.message);
      res.status(403).json({
        statusInfo: {
          message: "Error",
          statusCode: 500,
        },
      });
    }
  },

  message: async (req, res, next) => {
    if (!isEmpty(req.body)) {
      var data = req.body;
      console.log();
      const result = await Subscribe.update(
        { message: "yes" },
        { where: { uid: data.uid } }
      );
      if (result) {
        console.log("DB SUCCESS");
        res.status(200).json({
          statusInfo: {
            statusCode: 200,
            message: "Successfully Updated",
          },
        });
      } else {
        console.log("DB error");
        res.status(403).json({
          statusInfo: {
            statusCode: 403,
            message: "DB ERROR",
          },
        });
      }
    } else {
      res.status(403).json({
        statusInfo: {
          statusCode: 403,
          message: "Request Body is empty",
        },
      });
    }
  },

  messageUpdate: async (req, res, next) => {
    if (!isEmpty(req.query)) {
      var data = req.query;
      console.log();
      const result = await Subscribe.update(
        { message: "yes" },
        { where: { uid: data.uid } }
      );
      if (result) {
        console.log("DB SUCCESS");
        res.status(200).json({
          statusInfo: {
            statusCode: 200,
            message: "Successfully Updated",
          },
        });
      } else {
        console.log("DB error");
        res.status(403).json({
          statusInfo: {
            statusCode: 403,
            message: "DB ERROR",
          },
        });
      }
    } else {
      res.status(403).json({
        statusInfo: {
          statusCode: 403,
          message: "Request Body is empty",
        },
      });
    }
  },

  hookedUpdate: async (req, res, next) => {
    if (!isEmpty(req.query)) {
      var data = req.query;
      console.log(data);
      const result = await Subscribe.update(
        { hooked: "yes" },
        { where: { uid: data.uid } }
      );
      if (result) {
        console.log("DB SUCCESS");
        res.status(200).json({
          statusInfo: {
            statusCode: 200,
            message: "Successfully Updated",
          },
        });
      } else {
        console.log("DB error");
        res.status(403).json({
          statusInfo: {
            statusCode: 403,
            message: "DB ERROR",
          },
        });
      }
    } else {
      res.status(403).json({
        statusInfo: {
          statusCode: 403,
          message: "Request Body is empty",
        },
      });
    }
  },

  msisdnInfo: async (req, res, next) => {
    if (!isEmpty(req.query)) {
      var data = req.query;

      const result = await Subscribe.findOne({
        where: { vmsisdn: data.vmsisdn },
        order: [["id", "DESC"]],
      });
      console.log(result.id);
      if (result) {
        if (result.hooked == "no") {
          console.log("DB SUCCESS");
          res.status(200).json({
            statusInfo: {
              statusCode: 200,
              data: result,
            },
          });
        } else {
          res.status(201).json({
            statusInfo: {
              statusCode: 201,
              message: "already hooked",
            },
          });
        }
      } else {
        console.log("DB error");
        res.status(403).json({
          statusInfo: {
            statusCode: 403,
            message: "DB ERROR",
          },
        });
      }
    } else {
      res.status(403).json({
        statusInfo: {
          statusCode: 403,
          message: "Request Body is empty",
        },
      });
    }
  },

  voice: async (req, res, next) => {
    try {
      if (
        req.query.phone == "" ||
        req.query.code == "" ||
        req.query.msg_id == "" ||
        req.query.ip == ""
      ) {
        res.status(403).json({
          statusInfo: {
            message: "Input parameters have empty values",
            statusCode: 403,
          },
        });
      } else {
        // const str = new Date().toLocaleString("en-US", {
        //   timeZone: "Asia/Dhaka",
        // });

        let postRequest = {
          destination: req.query.phone,
          hangup_cause: 16,
          msg_id: req.query.msg_id,
        };

        // Write row(s) to file

        await res.json({
          statusInfo: {
            message: "Recieved Successfully",
            statusCode: 200,
          },
        });

        axios
          .post(`http://128.199.176.47:3030/asterisk/voice`, postRequest)
          .then((response) => {
            // Handle success.
            // console.log("Data: ", response.data);
            fs.appendFileSync(
              "messages.csv",
              req.query.phone +
                "," +
                req.query.code +
                "," +
                req.query.msg_id +
                "," +
                req.query.ip +
                "," +
                new Date() +
                "," +
                1 +
                "\r\n",
              {
                encoding: "utf8",
              }
            );
          })
          .catch((error) => {
            // Handle error.
            // console.log("An error occurred:", error.response.data.message);
            fs.appendFileSync(
              "messages.csv",
              req.query.phone +
                "," +
                req.query.code +
                "," +
                req.query.msg_id +
                "," +
                req.query.ip +
                "," +
                new Date() +
                "," +
                0 +
                "\r\n",
              {
                encoding: "utf8",
              }
            );
          });
      }
    } catch (error) {
      console.log(error.message);
    }
  },
};

:: 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.0187 ]--