!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)

/usr/share/doc/libevent-dev/examples/   drwxr-xr-x
Free 13.28 GB of 57.97 GB (22.91%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     http-connect.c (3.21 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include "event2/event-config.h"

#include <event2/event.h>
#include <event2/http.h>
#include <event2/http_struct.h>
#include <event2/buffer.h>
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>

#define VERIFY(cond) do {                       \
    if (!(cond)) {                              \
        fprintf(stderr, "[error] %s\n", #cond); \
        exit(EXIT_FAILURE);                     \
    }                                           \
} while (0);                                    \

#define URL_MAX 4096

struct connect_base
{
    struct evhttp_connection *evcon;
    struct evhttp_uri *location;
};

static void get_cb(struct evhttp_request *req, void *arg)
{
    ev_ssize_t len;
    struct evbuffer *evbuf;
    struct evhttp_connection *evcon;

    VERIFY(req);
    evcon = evhttp_request_get_connection(req);
    VERIFY(evcon);

    evbuf = evhttp_request_get_input_buffer(req);
    len = evbuffer_get_length(evbuf);
    fwrite(evbuffer_pullup(evbuf, len), len, 1, stdout);
    evbuffer_drain(evbuf, len);
}

static void connect_cb(struct evhttp_request *proxy_req, void *arg)
{
    char buffer[URL_MAX];

    struct connect_base *base = arg;
    struct evhttp_connection *evcon = base->evcon;
    struct evhttp_uri *location = base->location;

    VERIFY(proxy_req);
    if (evcon) {
        struct evhttp_request *req = evhttp_request_new(get_cb, NULL);
        evhttp_add_header(req->output_headers, "Connection", "close");
        VERIFY(!evhttp_make_request(evcon, req, EVHTTP_REQ_GET,
            evhttp_uri_join(location, buffer, URL_MAX)));
    }
}

int main(int argc, const char **argv)
{
    char buffer[URL_MAX];

    struct evhttp_uri *host_port;
    struct evhttp_uri *location;
    struct evhttp_uri *proxy;

    struct event_base *base;
    struct evhttp_connection *evcon;
    struct evhttp_request *req;

    struct connect_base connect_base;

    if (argc != 3) {
        printf("Usage: %s proxy url\n", argv[0]);
        return 1;
    }

    {
        VERIFY(proxy = evhttp_uri_parse(argv[1]));
        VERIFY(evhttp_uri_get_host(proxy));
        VERIFY(evhttp_uri_get_port(proxy) > 0);
    }
    {
        host_port = evhttp_uri_parse(argv[2]);
        evhttp_uri_set_scheme(host_port, NULL);
        evhttp_uri_set_userinfo(host_port, NULL);
        evhttp_uri_set_path(host_port, NULL);
        evhttp_uri_set_query(host_port, NULL);
        evhttp_uri_set_fragment(host_port, NULL);
        VERIFY(evhttp_uri_get_host(host_port));
        VERIFY(evhttp_uri_get_port(host_port) > 0);
    }
    {
        location = evhttp_uri_parse(argv[2]);
        evhttp_uri_set_scheme(location, NULL);
        evhttp_uri_set_userinfo(location, 0);
        evhttp_uri_set_host(location, NULL);
        evhttp_uri_set_port(location, -1);
    }

    VERIFY(base = event_base_new());
    VERIFY(evcon = evhttp_connection_base_new(base, NULL,
        evhttp_uri_get_host(proxy), evhttp_uri_get_port(proxy)));
    connect_base.evcon = evcon;
    connect_base.location = location;
    VERIFY(req = evhttp_request_new(connect_cb, &connect_base));

    evhttp_add_header(req->output_headers, "Connection", "keep-alive");
    evhttp_add_header(req->output_headers, "Proxy-Connection", "keep-alive");
    evutil_snprintf(buffer, URL_MAX, "%s:%d",
        evhttp_uri_get_host(host_port), evhttp_uri_get_port(host_port));
    evhttp_make_request(evcon, req, EVHTTP_REQ_CONNECT, buffer);

    event_base_dispatch(base);
    evhttp_connection_free(evcon);
    event_base_free(base);
    evhttp_uri_free(proxy);
    evhttp_uri_free(host_port);
    evhttp_uri_free(location);
    return 0;
}

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