一个Echo文件的程序
来源:互联网 发布:淘宝可以买到的黑科技 编辑:程序博客网 时间:2024/05/16 14:31
上次用sqlhello溢出时拿到一个shell,试了试at,可以执行,看来是管理员权限,可是却不能用net、ftp、tftp命令。晕,那偶怎么上传文件?
呵呵,还好,难不到我。就将就那个shell在命令行下面echo一个webshell上去,然后再做打算。
虽然只echo了一个几行的小程序,但是累死了,所以我就用C写了一个程序,以备下回遇到。
原理很简单啦,就是在每一行代码前加“echo ”,后面加“ >> echofile.txt”,注意要在特殊符号(<、>、&、|、"、^)前加^。
代码如下:
#include "stdio.h"
#include <process.h>
#include <string.h>
void echo(char so[30] ,char sa[30])
{
FILE *fp1,*fp2;
char ch;
if((fp1=fopen(so,"r"))==NULL){printf("Don't open file %s/n",so);exit(0);}
if((fp2=fopen("echofile.txt","w"))==NULL){printf("Don't creat file /n");exit(0);}
fputs("echo ",fp2);
ch=fgetc(fp1);
while(!feof(fp1))
{
if(ch=='^'||ch=='<'||ch=='>'||ch=='&'||ch=='|'||ch=='"')
{
fputc('^',fp2);
fputc(ch,fp2);
}
else if(ch=='/n')
{
fputs(" >> ",fp2);
fputs(sa,fp2);
fputs("/n",fp2);
fputs("echo ",fp2);
}
else
{
fputc(ch,fp2);
}
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
printf("Done!/n");
}
int main(int argc, char* argv[])
{
if(argc!=3)
{
printf("/n--------------------------------------------------------------------/n");
printf("| Echo File , by lake2 (http://mrhupo.126.com) 2004/10/09 |/n");
printf("--------------------------------------------------------------------/n");
printf("-I will write a file to echo-file lake2.txt :)/n");
printf("-Usage:/n");
printf("%s <SourseFile> <EchoSaveFile>/n",argv[0]);
printf("-Examples: /n%s cmd.aspx cmd.txt/n",argv[0]);
return 0;
}
echo(argv[1],argv[2]);
return 0;
}
参数有两个,就是shell文件名和要生成的文件名,程序将生成echofile.txt这个文件,里面包含了要echo的文件所要输入的所有命令(呵呵,有时最后一行会多一个echo,不过没关系的^_^)。
现在就可以一行一行的复制了?呵呵,当然不。直接复制所有内容粘到shell就是了。命令行下有回车符它会自动执行前面的命令。呵呵,赶快去看看,webshell是不是生成了^_^
另外问一下,在这种情况下,还有没有别的上传文件的方法?
by lake2
2004-10-10
- 一个Echo文件的程序
- 一个echo文件的程序 [转载]
- linux socke编程实例:一个简单的echo服务器程序
- linux socke编程实例:一个简单的echo服务器程序
- linux socke编程实例:一个简单的echo服务器程序
- [c++]udp的echo 程序
- 基于TCP的ECHO程序
- 简单的echo服务器程序
- Linux Socket 编程实例(一个Echo程序)
- VC写的socket程序实现一个简单Echo服务器端和客户端程序
- 通过echo将字符串、某个文件文档 加到另外一个文件的末端
- 创建一个基于套接字的bufferevent实例-echo程序的实现
- linux socke编程实例:一个简单的echo服务器程序(2)
- Echo程序
- 用 echo 创建文件内容时,如何避免尾部的多出来的一个空格
- echo命令向一个文件写入内容的方法详解,感兴趣的朋友可以参考下。
- 一个文件分割的程序
- 一个文件流的程序
- 基于Visual C++.NET的GDI+开发教程
- 用Rational Rose和UML开发J2EE应用(二)
- UNICODE编码说明(ZT)
- SQL的详细语法介绍——对于学习数据库最基础知识一
- 许可用户站点登录
- 一个Echo文件的程序
- VIGOR2104宽带路由器——企业级的应用
- 安装激活delphi2005
- 思科交换机Catalyst 3550-24的三层交换与VLAN路由
- windows符号文件的设置
- 安奈特中型网络接入路由器AT-AR410——少数派报告
- 使用宽带路由器来实现企业级的远程联网
- 用delphi2005编译了一个d7写的程序
- 十个经典的感人瞬间!